我有一个绑定到数据源的列表视图,每行都有一个复选框控件,我想要实现的是当我按下一个按钮时,我想检查列表视图中的所有复选框并检查是否有任何他们已被勾选。
我首先尝试的是将一个onclick事件添加到一个按钮并循环遍历listview.items并检查复选框控件的“已检查”状态,但是,即使他们勾选了该项目,它也总是返回“false”
我能让它工作的唯一方法是,如果我循环onItemDataBound事件中的所有listview项目,但这似乎是最有效的方式,因为它将为listview中的每个项目调用onItemDataaBound,(因此每次在listview.items上调用foreach)
然后我尝试在OnDateBound事件上做同样的事情,因为这只被调用一次,但我遇到了同样的问题,它看到复选框“已检查”字段一直是假,我想知道是否有人可以点我正确地朝着正确的方向去做。
感谢 拉吉。
答案 0 :(得分:0)
我使用具有相同功能的gridview。我在gridview之外放了一个onclick事件按钮。
在我背后的代码中我有这样的东西:
foreach (GridViewRow gridViewRow in GridAvailableUsers.Rows)
{
// only add selected topics.
CheckBox selCheckBox = (CheckBox)gridViewRow.Cells[3].Controls[1];
if (selCheckBox.Checked)
{
// do something
}
}
这将循环遍历所有行。如果您不想要这样的东西,那么您可能需要使用javascript解决方案。选中复选框来捕获所有行并使用行ID
更新隐藏字段答案 1 :(得分:0)
DataBind()
k事件之前listview
必须有Button_Clic
个函数;最有可能出现在page_load
事件中。如果您在page_load
事件中绑定了数据;如果(!Page.IsPostBack
)阻止;
希望这会有所帮助。