DataGrid中通過CHECKBOX來修改庫裡某個欄位的值

iDotNetSpace發表於2009-07-23

前臺頁如下:
其實主要的思路是,首先把要修改的那個欄位繫結為不可見的,然後在後臺的
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
                if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem) 
                { 
                       Control myControl =e.Item.Cells[7].FindControl("CheckBox2");
                    ((LinkButton)e.Item.Cells[4].Controls[0]).Attributes.Add("onclick","return confirm('確定要刪除?');"); 
     ((LinkButton)e.Item.Cells[6].Controls[0]).Attributes.Add("onclick","return confirm('確定要刪除?');"); 
     (myControl as CheckBox).Attributes.Add("onclick","if(!confirm('確定要修改不?') ) return false;"); 
     if(e.Item.Cells[8].Text=="0")
     {
      
      if(myControl!=null)
      {
       (myControl as CheckBox).Checked=true;
          }
     }
      }    
  }
以上是繫結的時候與庫裡的欄位一致,如果手選CHECKBOX來修改的時候
  
                
               

然後在後臺重寫一下TranChecked這個事件即可
具體程式碼如下:

protected void TranChecked(object sender, System.EventArgs e) 
  { 
   // sender為事件源,我們可以通過下面的方式獲得DataGrid當前行 
   CheckBox cb = (CheckBox)sender;
   DataGridItem item = cb.Parent.Parent as DataGridItem; 
   int id=int.Parse(item.Cells[5].Text);
   if(cb.Checked)
   {
    string sql="update Users set isdelete=0 where id="+id;
    Local.VoidSQL(sql);
   }
   else
   {
    string sql="update Users set isdelete=1 where id="+id;
    Local.VoidSQL(sql);
   }
   // 第一個Parent得到的是item的cell;第二個Parent得到Item

   // 下面就可以操作item的其他cells了 
  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-609992/,如需轉載,請註明出處,否則將追究法律責任。

相關文章