繁体   English   中英

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

[英]Problems with hidden field in a usercontrol c#

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

我的代码是:

在用户控件中:

<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 (空),谢谢。

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分配,即因为它们在您发布的代码中没有用处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM