logo

给 GridView 的 ButtonField 列添加确认删除对话框

作者:孟宪会 阅读:1606 发表于:2010-09-02 17:09:16

ASPX 代码
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  
  
// 计算数据,完全可以从数据看取得
  ICollection CreateDataSource()
  {
    System.Data.DataTable dt
= new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(
new System.Data.DataColumn("id", typeof(System.Int32)));
    dt.Columns.Add(
new System.Data.DataColumn("Name", typeof(System.String)));
    dt.Columns.Add(
new System.Data.DataColumn("Score", typeof(System.Double)));
    System.Random rd
= new System.Random();
    
for (int i = 0; i < 10; i++)
    {
      dr
= dt.NewRow();
      dr[
0] = i * i;
      dr[
1] = "【孟子E章】" + i.ToString();
      dr[
2] = System.Math.Ceiling(rd.NextDouble() * 1000);

      dt.Rows.Add(dr);
    }
    System.Data.DataView dv
= new System.Data.DataView(dt);
    
return dv;
  }

  protected
void Page_Load(object sender, EventArgs e)
  {
    GridView1.DataSource
= CreateDataSource();
    GridView1.DataBind();
  }


  protected
void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    
if (e.Row.RowType == DataControlRowType.DataRow)
    {
      Button b
= e.Row.Cells[0].Controls[0] as Button;
      b.Attributes.Add(
"onclick", "if(confirm('你真的要删除吗?')){ __doPostBack('GridView1','$" + e.Row.RowIndex + "')}else{return false;}");
    }
  }

  protected
void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {
    GridView g
= (e.CommandSource as GridView);
    Label1.Text
= "你选择的行 ID = " + g.DataKeys[Convert.ToInt32(e.CommandArgument)].Value;
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  
<title></title>
</head>
<body>
  
<form id="form1" runat="server">
  
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"
    AutoGenerateColumns
="false" OnRowCommand="GridView1_RowCommand" DataKeyNames="id">
    
<Columns>
      
<asp:ButtonField ButtonType="Button" Text="删除" HeaderText="操作" />
      
<asp:BoundField DataField="id" HeaderText="Id" />
      
<asp:BoundField DataField="Name" HeaderText="姓名" />
      
<asp:BoundField DataField="Score" HeaderText="Score" />
    
</Columns>
  
</asp:GridView>
  
<asp:Label ID="Label1" runat="server" Font-Bold="True" ForeColor="#FF3300" Text=""></asp:Label>
  
</form>
</body>
</html>