2009-04-27 26 views
8

linq to sqlデータソースにバインドされたasp.netチェックボックスリストがあり、ページロードイベントのCheckBoxListのアイテム数をチェックすると0になります。選択した項目をここのチェックボックスリストに設定することはできますが、できません。asp.netで複数の選択された値を設定する方法checkboxlist

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

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

答えて

1

Page Lifecycleのようなサウンド - データバインディングに関する質問。

this questionの回答をご覧ください。

1

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

8

私はこれが古い投稿だと知っていますが、私は最近同じ問題を抱えていました。

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

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

+0

System.Web.UI.WebControls名前空間を含めることを忘れないでください。 –

3
foreach (ListItem item in MyCheckBoxList.Items) 
{ 
    item.Selected = ShouldItemBeSelectedMethod(item.Value); 
} 

公共ボイドSetValueCheckBoxList(CheckBoxListのCBL、ストリングsValues) { なら{
ArrayListの値= StringToArrayList(sValues)(string.IsNullOrEmpty(sValues)!)。 foreach(cbl.ItemsのListItem li) { 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

3

ニース方法:リストから

private void SetCheckBoxListValues(CheckBoxList cbl, string[] values) 
     { 
      foreach (ListItem item in cbl.Items) 
      { 
       item.Selected = values.Contains(item.Value); 
      } 
     } 
+0

次のものがない限り、これはエラーをスローします。 using System.Linq; – cdonner

+0

私にとって、Page_Loadではcbl.Itemsは空です。 – user7733611

0

セットCheckBoxListの選択項目:

 List<int> yourlist; 
     //fill yourlist 
     foreach (ListItem item in checkboxlist.Items) 
     { 
      if (yourlist.Contains(int.Parse(item.Value.ToString()))) 
       item.Selected = true;     
     } 
関連する問題