2013-06-24 214 views
0

我有一個日曆表,其中包含名爲工作日的列,其中包含表示工作日的條目(1或0)1和代表假日的0。現在,當我從數據庫中獲取數據時,我想顯示帶有假期的複選框,並選中其他未選中的複選框。例如,如果六月數據返回的月份是1111100 ...,那麼應該取消選中前5個複選框,然後在6月的30天內進行2次等等檢查。在我的網頁中,我有兩個文本框,以年和月作爲輸入。當我搜索複選框時,應該顯示該月份。你能告訴我這個問題的代碼嗎?我試過的代碼如下。動態添加複選框

公共無效搜索(對象發件人,EventArgs的){ 嘗試 {

  string cnnString = "Server=localhost;Port=3307;Database=leavesystem;Uid=root;Pwd=ashish"; 
      MySqlConnection cnx = new MySqlConnection(cnnString); 
      cnx.Open(); 
      string cmdText = "Select WorkingDays from calender where Year = '" + year.Value +"' and Month = '" + month.Value +"' "; 
      MySqlCommand cmd = new MySqlCommand(cmdText, cnx); 
      MySqlDataAdapter adapter = new MySqlDataAdapter(); 
      DataSet ds = new DataSet(); 
      adapter.SelectCommand = cmd; 
      string a[] = adapter.Fill(ds); 

       int size = a.Length; 
       CheckBox[] cbl = new CheckBox[size]; 
        for (int i = 0; i < a.Length; i++) 
         { 
          cbl[i] = new CheckBox(); 
          cbl[i].Text = a[i].ToString(); 
          this.Form.Controls.Add(cbl[i]); 
         } 
       }} 
     catch (MySqlException ex) 
     { 

      string msg = "Insert Error: 'Error ' "; 
      msg += ex.Message; 
      throw new Exception(msg); 
     } 
    } 

現在我得到的錯誤。首先,我無法獲取字符串數組a中的adapter.fill值,然後前面的代碼無法工作。誰能幫我嗎?在代碼

<asp:CheckBoxList ID="checks" runat="server" RepeatDirection="Horizontal"/> 

那麼後面:

+0

被測試我再次更新的答案,suerly作品!!!!!!!!!! –

+0

你試過更新的答案了嗎? –

+0

是的,我做的人。代碼沒有錯誤,但只有1個複選框顯示在網頁上。 –

回答

0

您可以創建一個CheckBoxList因爲這

char[] a=adapter.Fill(ds).ToString().ToCharArray(); 
ListItem[] items=new ListItem[a.Count()]; 
int i=0; 
foreach (char m in a){ 
    items[i]=new ListItem(m.ToString()); 
    if(m=='0') 
     items[i].Selected=true; 
    else 
     items[i].Selected=false; 
    checks.Items.Add(items[i]); 
    i++; 
} 
+0

@AshishBatra我更新了答案 –

+0

我試圖用你說什麼,但它說(智力不包含數,而不是擴展方法計數的定義接受int類型的第一個參數可以發現) –

+0

@AshishBatra在代碼頂部添加此:'使用System.Linq;' –