2009-04-27 38 views
8

Tôi có danh sách hộp kiểm asp.net được liên kết với dữ liệu sqq để sql và khi tôi kiểm tra số mục của CheckBoxList của tôi trên trang tải sự kiện đó là 0. Tôi muốn để có thể đặt các mục đã chọn trong danh sách kiểm tra của tôi ở đây nhưng không thể.Làm thế nào để thiết lập nhiều giá trị được chọn trong danh sách asp.net

Sự kiện được chọn của nguồn dữ liệu sẽ kích hoạt sau khi tải trang. Nếu đây là trường hợp, làm cách nào tôi có thể đặt các mục đã chọn trong danh sách của mình?

Nếu tôi đặt SelectedValue thành giá trị, nó chỉ hiển thị giá trị cuối cùng được chọn thay vì tất cả các giá trị được chọn. Làm cách nào để chọn nhiều giá trị trong danh sách kiểm tra của tôi trong sự kiện tải trang?

Trả lời

1

Âm thanh như Vòng đời trang - Câu hỏi lập hóa đơn.

Bạn thực sự nên xem (câu trả lời cho) this question.

1

Tôi đã sử dụng sự kiện DataBound để chọn đặt các mục đã chọn.

8

Tôi biết đây là một bài đăng cũ nhưng gần đây tôi đã gặp sự cố tương tự.

Để chọn nhiều mục của hộp kiểm DataBound CheckBoxList, hãy xử lý sự kiện DataBound và lặp thông qua mục Bộ sưu tập thiết đặt thuộc tính Đã chọn riêng lẻ trên mỗi mục theo yêu cầu.

Đặt thuộc tính SelectedValue của điều khiển chỉ kiểm tra mục cuối cùng.

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

đừng quên để bao gồm các System.Web.UI.WebControls không gian tên –

3

public void SetValueCheckBoxList (CheckBoxList CBL, sValues ​​string) { nếu {
giá trị ArrayList = StringToArrayList (sValues) (string.IsNullOrEmpty (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; 
     } 

Cảm ơn, slnavn2000

3

đẹp phương pháp tôi sử dụng:

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

Điều này sẽ ném một lỗi trừ khi bạn có: using System.Linq; – cdonner

+0

Đối với tôi, cbl.Items trống ở Page_Load. – user7733611

0

bộ CheckBoxList được lựa chọn từ một danh sách:

 List<int> yourlist; 
     //fill yourlist 
     foreach (ListItem item in checkboxlist.Items) 
     { 
      if (yourlist.Contains(int.Parse(item.Value.ToString()))) 
       item.Selected = true;     
     } 
Các vấn đề liên quan