客户端动态创建隐藏字段在回发时丢失

时间:2014-12-05 10:34:41

标签: jquery asp.net asp.net-4.0

我以编程方式在客户端创建了几个隐藏字段,插入到表单中。 我验证了form.childElementCount确实增加了。

var disabledState_id = "<%=HidData_DisabledState_Prefix%>" + uiObj.attr("id");
...
disabledState = $("<input type='hidden' id='" + disabledState_id + "' />");
disabledState.appendTo("form");

回发时,我在Request.Form中找不到这些隐藏的值。 在Request.Form.AllKeys中也找不到那些键,因为id固定为前缀。

2 个答案:

答案 0 :(得分:2)

您需要设置name属性才能在FORM submit上发送输入值。

答案 1 :(得分:0)

如果你有一个代码生成的HiddenField,它需要具有相同的ID,并在Page设置发布值之前创建,例如在OnInit中。

以下链接可以为您提供帮助:

http://www.codeproject.com/Articles/3684/Retaining-State-for-Dynamically-Created-Controls-i

您可以使用:

 protected string disabledState = "";
 protected void Page_Load(object sender, EventArgs e)
 {
      this.disabledState = Request.Form["disabledState"];
 }

在javascript中,您可以使用以下内容:

 var disabledState ;
     window.onload = function () {
         disabledState = document.getElementById('"+disabledState_id+"');
     };