2011-02-18 73 views
2

我正在调用Java脚本函数,因为我传递隐藏字段的值,即我想在服务器端使用的隐藏字段的值,但是值隐藏字段为空。在服务器端获取隐藏字段的空值

客户端功能

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 
+1

可以使用的代码块,你格式化你的代码?另外,你有没有尝试在发送给服务器之前提醒隐藏的字段值?可能帮助你弄清楚它是客户端还是服务器端问题 – JohnP 2011-02-18 11:42:02

+0

什么是html代码?可能你没有正确调用getDetails,或者你有一个javascript错误。 – Aristos 2011-02-18 12:22:14

回答

0

必须设置runat="server"的隐藏字段属性来访问它在服务器端代码你已经发布。

喜欢的东西

HTML

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

服务器端代码

hidTest.Value; 
1

我使用隐藏域用的UpdatePanel(隐藏字段必须发送回服务器在局部回传用它),你可以尝试设置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();