我以编程方式在客户端创建了几个隐藏字段,插入到表单中。 我验证了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固定为前缀。
答案 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+"');
};