2009-04-27 52 views
8

我有一個asp.net複選框列表綁定到一個linq到sql數據源,當我檢查我的CheckBoxList在頁面加載事件的項目數是0。能夠在我的複選框列表中設置選定的項目,但不能。如何在asp.net中設置多個選定的值checkboxlist

數據源的選定事件在頁面加載後觸發。如果是這種情況,我如何在列表中設置選定的項目?

如果我將SelectedValue設置爲一個值,它將只顯示最後一個值,而不是所選的所有值。我如何在頁面加載事件的checkboxlist中選擇多個值?

回答

1

聽起來像一個頁面生命週期 - 數據綁定問題。

你應該真的看看(的答案)this question

1

我使用DataBound事件來選擇設置選定的項目。

8

我知道這是一箇舊帖子,但我最近有同樣的問題。

要選擇DataBound CheckBoxList的多個項目,請處理DataBound事件並循環通過Items集合,根據需要單獨設置每個項目上的Selected屬性。

設置控件的SelectedValue屬性只會檢查最終項目。

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

不要忘記包含System.Web.UI.WebControls命名空間 – 2014-06-16 15:23:33

3

公共無效SetValueCheckBoxList(CheckBoxList的CBL,串S值) { 如果 {
ArrayList的值= StringToArrayList(S值)(string.IsNullOrEmpty(S值)!);
foreach(cbl.Items中的ListItem li) if(values.Contains(li.Value)) li.Selected = true;其他 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 2015-06-02 19:12:18

0

集的CheckBoxList選擇項目從列表:

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