用户控件中隐藏字段的问题c#

时间:2013-02-25 17:53:04

标签: c# javascript hidden-field

我正在尝试获取我页面中的许多文件的信息,但我的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(空),谢谢。

1 个答案:

答案 0 :(得分: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分配,即因为它们没有在您发布的代码中用作目的。