Флажок выбора элементов из Datatable - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь выбрать элементы Checkboxlist из значений Datatable на page_load. Но следующий код, похоже, не работает. Я что-то не так делаю?

.aspx page

  <asp:CheckBoxList ID="CheckBoxList2" runat="server"  DataSourceID="SqlDataSource1"  DataTextField="p_name" DataValueField="p_id" RepeatColumns="5" RepeatDirection="Horizontal">
  </asp:CheckBoxList>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>"
    SelectCommand="    select [p_id], [p_name] from [TABLE_A]"></asp:SqlDataSource>

Код:

    if (!IsPostBack)
    {
        int l_id = this.Request.QueryString["l_id"].ToString();

        DataTable dt = controller.RetrieveData(l_id);
        List<string> selectedValues = CheckBoxList2.Items.Cast<ListItem>()
                                .Select(li => li.Value)
                                .ToList();
        foreach (DataRow dr in dt.Rows)
        {
            if (selectedValues.Contains(dr["p_id"].ToString()))
                CheckBoxList2.Items.FindByValue(dr["p_id"].ToString()).Selected = true;
        }
    } 

1 Ответ

0 голосов
/ 24 марта 2020

Кажется, что событие Page_Load вызывается до привязки элементов CheckBoxList, поэтому элементы не выбираются.

Попробуйте добавить событие DataBound в свой checkBoxList, чтобы выбрать нужные элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...