在ASP.Net中向客户端发送大量复选框的最佳方法是什么?

Dan*_*ola 2 asp.net viewstate dynamically-generated-co

我有以下情况:

用户将在页面上定义某个过滤器,在回发时,我将使用该过滤器查询数据库,并向用户返回一堆匹配的记录,每个记录旁边都有一个复选框,因此他可以选择是否对每个那些记录.

在Classic ASP/PHP中,我可以生成许多名为"chk __*"的控件,然后在回发时查看所有$ POST条目,查找前缀为"chk "的条目.

在ASP.Net 2.0中执行此操作的最佳方法是什么?

我可以通过实现带有包含复选框的模板的Repeater,将Repeater绑定到数据集,然后在第二个Postback上轻松完成,我只是这样做:

For Each it As RepeaterItem In repContacts.Items
    Dim chkTemp As CheckBox = DirectCast(it.FindControl("cbSelect"), CheckBox)
    If chkTemp.Checked Then

    End If
Next
Run Code Online (Sandbox Code Playgroud)

然而,这给我一个巨大的Viewstate 略有不利,这非常糟糕,因为客户端需要将整个视图状态重新上传到服务器,而这些人可能会在一个糟糕的连接上使用我的网站.

还有其他想法吗?(我也可以动态创建控件并像过去那样迭代Request.Form,但是,我正在寻找一个更干净的

Dil*_*e-O 5

你看过CheckBoxList控件吗?您可以将其绑定到数据集,提供文本成员和值成员项,还可以让您轻松查看要检查的项目.如果需要,还可以动态添加更多复选框项.