【问题标题】:Problems with hidden field in a usercontrol c#用户控件c#中的隐藏字段问题
【发布时间】:2013-02-25 17:53:04
【问题描述】:

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

【问题讨论】:

    标签: c# javascript hidden-field


    【解决方案1】:

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

    【讨论】:

    • 不敢相信我没看到!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多