2013-11-27 14 views
0

在這裏,我已經創建的CheckBox動態..怎麼寫檢查更改事件動態創建的CheckBox

基於對DDL複選框的選擇創建並存儲到SQL Server ....

但這些都是之前插入檢查... OK

所以現在我要檢查,爲我創造checkedChange事件....

我想,在checkedchange事件已經插入值更新.. ...

protected void EventDuration_DDL_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     con.Open(); 

      DateTime dt = DateTime.Parse(StartDate_TB.Text); 
      int n = Int32.Parse(EventDuration_DDL.SelectedItem.ToString()); 


      for (int i = 0; i < n; i++) 
      { 
       SqlCommand cmd = new SqlCommand("insert into EventDays(EventDay,EventStatus)values(@EventDay,@EventStatus)", con); 
       Label NewLabel = new Label(); 
       NewLabel.ID = "Label" + i; 
       var eventDate = dt.AddDays(i); //Calendar1.SelectedDate.Date.AddDays(i); 
       NewLabel.Text = eventDate.ToLongDateString(); 

       CheckBox newcheck = new CheckBox(); 
       newcheck.ID = "CheckBox" + i; 
       newcheck.CheckedChanged += newcheck_CheckedChanged; 
       this.Labeldiv.Controls.Add(new LiteralControl("<span class='h1size'>")); 
       this.Labeldiv.Controls.Add(NewLabel); 
       this.Labeldiv.Controls.Add(new LiteralControl("</span>")); 
       this.Labeldiv.Controls.Add(new LiteralControl("<div class='make-switch pull-right' data-on='info'>")); 
       this.Labeldiv.Controls.Add(newcheck); 
       this.Labeldiv.Controls.Add(new LiteralControl("</div>")); 
       this.Labeldiv.Controls.Add(new LiteralControl("<br/>")); 

       cmd.Parameters.AddWithValue("@EventDay", NewLabel.Text); 
       cmd.Parameters.AddWithValue("@EventStatus", newcheck.Checked ? 1 : 0); 
       cmd.ExecuteNonQuery(); 

      } 

     con.Close();  
    } 

    void newcheck_CheckedChanged(object sender, EventArgs e) 
    { 
     SqlCommand cmd = new SqlCommand("update EventDays set [email protected],[email protected] where [email protected])", con); 


    } 

如何編寫????????????

第一次,選定的項目必須插入到sql-server中,再次選擇的項目必須更新已經在sql-server中的行...那麼什麼是代碼?

回答

0

using System.Text.RegularExpressions;

protected void EventDuration_DDL_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     con.Open(); 
     Labeldiv.Controls.Clear(); 
     int n = Int32.Parse(EventDuration_DDL.SelectedItem.ToString()); 


     for (int i = 0; i < n; i++) 
     { 
      SqlCommand cmd = new SqlCommand("insert into EventDays(EventDay,EventStatus)values(@EventDay,@EventStatus)", con); 
      Label NewLabel = new Label(); 
      NewLabel.ID = "Label" + i; 
      var eventDate = DateTime.Now.AddDays(i); //Calendar1.SelectedDate.Date.AddDays(i); 
      NewLabel.Text = eventDate.ToLongDateString(); 

      CheckBox newcheck = new CheckBox(); 
      newcheck.AutoPostBack = true; 
      newcheck.ID = "CheckBox" + i; 
      newcheck.CheckedChanged += new EventHandler(newcheck_CheckedChanged); 
      this.Labeldiv.Controls.Add(new LiteralControl("<span class='h1size'>")); 
      this.Labeldiv.Controls.Add(NewLabel); 
      this.Labeldiv.Controls.Add(new LiteralControl("</span>")); 
      this.Labeldiv.Controls.Add(new LiteralControl("<div class='make-switch pull-right' data-on='info'>")); 
      this.Labeldiv.Controls.Add(newcheck); 
      this.Labeldiv.Controls.Add(new LiteralControl("</div>")); 
      this.Labeldiv.Controls.Add(new LiteralControl("<br/>")); 

      cmd.Parameters.AddWithValue("@EventDay", NewLabel.Text); 
      cmd.Parameters.AddWithValue("@EventStatus", newcheck.Checked ? 1 : 0); 
      cmd.ExecuteNonQuery(); 

     } 

    protected void newcheck_CheckedChanged(object sender, EventArgs e) 
    { 
     CheckBox currentCheckbox = sender as CheckBox; 
     string extractInteger = Regex.Match(currentCheckbox.ID, @"\d+").Value; 
     Label currentlabel = (Label)Labeldiv.FindControl("Label" + extractInteger); 
    } 

雷神嗨,

I think,Your main purpose to extract the corresponding label text and checkbox values to pass parameter to your sql statement. 
    I have extracted the required values in the above code.Just map the values with your parameter and execute like you have previous done in the EventDuration_DDL_SelectedIndexChanged.All the Best buddy. 
+0

這是第一次,選擇項目必須插入SQL服務器,再次入選項目必須更新其已經在SQL服務器的行...那麼是什麼碼??? – THOR

+0

現在也不會觸發事件.. – THOR

+0

嘗試在單獨的函數中添加EventDuration_DDL_SelectedIndexChanged中的代碼,並從頁面加載中調用該函數。然後檢查 –

相關問題