我有一个Listview控件“lstStudents”,我在List viewControl中添加了复选框。我需要添加一个Select All复选框,导致检查ListView中的所有复选框我使用下面的代码,但它没有工作
private void chkAll_CheckedChanged(object sender, EventArgs e)
{
foreach (Control cont in lstStudents.Controls)
{
if (cont.GetType() == typeof(CheckBox))
{
(cont as CheckBox).Checked = true;
}
}
}
我正在使用c#windows Forms ......
答案 0 :(得分:2)
您正在与数据项而不是控件本身交谈
private void chkAll_CheckedChanged(object sender, EventArgs e)
{
foreach (ListViewItem item in lstStudents.Items)
{
item.Checked = chkAll.Checked;
}
}
所以不需要对这些项目进行额外的参考验证
答案 1 :(得分:1)
试试这个:
private void chkAll_CheckedChanged(object sender, EventArgs e)
{
foreach (ListViewDataItem item in lstStudents.Items)
{
CheckBox cbSelect = item.FindControl("cbSelect") as CheckBox;
if (cbSelect != null)
{
cbSelect.Checked = true;
}
}
}
假设你的listview定义是这样的:
<asp:listview runat="server">
<itemtemplate>
<asp:checkbox id="cbSelect" runat="server" />
</itemtemplate>
</asp:listview>