如何从ASP.NET中添加Javascript的复选框获取表单值?

时间:2011-11-11 18:31:34

标签: javascript asp.net

我通过设置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在代码隐藏中请求值,无论如何都没有运气。

知道动态复选框没有被回发的原因吗?

2 个答案:

答案 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