0

我试图在我的页面中获取许多文件的信息,但是我的 fileUploader、我的文本框和我的 hiddenField 在用户控件中,当我使用 javascript 将值保存到隐藏字段中时,我可以看到它运行,但是当我试图在后面的代码中获取这些值,我失去了所有的值,我需要帮助,但我在那 3 天里工作,我自己找不到解决方案。

我的代码是:

在用户控件中:

<table class ="total">
    <tr>
        <td class="texto">
            <asp:Label ID="lblFotos" runat="server" Font-Size="Small" 
                Text="Fotos : "></asp:Label>
        </td>
        <td class="campos">
            <asp:FileUpload ID="fuFotoPropiedad" runat="server"  />
            <asp:Button ID="btnAgregarFoto" runat="server" Height="25px" Text="Agregar" 
                OnClientClick="agregarFoto(); return false;"/>
        </td>
    </tr>
    <tr>
        <td class="total" colspan="2" align="center"> 
            <asp:TextBox ID="txtFotosPropiedad" runat="server" Height="81px" TextMode="MultiLine" 
                Width="299px" ReadOnly="True"></asp:TextBox>
            <asp:HiddenField ID="hdFotosPropiedad" runat="server" />
        </td>
    </tr>
</table>

在 JavaScript 中:

function agregarFoto() {
    var fileUploadId = 'ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_fuFotoPropiedad';
    var txtFotosPropiedadId = 'ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_txtFotosPropiedad';
    var hdFotosPropiedadId = 'ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_hdFotosPropiedad';
    var fileUpload = document.getElementById(fileUploadId);
    var txtFotosPropiedad = document.getElementById(txtFotosPropiedadId);
    var hdFotosPropiedad = document.getElementById(hdFotosPropiedadId);
    if (hdFotosPropiedad.value == "") {
        txtFotosPropiedad.value = fileUpload.value;
        txtFotosPropiedad.Text = fileUpload.value;
        hdFotosPropiedad.Value = fileUpload.value;
        hdFotosPropiedad.innetText = fileUpload.value;
    } else {
        txtFotosPropiedad.value = txtFotosPropiedad.value + ";" + fileUpload.value;
        txtFotosPropiedad.Text = txtFotosPropiedad.value + ";" + fileUpload.value;
        hdFotosPropiedad.Value = hdFotosPropiedad.Value + ";" + fileUpload.value;
        hdFotosPropiedad.innetText = hdFotosPropiedad.Value + ";" + fileUpload.value;
    }
    var control = $("#ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_fuFotoPropiedad");
    control.replaceWith( control.val('').clone( true ) );
    return false;
}

在后面的代码中:

string[] fotos = hdFotosPropiedad.Value.Split(';');

但是hdFotosPropiedad.Valuenull(空的),谢谢。

4

1 回答 1

0

JavaScript 区分大小写,因此您分配给了错误的变量。

代替

if(hdFotosPropiedad.value == "")
{
    txtFotosPropiedad.value = fileUpload.value;
    txtFotosPropiedad.Text = fileUpload.value;
    hdFotosPropiedad.Value = fileUpload.value;
    hdFotosPropiedad.innetText = fileUpload.value;
}
else
{
    txtFotosPropiedad.value = txtFotosPropiedad.value + ";" + fileUpload.value;
    txtFotosPropiedad.Text = txtFotosPropiedad.value + ";" + fileUpload.value;
    hdFotosPropiedad.Value = hdFotosPropiedad.Value + ";" + fileUpload.value;
    hdFotosPropiedad.innetText = hdFotosPropiedad.Value + ";" + fileUpload.value;
}

if(hdFotosPropiedad.value == "")
{
    txtFotosPropiedad.value = fileUpload.value;
    hdFotosPropiedad.value = fileUpload.value;       // Note value NOT Value
}
else
{
    txtFotosPropiedad.value = txtFotosPropiedad.value + ";" + fileUpload.value;
    hdFotosPropiedad.value = hdFotosPropiedad.value + ";" + fileUpload.value;
}

因此,您分配给 .value 而不是 .Value。我还删除了 .Text 分配,即因为它们在您发布的代码中没有任何用途。

于 2013-02-25T18:49:21.350 回答