2017-09-27 16 views
0

我試圖製作一個餐廳窗體,當用戶訂購食物時將數據存儲到數據庫。如果用戶再次出現並輸入姓名,則應自動提交其他數據,如食物和提貨選項。對於食物,我有一個複選框。如何從c#中的單列數據中選擇多個複選框.net

這裏是插入代碼:

string strCheckValue = ""; 
if (CheckBox1.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox1.Text; 
} 
if (CheckBox2.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox2.Text; 
} 
if (CheckBox3.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox3.Text; 
} 
if (CheckBox4.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox4.Text; 
} 
if (CheckBox5.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox5.Text; 
} 
if (CheckBox6.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox6.Text; 
} 
if (CheckBox7.Checked) 
{ 
    strCheckValue = strCheckValue + "," + CheckBox7.Text; 
} 

的strCheckValue被存儲在數據庫中,並給出結果是這樣的: ,咖喱角,布瑞雅尼,烤餅

現在我想選擇所有用戶在點擊記事本按鈕時點擊食物時選擇的食物項目。

對於我的代碼是:

//checkbox value display 
CheckBox1.Checked = false; 
CheckBox2.Checked = false; 
CheckBox3.Checked = false; 
CheckBox4.Checked = false; 
CheckBox5.Checked = false; 
CheckBox6.Checked = false; 
CheckBox7.Checked = false; 
string aa = dr["ctm_food"].ToString(); 
string[] a = aa.Split(','); 
Label10.Text = a[2].ToString(); 
foreach (Control cc in this.Controls) 
{ 
    if(cc is CheckBox) 
    { 
     CheckBox b = (CheckBox)cc; 
     for(int j=1; j<a.Length; j++) 
     { 
      if (a[j].ToString() == b.Text) 
      { 
       b.Checked = true; 
      } 
     } 
    } 
} 

在label10,我可以看到,用戶訂購的食物。但複選框沒有被選中。什麼纔是完成這個練習的正確方法?

+0

您正在使用哪個ASP.NET? –

+0

什麼時候執行哪個代碼?當你想記住用戶的選擇?這個代碼面臨什麼問題? –

+0

它是4.0 @JohnKennedy –

回答

0

我相信this.Controls不包含您的複選框。如果您將所有複選框引用保留在一個地方,它也將簡化您的代碼。

CheckBox[] checkboxes = new CheckBox[] { 
    CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7 
}; 

string aa = dr["ctm_food"].ToString(); 
string[] a = aa.Split(','); 
Label10.Text = a[2].ToString(); 

foreach (CheckBox b in checkboxes) { 
    b.Checked = false; 
    for (int j = 1; j < a.Length; j++) { 
     if (a[j].ToString() == b.Text) { 
      b.Checked = true; 
     } 
    } 
} 
相關問題