我现在想在gridview中 添加一个ButtonField按钮  然后当在执行任务的时候 比如我按确认的时候,此时弹出一个对话框 显示“你是否真的确认” 如果我点是,则执行,否则,不执行一下的代码。 我看了很多资料 都是针对 删除按钮来说的,可是ButtonField所设计到的很少。请大家帮助。

解决方案 »

  1.   

    ButtonField ? 这可以点击?
    我一般用模板列,然后放个LinkButton
    然后再Command事件里写操作方法
      

  2.   

    你的 ButtonField 是放在模板列里面的吗? 可以指定它所在的单元格找到他 然后添加onclick 事件,模范我这个 if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    // ((LinkButton)e.Row.Cells[8].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除产品:\"" + e.Row.Cells[1].Text + "\"吗?')");
                    ((LinkButton)e.Row.Cells[3].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('确定要取消黑名单:\"" + ((Label)e.Row.FindControl("FriendName")).Text+ "\"吗?')");
                }
            } 
      

  3.   

    其实他只要的一句:
                 ((LinkButton)e.Row.Cells[3].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('确定要取消黑名单:\"" + ((Label)e.Row.FindControl("FriendName")).Text+ "\"吗?')");
                }
      

  4.   


    先谢谢给位了
    e.Row.RowType == DataControlRowType.DataRow 是什么意思  可以给出详细的代码 前台和后台的 都写一下 可以吗 各位前辈
      

  5.   

    两种方法!
    1、你可以将此列转换位模板,然后设置按钮的OnClientClick属性值为:return confirm("真的要删除吗?")
    2、在GridView的Row_DataBound()事件里面通过代码
    if (e.Row.RowType == DataControlRowType.DataRow)
     {
        ((LinkButton)e.Row.cells[1]).Attributes.Add("onclick", "return confirm('确定要删除吗?')");
     } 
      

  6.   

    前台
    <asp:TemplateField   HeaderText="确定">   
     <ItemTemplate>   
      <asp:Button ID = "ok2" runat ="server" CommandName="ok2" OnClientClick = 'return   confirm("你确定发送吗?")' />
      </ItemTemplate>   
     </asp:TemplateField>     后台
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)//修改状态以及确定时间列
        {
           if (e.CommandName == "ok2")//取消确认修改Flag和确认时间,确认人
            {
                //int index = Convert.ToInt32(e.CommandArgument);
                //GridViewRow row = GridView1.Rows[index];
                //String sqlString = "update UTC_header set Flag = 0 , Acctime = null ,Accuser = null where UTCid = '" + row.Cells[1].Text.ToString().Trim() + "'";
                //DBM = new DataBaseM();
                //DBM.RunProc(sqlString);
                //this.Bind();
                this.Label5.Text = "ok";
            }
        }如果点击确认发送后  就执行 if下面的代码 
    如果取消  就不执行IF下面的代码我试了一下 貌似可以大家看看有没有问题
      

  7.   

    参考:http://www.cnblogs.com/insus/articles/1411667.html