Почему значение в нескольких CheckBoxList выбрано, хотя я указал его с идентификатором - PullRequest
0 голосов
/ 04 мая 2018

Я генерирую три отдельных CheckBoxList

C #:

//...
foreach (DataRow dr in dt.Rows)
{
    ListItem li = new ListItem((string)dr["LD"], dr["ID"]+"");
    cl1.Items.Add(li);
    cl2.Items.Add(li);
    cl2.Items.Add(li);
}
//...
SelectCheckBoxList("76", cl2);


private void SelectCheckBoxList(string valueToSelect, CheckBoxList lst)
{
    ListItem listItem = lst.Items.FindByValue(valueToSelect);
    //ListItem listItem = lst.Items.FindByText(valueToSelect);
    if (listItem != null) listItem.Selected = true;
}

ASP.NET:

<asp:CheckBoxList ID="cl1" runat="server" RepeatDirection="Vertical" RepeatLayout="UnorderedList">
</asp:CheckBoxList>
<asp:CheckBoxList ID="cl2" runat="server" RepeatDirection="Vertical" RepeatLayout="UnorderedList">
</asp:CheckBoxList>
<asp:CheckBoxList ID="cl3" runat="server" RepeatDirection="Vertical" RepeatLayout="UnorderedList">
</asp:CheckBoxList>

Поскольку все они имеют одинаковое значение, но я хочу только значение в CheckBoxList с выбранным идентификатором cl2. Тем не менее, все три CheckBoxList имеют выбранный пункт.

Как я могу решить эту проблему, пожалуйста.

1 Ответ

0 голосов
/ 04 мая 2018

Ссылка на тот же ListItem добавляется в каждый список. Вместо этого добавьте копию ListItem в каждый список:

foreach (DataRow dr in dt.Rows)
{
    cl1.Items.Add(new ListItem((string)dr["LD"], dr["ID"]+""));
    cl2.Items.Add(new ListItem((string)dr["LD"], dr["ID"]+""));
    cl2.Items.Add(new ListItem((string)dr["LD"], dr["ID"]+""));
}
...