【发布时间】:2008-10-25 11:36:30
【问题描述】:
我有以下情况:
用户将在页面上定义某个过滤器,并且在回发时,我将使用该过滤器查询数据库并向用户返回一堆匹配的记录,每个记录旁边都有一个复选框,因此他可以选择是否对每条记录采取行动。
在经典 ASP/PHP 中,我可以生成许多名为“chk__*”的控件,然后在回发时遍历所有 $POST 条目,寻找前缀为“chk”的条目。
在 ASP.Net 2.0 中执行此操作的最佳方法是什么?
我可以通过使用包含复选框的模板实现一个中继器来轻松地做到这一点,将中继器绑定到一个数据集,然后在第二个回发时,我只是这样做:
For Each it As RepeaterItem In repContacts.Items
Dim chkTemp As CheckBox = DirectCast(it.FindControl("cbSelect"), CheckBox)
If chkTemp.Checked Then
End If
Next
但是这有一个轻微的缺点,就是给我一个巨大的视图状态,这真的很糟糕,因为客户端需要将整个视图状态重新上传到服务器,而这些人可能会使用我的网站连接很糟糕。
还有其他想法吗? (我也可以像过去一样动态创建控件并通过 Request.Form 进行迭代,但是,我一直在寻找更清洁的方法
【问题讨论】:
标签: asp.net viewstate dynamically-generated-co