我有一个嵌套的datalist结构,并希望在每个cathegories上放置select all复选框。
顶部的复选框工作正常,但不知道如何为每个主目录执行此操作

这可以很好地工作:
protected void cbTamaminiSec_CheckedChanged(object sender, EventArgs e)
{
CheckBox cbTemp;
foreach (DataListItem ItemP in parentDataList.Items)
{
cbTemp = (CheckBox)parentDataList.Items[ItemP.ItemIndex].FindControl("cbTumunuSec");
cbTemp.Checked = cbTamaminiSec.Checked;
DataList nestedDataList = (DataList)parentDataList.Items[ItemP.ItemIndex].FindControl("nestedDataList");
foreach (DataListItem Item in nestedDataList.Items)
{
cbTemp = (CheckBox)nestedDataList.Items[Item.ItemIndex].FindControl("cbTamam");
cbTemp.Checked = cbTamaminiSec.Checked;
}
}
}但是我不知道部分选择(下面是parentdatalist中的复选框的代码),我把选定的id设为"0“来强调这个问题
protected void cbTumunuSec_CheckedChanged(Object sender, EventArgs e)
{
int selected = 0;//= (int)parentDataList.SelectedItem.ToString(); // problem is here..
DataList nestedDataList = (DataList)parentDataList.Items[selected].FindControl("nestedDataList");
foreach (DataListItem Item in nestedDataList.Items)
{
CheckBox cbTemp = (CheckBox)nestedDataList.Items[Item.ItemIndex].FindControl("cbTamam");
cbTemp.Checked = true;
}
}解决方案是什么?
发布于 2012-09-21 15:14:18
问题解决了!asp代码:
<asp:HiddenField ID="hiddenBaslikId" runat="server" Value='<%# Eval("baslikId") %>' />代码隐藏:
protected void cbTumunuSec_CheckedChanged(Object sender, EventArgs e)
{
CheckBox checkAll = (CheckBox)sender;
DataListItem item = (DataListItem)checkAll.NamingContainer;
HiddenField HiddenID = (HiddenField)item.FindControl("hiddenBaslikId");
int selected = Convert.ToInt32(HiddenID.Value)-1;
DataList nestedDataList = (DataList)parentDataList.Items[selected].FindControl("nestedDataList");
foreach (DataListItem Item in nestedDataList.Items)
{
CheckBox cbTemp = (CheckBox)nestedDataList.Items[Item.ItemIndex].FindControl("cbTamam");
cbTemp.Checked = true;
}
}发布于 2012-09-20 21:36:32
您可以尝试使用基于OfType LINQ Operator和Controls propery的代码
var allControls = nestedDataList.Items[index].Controls.OfType<CheckBox>();
....//Filter with `Where Operator`链接:http://msdn.microsoft.com/fr-fr/library/system.web.ui.control.controls(v=vs.80).aspx
https://stackoverflow.com/questions/12513744
复制相似问题