前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="False"OnRowDeleting="gvTest_RowDeleting"
      BackColor="White"BorderColor="#CCCCCC"BorderStyle="None"BorderWidth="1px"CellPadding="3"Font_Size="12px"
        OnRowDataBound="gvTest_RowDataBound" AllowSorting="True">
        <Columns>
        <asp:TemplateField>
            <ItemTemplate>
            <asp:CheckBox ID="cb" runat="server"/>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField  HeaderText="测试名" DataField="TestMane"/>
        <asp:BoundField  HeaderText="测试内容" DataField = "TestContent" />
        <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
        </Columns>
        </asp:GridView>
    </div>
       
    </form>
</body>
</html>
后台代码:
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Bind();
        }
    }    //绑定gvTest的数据
    protected void Bind()
    {
        SqlConnection con = DB.CreateCon();//DB是自写的公共类,可以正常执行
        con.Open();
        SqlDataAdapter  sdr = new SqlDataAdapter("select * from test", con);
        DataSet ds = new DataSet();
        sdr.Fill(ds, "myTable");
        gvTest.DataSource = ds;
        gvTest.DataKeyNames = new String[] {"ID"};
        gvTest.DataBind();
        con.Close();
        sdr.Dispose();
    }    //删除时弹出确认对话框
    protected void gvTest_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        DB db = new DB();
        string sql = "delete from test where id=" + gvTest.DataKeys[e.RowIndex].Value.ToString();
        db.DeleteDate(sql);
        Bind();
    }
    protected void gvTest_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Insert)
            {
                ((LinkButton)e.Row.Cells[3].Controls[0]).Attributes.Add("onclick", "javascript:return confirm(''你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?'')");
            }
        }    }
}
这个是在用delete删除时,弹出确认对话框,但是不管我怎么改,都不能弹出对话框,求高手指正错误

解决方案 »

  1.   

    你confirm(''你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?'')");  这写的是不是有问题?
    this.Button1.Attributes.Add("onClick", "javascript:return confirm('确定删除:'+e.Row.Cells[1].Text +'吗?');");
      

  2.   


    onclientclick里直接写return confirm(''你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?'')"
    e.Row.Cells[1].Text换成DataBinder.eval();
      

  3.   

    何必呢 为什么你们都喜欢简单问题搞复杂化
    直接在页面中加 onclientclick 不就完了 真麻烦
      

  4.   

    我一般的做法是在添加两个模板列<asp:GridView ID="GridView1" runat="server" 
                onrowdatabound="GridView1_RowDataBound"             
                <Columns>
                <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Label ID="lb" runat="server" Text="绑定值"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server">删除</asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>        
            </asp:GridView>LinkButton lbtn = e.Row.FindControl("LinkButton1") as LinkButton;
    Label lb = e.Row.FindControl("lb") as Label;
    lbtn.Attributes.Add("OnClientClick", "javascript:return confirm('你确认要删除" + lb.Text + "吗?')");
      

  5.   

    红色地方写错了,像楼上说的,直接在html里面加个OnClientClick=""一般也能满足了吧
      

  6.   


     ((LinkButton)e.Row.Cells[3].Controls[0]).Attributes.Add("onclick", "return confirm('你确认要删除:" + e.Row.Cells[1].Text + "吗?')"); 
      

  7.   

    是不是这个判断影响了你Attribute属性的注册啊
    if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Insert)