<asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="3" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound"  >
                    <Columns>
                        <asp:ButtonField ButtonType="Button" CommandName="del" Text="刪除" />
                    </Columns>                </asp:GridView>在后台本意是给他添加了一个前台事件                 myButton.Attributes.Add("onclick","return del()");结果前台事件是执行了,但后台事件不执行了
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "del")
        {
            Response.Write("<script>alert('" + e.CommandArgument.ToString() +"')</script>");
        }
    }为什么?根本就不执行这个事件了

解决方案 »

  1.   

    另如果我将这个button转成模板列后,在后台怎样取出这个对像
    Button myButton = (Button)GridView1.FindControl("ButtonName"); ??
      

  2.   

    myButton.Attributes.Add("onclick","return confirm('是否真的删除?');"); 
     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
        { 
            if (e.CommandName == "del") 
            { 
                //执行删除操作
            } 
        } 
      

  3.   

    在gridview的RowDataBound事件获得模板列里的控件
    Button myButton = e.Row.FindControl("ButtonName") as Button;
    myButton.Attributes.Add("onclick","return confirm('是否真的删除?');"); 
      

  4.   

    myButton.Attributes.Add("onclick","return confirm('是否真的删除?');"); 这样不是不行  
    我在protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 这里设了断点,根本没有执行到这来
      

  5.   


    打错了,是这样还是不行            TableCellCollection myCells = e.Row.Cells;
                Button myButton = (Button)myCells[0].Controls[0];
                myButton.Attributes.Add("OnClick", "return confirm('是否真的刪除?');");
      

  6.   

    把onclick改成onClientClick试试呢