怎么样在datagrid控件中, 按下"删除" 之后, 能弹出一个对方框,提示: 是否确定要删除?

解决方案 »

  1.   


        Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
            Select Case e.Item.ItemType
                Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
                    Dim myTableCell As TableCell
                    myTableCell = e.Item.Cells(0)
                    Dim myDeleteButton As LinkButton
                    myDeleteButton = myTableCell.Controls(0)
                    myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除此行吗?');")
                    myDeleteButton.Text = "删除此行"
            End Select
        End Sub
      

  2.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>=0)
    {
    ((TextBox)e.Item.FindControl("btnSelect")).Attributes.Add("");
    }

    }
      

  3.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>=0)
    {
    ((Button)e.Item.FindControl("btnDelete")).Attributes.Add("onclick","confirm('是否要删除记录?')");
    }

    }
      

  4.   

    Dim myDeleteButton As Button
                        myDeleteButton = e.Item.FindControl("delBt")
                        myDeleteButton.Text = "删除"
                        myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除:" + Trim(e.Item.Cells(0).Text) + "此招聘信息吗?');")
    html:
    <asp:TemplateColumn HeaderText="操作">
    <ItemTemplate>
    <asp:Button id="delbt" runat="server" CssClass="DelCss" CommandName="Delete"></asp:Button>
    </ItemTemplate>
    </asp:TemplateColumn>
      

  5.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>-1)  // -1是表头
    {
    ((删除按钮类型)e.Item.Controls[0]).Attributes.Add("onclick","return confirm('真的删除?');");
    }
    }
      

  6.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>-1)  // -1是表头
    {
    ((删除按钮类型)e.Item.Cells[按钮所在列].Controls[0]).Attributes.Add("onclick","return confirm('真的删除?');");
    }
    }
      

  7.   

    瓦卡卡,这种问题已经很多人问过鸟,lz还是应该先搜索下csdn里面有没有,再来问
      

  8.   

    //先绑定控件
    this.myGrid.DataSource = this.myTab;
    this.myGrid.DataKeyField = "usr_id";
    this.myGrid.DataBind();
    //绑定之后循环此控件,为每一个按钮添加事件
    int i=0;
    int mycount = this.myGrid.Items.Count;for(i=0;i<mycount;i++)
    {
      //为模板列(删除)添加事件
      Button butdelete = (Button)this.myGrid.Items[i].FindControl("butdelete");
      butdelete.Attributes.Add("onclick","return(confirm('确认要删除记录吗?'));");
      //为按钮列(删除)添加事件
      LinkButton linkdelete = (LinkButton)this.myGrid.Items[i].Cells[7].Controls[0];
      linkdelete.Attributes.Add("onclick","return(confirm('确认要删除记录吗?'));");
    }
      

  9.   

    瓦卡卡,这种问题已经很多人问过鸟,lz还是应该先搜索下csdn里面有没有,再来问
      

  10.   

    最简单的办法,是在DataGrid控件的ItemCreated事件中加入以下程序:
    try
    {
    //假定第6列为删除按钮所在列
    AddConfirmAlert((WebControl)e.Item.Cells[5].Controls[0],"您确认删除此行?");
    }
    catch{}
    }其中的AddConfirmAlert函数定义为:
    public void AddConfirmAlert(System.Web.UI.WebControls.WebControl control,string text)
    {
      control.Attributes.Add("onClick","return confirm('"+text+"')");
    }
      

  11.   

    control.Attributes.Add("onClick","return confirm('"+text+"')");
      

  12.   

    如果是属性生成器中直接添加的删除,注意在第几列
    private void DgEmp_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Item)
    {
    LinkButton btn=(LinkButton)e.Item.Cells[5].Controls[0];
    btn.Attributes.Add ("onclick",
    "return confirm (\"您确定要删除此项记录吗?\");");
    }
    }
    如果是模板列中放置的一个BUTTON 
    private void DgEmp_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType==ListItemType.Item)
    {
    Button btn=(Button)e.Item.FindControl("btnDelete");
    btn.Attributes.Add ("onclick",
    "return confirm (\"您确定要删除此项记录吗?\");");
    }
    }两种方法都是在ItemDataBound中实现的
      

  13.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>-1)  // -1是表头
    {
    ((删除按钮类型)e.Item.Controls[0]).Attributes.Add("onclick","return confirm('真的删除?');");
    }
    }
      

  14.   


    DataGrid的ID:WareList
    事件:WareList_ItemCreated
    删除按钮的ID:btnDelete
    private void WareList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.FindControl("btnDelete")!=null)
    {
    ((LinkButton)e.Item.FindControl("btnDelete")).Attributes["onClick"] = "javascript: return confirm('您确实要删除这条记录吗?');";
    }
    }
      

  15.   

    为什么大家都要在temDataBound事件或ItemCreated
    事件中写呢??
    datagrid不是提供子一个专门的删除事件吗?
    DataGrid1_DeleteCommand
    这个事件为什么大家都不用而要用那两种昵,,有什么不同?
      

  16.   

    http://www.cnblogs.com/lovecherry/
    lovecherry的博客
    里面很多很好的DataGrid应用的例子
      

  17.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // if(! this.IsPostBack)
    // {
    // DataTable dt = this.GetData();
    // Session["DATA"] = dt;
    // this.BindDataGrid();
    // }
    // SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
    // SqlCommand myCommand = new SqlCommand("select * from person", myConnection);
    // myConnection.Open();
    // SqlDataReader dr = myCommand.ExecuteReader();
    // MyDataGrid.DataSource = dr;
    // MyDataGrid.DataBind();
    // myConnection.Close();
    if(!Page.IsPostBack)
    BindDataGrid();

    }
    private void BindDataGrid()
    {
    SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
    SqlCommand myCommand = new SqlCommand("select * from person", myConnection);
    myConnection.Open();
    SqlDataReader dr = myCommand.ExecuteReader();
    MyDataGrid.DataSource = dr;
    MyDataGrid.DataBind();
    myConnection.Close();

    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.MyDataGrid.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Cancel);
    this.MyDataGrid.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Edit);
    this.MyDataGrid.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Update);
    this.MyDataGrid.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.MyDataGrid_Delete);
    this.MyDataGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.MyDataGrid_ItemDataBound);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void MyDataGrid_Delete(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
    SqlCommand delCommand = new SqlCommand("delete from person where id=@id", myConnection);
    delCommand.Parameters.Add("@id",SqlDbType.Char,10);
        delCommand.Parameters["@id"].Value =MyDataGrid.DataKeys[e.Item.ItemIndex];
    myConnection.Open();
    delCommand.ExecuteNonQuery();
      myConnection.Close();
                BindDataGrid(); } private void MyDataGrid_Edit(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    MyDataGrid.EditItemIndex=e.Item.ItemIndex ;
    BindDataGrid();
    } private void MyDataGrid_Cancel(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    MyDataGrid.EditItemIndex =-1;
    BindDataGrid();
    } private void MyDataGrid_Update(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    SqlConnection myConnection = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123456");
    SqlCommand updateCommand = new SqlCommand("update person set name=@name where id=@id", myConnection);
    updateCommand.Parameters.Add("@name",SqlDbType.Char,30);
    TextBox txtName=(TextBox)e.Item.FindControl("txtName");
    updateCommand.Parameters["@name"].Value =txtName.Text;
    updateCommand.Parameters.Add("@id",SqlDbType.Char,10);
    updateCommand.Parameters["@id"].Value =MyDataGrid.DataKeys[e.Item.ItemIndex];
    myConnection.Open();
    updateCommand.ExecuteNonQuery();
    myConnection.Close();
    MyDataGrid.EditItemIndex =-1;
    BindDataGrid(); } //确认删除对话框
    private void MyDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {

    //删除确认    
    if(e.Item.ItemIndex != -1)
    {
    e.Item.Cells[4].Attributes.Add("onclick","return confirm('您真的要删除第 "+ e.Item.ItemIndex.ToString() + "行吗?')");
    }
    //颜色交替   e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='Yellow'");
    // if(e.Item.ItemType == ListItemType.Item) 
    // { 
    // e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#ffffff'"); 
    // }  if(e.Item.ItemType ==ListItemType.AlternatingItem)

    e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#ffffff'"); 

    }