http://xml.sz.luohuedu.net/xml/ShowList.asp?id=1

解决方案 »

  1.   

    5.54 How can I put up a confirmation question when the user tries to delete a row in the datagrid by clicking on the row header and pressing the Delete key?     You can handle this by subclassing your grid and overriding either PreProcessMessage or ProcessDialogKey. The code below assumes your datasource is a dataview. If it is not, you could just remove that check 
     
    [C#] 
     
    public override bool PreProcessMessage( ref Message msg ) 
     

     
         Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode; 
     
         if(msg.Msg == WM_KEYDOWN 
     
              && keyCode == Keys.Delete 
     
              && ((DataView) this.DataSource).AllowDelete) 
     
         { 
     
              if(MessageBox.Show("Delete this row?", "", MessageBoxButtons.YesNo) == DialogResult.No) 
     
                   return true; 
     
         } 
     
         return base.PreProcessMessage(ref msg); 
     

      
      

  2.   

    http://expert.csdn.net/Expert/topic/2241/2241443.xml?temp=7.426089E-02
      

  3.   

    在DataGrid1_ItemCreated中写
    if ( 需要删除的条件 )
    {
      if (e.Item.ItemIndex >= 0)
      {
         LinkButton btn = (LinkButton)e.Item.Cells[删除按钮的列].Controls[0];
         if (btn != null)
         {btn.Attributes["onClick"] = "javascript:return confirm('删除后不能恢复,确认删除?');";
         }
      }
    }
      

  4.   

    private void GetData()//显示数据
    {
    string strConn=ConfigurationSettings.AppSettings["strConn"];
    SqlConnection SqlConn=new SqlConnection(strConn);
    SqlDataAdapter SqlCmd=new SqlDataAdapter("select * from Subject order by SubjectID desc",SqlConn); 
    DataSet SqlDS=new DataSet();
    SqlCmd.Fill(SqlDS,"Subject");
    DataGrid1.DataSource=SqlDS.Tables["Subject"].DefaultView;
    DataGrid1.DataBind(); for(int i=0;i<DataGrid1.Items.Count;i++)
    {
    LinkButton LBDel=(LinkButton)DataGrid1.Items[i].FindControl("LinkButton1");
    LBDel.Attributes["OnClick"]="return confirm('是否确定删除该记录!')";
    }
    }
    最后再写删除的代码:private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string strConn=ConfigurationSettings.AppSettings["strConn"];
    SqlConnection SqlConn=new SqlConnection(strConn);
    string strID=e.Item.Cells[0].Text.Trim();
    SqlCommand SqlCmd=new SqlCommand("delete Subject where SubjectID='"+strID+"'",SqlConn);
    SqlConn.Open();
    SqlCmd.ExecuteNonQuery();
    DataGrid1.EditItemIndex=-1;
    GetData();
    SqlConn.Close();
    }实现原理:当用户单击删除时,系统会弹出对话框是否在删除,如果用户单击确定后,就会执行删除的代码,否则就不会执行删除的代码!