実行時にCheckBoxesとLabelsで塗りつぶす表のセルがあります。テーブル内のすべてのチェックボックスをループします。
List<string> lstUserPool = new List<string>();
DataTable dt = GetData("SELECT UserName FROM eData ORDER BY UserName;", "Data Source = lewcomp1\\COMPLIANCE; Initial Catalog = ComplianceData; Integrated Security = True;");
for (int i = 1; i < dt.Rows.Count; i++)
{
CheckBox cb = new CheckBox();
cb.ID = "cb" + dt.Rows[i]["Username"].ToString();
Label lbl = new Label();
lbl.ID = "lbl" + dt.Rows[i]["Username"].ToString();
lbl.Text = dt.Rows[i]["Username"].ToString();
lbl.Font.Size = new FontUnit("18px");
if (IsOdd(i))
{
cellUsersPoolLeft.Controls.Add(cb);
cellUsersPoolLeft.Controls.Add(lbl);
cellUsersPoolLeft.Controls.Add(new LiteralControl("<br/>"));
}
if (IsEven(i))
{
cellUsersPoolRight.Controls.Add(cb);
cellUsersPoolRight.Controls.Add(lbl);
cellUsersPoolRight.Controls.Add(new LiteralControl("<br/>"));
}
}
その後、これらのチェックボックスをループして、チェックされているものとされていないものを確認したいと思います。私はSO上に見つかった様々な例を試しましたが、運がありません。チェックボックスがTableCellに追加されていない場合とほとんど同じです。以下のループの両方でチェックボックスコントロールが見つかりません:
foreach (Control ctl in cellUsersPoolRight.Controls)
{
if (ctl is CheckBox)
{
}
}
//foreach(var checkBox in cellUsersPoolRight.Controls.OfType<CheckBox>())
//{
// if (checkBox.Checked)
// {
// naz.Add(checkBox.ID);
// }
//}
私はリピーターで初めてこのアプローチをしています。ありがとう! 1の代わりに2列のデータを許可するようにItemTemplateを変更する方法を知っていますか? –
これは非常に強力で、数回使った後はリストを管理するために私の行くところです。これはチェックボックスのリストに最適です。私はそれらをすべてチェックするために使用するいくつかの素晴らしいjavascriptを持っているか、jqueryでそれらをすべてチェック解除します。それも非常に便利な機能です。 – Enkode
すでに2つの列があります。 Look 1カラム/ tdはチェックボックス用、1カラム/ tdはユーザ名用です。追加する場合は、tdマークアップと追加データを追加するだけです。 – Enkode