11

linq to sql データソースにバインドされた asp.net チェックボックス リストがあり、ページ ロード イベントで CheckBoxList の項目数を確認すると、0 です。ここでチェックボックス リストに選択した項目を設定できるようにしたいのですが、できません。 .

データソースの選択されたイベントは、ページの読み込み後に発生します。この場合、選択したアイテムをリストに設定するにはどうすればよいですか?

SelectedValue を値に設定すると、選択されたすべての値ではなく、選択された最後の値のみが表示されます。pageload イベントのチェックボックスリストで複数の値を選択するにはどうすればよいですか?

4

7 に答える 7

10

これは古い投稿であることは知っていますが、最近同じ問題が発生しました。

DataBound CheckBoxList の複数の項目を選択するには、DataBound イベントを処理し、Items コレクションをループ処理して、必要に応じて項目ごとに Selected プロパティを個別に設定します。

コントロールの SelectedValue プロパティを設定すると、最終項目のみがチェックされます。

 foreach (ListItem item in MyCheckBoxList.Items)
 {
     item.Selected = ShouldItemBeSelectedMethod(item.Value);
 }
于 2010-03-17T14:57:12.037 に答える
5

私が使用する良い方法:

 private void SetCheckBoxListValues(CheckBoxList cbl, string[] values)
        {
            foreach (ListItem item in cbl.Items)
            {
                item.Selected = values.Contains(item.Value);
            }
        }
于 2014-12-24T10:21:52.997 に答える
3
public void SetValueCheckBoxList(CheckBoxList cbl, string sValues)
        {
            if (!string.IsNullOrEmpty(sValues))
            {                
                ArrayList values = StringToArrayList(sValues);             
                foreach (ListItem li in cbl.Items)
                {
                    if (values.Contains(li.Value))
                        li.Selected = true;
                    else
                        li.Selected = false;                    
                }               
            }
        }

private ArrayList StringToArrayList(string value)
        {
            ArrayList _al = new ArrayList();
            string[] _s = value.Split(new char[] { ',' });

            foreach (string item in _s)
                _al.Add(item);

            return _al;
        }

ありがとう、slnavn2000

于 2010-04-12T04:32:31.730 に答える
1

Page Lifecycle - Databinding の質問のように聞こえます。

この質問(への回答) を実際に確認する必要があります。

于 2009-04-27T11:39:16.487 に答える
1

DataBound イベントを使用して、選択した項目を選択して設定しました。

于 2009-04-29T07:38:53.287 に答える
0

チェックボックスを設定して、リストから選択した項目をリストします:

        List<int> yourlist;
        //fill yourlist
        foreach (ListItem item in checkboxlist.Items)
        {
            if (yourlist.Contains(int.Parse(item.Value.ToString())))
                item.Selected = true;                
        }
于 2016-02-17T06:16:11.517 に答える