【发布时间】:2010-10-23 16:18:52
【问题描述】:
我有一个GridView。我必须收集选中复选框的GridViewRow。在没有任何客户端脚本的情况下如何实现它?请帮我完成这项工作。
【问题讨论】:
-
发布你目前所拥有的代码会让想要回答你问题的人更容易。
我有一个GridView。我必须收集选中复选框的GridViewRow。在没有任何客户端脚本的情况下如何实现它?请帮我完成这项工作。
【问题讨论】:
如果你熟悉 LINQ,你可以得到类似的东西
List<GridViewRow> rowCollection =
GridView1.Rows
.OfType<GridViewRow>()
.Where(x => ((CheckBox)x.FindControl("chkRow")).Checked)
.Select(x => x).ToList();
一切顺利。
【讨论】:
另一种老式方法是使用 for 或 foreach 循环遍历网格的 Rows 集合,使用 FindControl 方法找到复选框并检查其 Checked 属性值。
【讨论】:
简单易懂,稍后再回顾。
var selectedRows = (from GridViewRow row in GridView1.Rows
let cbx = (CheckBox)row.FindControl("CheckBox1")
where cbx.Checked
select row).ToList();
请记住,要使其正常工作,我认为您需要将包含复选框的列转换为模板列。
【讨论】: