我想实现这样的功能:当删除datagrid里面的一行数据时,先弹出一个确认对话框,如确定就继续删除,如否定就不删,请各位大侠赐教!

解决方案 »

  1.   

    孟老大有完整的Demo,看看去吧.有三个实现的方法.
    http://dotnet.aspx.cc/ShowDetail.aspx?id=81277B42-361C-4FAB-9A1E-B661ABE517F5
      

  2.   

    private void DG_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
    {
    LinkButton LinkB1 = (LinkButton)e.Item.FindControl("LB删除");
    LinkB1.Attributes.Add("onclick","javascript:return window.confirm('      真的确定删除!');");
    }
    }
      

  3.   

    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); 
     
    }  
      

  4.   

    protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
      {
       if ( keyData==Keys.Delete ))
       {
            return true;
       }
       else
        return base.ProcessCmdKey(ref msg,keyData);
      } 
      

  5.   

    protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
      {
       if ( keyData==Keys.Delete )
       {
             if(MessageBox.Show("Delete this row?", "confirm", MessageBoxButtons.YesNo,MessageBoxIcon.YesNO) == DialogResult.No) 
     
             return true; 
       }
       else
        return base.ProcessCmdKey(ref msg,keyData);
      }