0

以下のスニペットに示すように、バインディングを使用してデータベースからリスト項目を取得するチェックボックス リストがあります。

 CheckBoxList1.DataSource = GetValues();
 CheckBoxList1.DataBind();

GetValues():

    var query = tran_DContext.get_ImportTabs();
    foreach (var item in query)
    {
        TabList.Add(item.TabName);
    }

    return TabList;

上記のスニペットは、列 TabName を正常に取得し、チェックボックス リストに配置します。しかし、Web サイトでチェックボックスが選択されている場合、「選択」の値がコードに流れません。何か不足していますか?私は次のコードを持っています:

 private List<string> SelectedTabs()
{
    string strTemp = string.Empty;
    List<string> Seltabs = new List<string>();

    foreach (ListItem lst in CheckBoxList1.Items)
    {
        if (lst.Selected)
            Seltabs.Add(CheckBoxList1.SelectedValue);
    }
    return Seltabs;
}

ヘルプ?

4

1 に答える 1

3

foreach ループに問題があります。複数の値が選択されているときに呼び出すCheckBoxList1.SelectedValueと、最初に選択された値が返されます。

代わりにこれを試してください:

foreach (ListItem lst in CheckBoxList1.Items)
{
    if (lst.Selected)
        Seltabs.Add(lst.Value);
}
于 2012-07-25T00:12:19.503 に答える