2011-11-08 7 views
0

チェックボックスにデータバインドを実行しているので、チェックボックスに6つの値が表示され、作成時に2つのランダムな値がユーザーに与えられます。データバインドを実行した後、チェックボックスの値を確認するにはどうすればよいですか。値2と4は、ユーザのために与えている場合は、このチェックボックスは、私がデータバインドを使用してやっている1〜6を表示する必要があると私は2と4値をチェックする必要があり、私が行うことができますどのようにデータバインド後にチェックボックスの値をチェックする方法

while (reader.Read()) 
     { 
      rolegiven.Add(reader["RoleName"].ToString()); 
     } 
     reader.Close(); 
     if (rolegiven.Any(item => item.Equals("Value1"))) 
     { 
      ckl_EditRole.SelectedIndex = 0; 
     }else{} 
     if (rolegiven.Any(item => item.Equals("Value2"))) 
     { 
      ckl_EditRole.SelectedIndex = 1; 
     }else{} 
     if (rolegiven.Any(item => item.Equals("Value3"))) 
     { 
      ckl_EditRole.SelectedIndex = 2; 
     }else{} 

場合、値2と3が選択されている(データバインディングから値2と値3がユーザーに与えられていることが分かります)、値3のみがチェックされます。どうすればいいですか

+0

私はあなたがCheckBoxListをバインドしていて、チェックボックスitem2とitem4にチェックを入れたいと思っています。ではない? – adatapost

+0

はい、複数のアイテムを選択したい – Mark

答えて

1

CheckBoxListのコントロールのItemsコレクションを使用する必要があります。

List<string> rolegiven = new List<string>() 
    { 
     "A","B","C","D","E","F" 
    }; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      CheckBoxList1.DataSource = rolegiven; 
      CheckBoxList1.DataBind(); 

      CheckBoxList1.Items[0].Selected = true; 
      CheckBoxList1.Items[2].Selected = true; 
      CheckBoxList1.Items[4].Selected = true; 

      //or 

      if(rolegiven.Any(item => item.Equals("A"))) 
       CheckBoxList1.Items[0].Selected = true; 
      if(rolegiven.Any(item => item.Equals("D"))) 
       CheckBoxList1.Items[3].Selected = true; 
      ... 
     } 
    } 
関連する問題