【问题标题】:Getting null value of the hidden field at server-side在服务器端获取隐藏字段的空值
【发布时间】:2011-06-29 18:36:09
【问题描述】:

我正在调用一个 Java 脚本函数,因为我正在传递隐藏字段的值,我想在服务器端使用该隐藏字段,但隐藏字段的值为 null。

客户端功能

function getDetails()
    {
        document.forms[0].HdnNode.value=tree_selected_id; //HTML Hidden Field.
        str="Cmp_12";
        str_array=str.split("_");
        var str_array1=str_array[0];
        var str_array2=str_array[1];
        document.getElementById("<%=HiddenNodeId.ClientId %>").value=str_array1;
        document.getElementById("<%=HiddenTreeId.ClientId %>").value=str_array2;                       
    }    

服务器端函数

Public Sub InsertNodes(ByVal NodeId As String)
    Dim objErrorObj As New ErrorObj
    Dim ParentID As String
    ParentID = HiddenNodeParent.Value
    NodeId = HiddenNodeId.Value
    Dim NodeIDTree As String
    NodeIDTree = HiddenTreeId.Value
End Sub

【问题讨论】:

  • 你能用代码块格式化你的代码吗?另外,您是否尝试过在将隐藏字段值发送到服务器之前对其进行警告?可能会帮助您确定是客户端问题还是服务器端问题
  • html代码是什么?可能你没有正确调用 getDetails,或者你有一个 javascript 错误。
  • @Peter 我正在使用 asp 控件
  • 在“getDetails”函数中,尝试将隐藏字段的值设置为“test”值,函数中没有其他内容。您的代码可能在函数的第一行被炸毁了。

标签: javascript asp.net vb.net


【解决方案1】:

我在 UpdatePanels 中使用隐藏字段(隐藏字段必须发送回服务器才能在部分回发中使用),您可以尝试设置 EnableViewState = true(整个页面回发)。

aspx:

        <asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load" UpdateMode="Conditional" ChildrenAsTriggers="True">
        <ContentTemplate>
            <asp:HiddenField runat="server" ID="LinesBack" value="0"/>

       <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="10" AssociatedUpdatePanelID="UpdatePanel1">
                <ProgressTemplate>
                    <img id="spinner" alt="spinner" src="../Pictures/spinner_30x30.gif" />
                </ProgressTemplate>
            </asp:UpdateProgress>
            <div id="Back" class="NewresultPanel" runat="server" ></div>
        </ContentTemplate>
    </asp:UpdatePanel>

html:

var a = document.getElementById('<%= LinesBack.ClientID %>').value;

cs:

            LinesBack.Value = CountRows.ToString();

【讨论】:

    【解决方案2】:

    您必须为隐藏字段设置runat="server" 属性才能在您发布的服务器端代码中访问它。

    类似

    HTML

    <input type="hidden" id="hidTest" runat="server" />
    

    服务器端代码

    hidTest.Value;
    

    【讨论】:

    • 我使用asp隐藏域。
    • 我已经把所有的asp控件都转成html控件了,但是隐藏字段的值还是为null。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多