我通过设置innerHtml属性将复选框添加到a。
function ShowCheckbox(uid) {
document.getElementById("samplediv").innerHTML += "<input type='checkbox' value='on' name='box_" + uid + "' id='box_" + uid + "'/> Some Text Here";
}
这是在.aspx页面
我正在尝试从c#中的代码隐藏中检索动态复选框的值,但我没有发现它们被回发。我已经阅读了IE问题(IE8之前)关于它没有很好地处理name属性,但是我在IE9中,显然如果你使用innerHtml方法而不是直接添加到DOM,这不是问题。
我尝试通过Request.Form和Request.Params在代码隐藏中请求值,无论如何都没有运气。
知道动态复选框没有被回发的原因吗?
答案 0 :(得分:1)
您可以考虑使用 jQuery 。将元素添加到DOM中非常简单且有效。
function ShowCheckbox(uid) {
$("<input type='checkbox' value='on' name='box_" + uid + "' id='box_" + uid + "'/>")
.appendTo($("#sample");
}
答案 1 :(得分:-1)
表单提交完成后,所有数据都将发送到服务器。然后ASP.NET引擎将尝试创建HTML控件的服务器端“表示”。它将尝试使用id或名称将其Controls集合与来自客户端的数据进行匹配。因此,您需要在页面启动地图数据和控件之前创建服务器端输入。换句话说,您需要使页面在服务器上的页面的Controls集合中找到相同的控件。所以,我相信你需要在Page_Init或其他东西上进行控件的创建......
以下是ASP.NET中动态控件的一个很好的解释:http://geekswithblogs.net/shahed/archive/2008/06/26/123391.aspx