GridView的第一列是ButtonField,字段名是"删除",想一点之后弹出确认框,点确认则继续操作,否则返回.应该如何写?
听人说应该是JavaScrip语句,不过我不会............只有这些分了,请诸君相助.

解决方案 »

  1.   

    把删除改成
    <div onclick="javascript:return confirm('真的要删除吗?');">删除</div>
      

  2.   

    protected void gvGgl_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                           LinkButton delButton = (LinkButton)e.Row.Cells[0].Controls[0];
                delButton.Attributes.Add("onclick", "return confirm('你确认删除吗?');");          
              
            }
        }
    注意把CommandName设为Delete,要想成功删除,请自己写一个删除事件对应的方法
      

  3.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    e.Item.Cells[0].Attributes.Add("onClick","return confirm('你确定要删除这一项吗?');"); 
    }
      

  4.   

    用GridView了,证明你用VS2005了吧。恭喜,那么实现你说的功能,可以不用编写代码。
    1、点击GridView的快捷箭头,选‘编辑列’。
    2、加入一个ButtonFiled,在右边的属性框里设置HeadText(用以显示),定义一个CommandName(用以你点击以后触发的动作)
    3、点右下角的‘转化为模版列’,ok。
    4、右击GridView,‘编辑模版’--‘Column[..]--你之前定义的HeadText’,ItemTemplate里看见你的按钮了吗?点中,属性里有一项‘OnClientClick’,把“javascript:return confirm('真的要删除吗?');”粘贴进去。
    5、搞定你需要的功能了。
    6、如果你想点击按钮触发其他事件,可以在RowCommand事件里详细写
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "MyBtnClicked")//前面你定义的CommandName
        {
            Response.Write("kkk clicked");
        }
    }
    ---------------------呵呵,欢迎使用Vs2005开发Asp.net-------==== 
    ~~~~ 我的Blog:http://blog.csdn.net/quou2002 
      

  5.   

    quou2002(曲欧) ,老兄侠肝义胆,答的如此详细,真是国士风范.可是象老兄那样一改,我就无法用ButtonFiled来在GridView1_RowCommand(object sender, GridViewCommandEventArgs e)里面获取点击所在的行了:
            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = GridView1.Rows[index];
            ListItem item = new ListItem();
            parString = Server.HtmlDecode(row.Cells[2].Text);
    这个方法好象只有对自已新增列属于ButtonFiled性质的才有效.而上面几位仁兄的方法在试用时都报错.可能是有些要设置的地方我没有设置.恳请诸君救我........
      

  6.   

    我最早是用的模版列,但为了获取点击行的位置,改用的ButtonFiled.我个人猜能不能在
      switch(e.CommandName )
           {
              case "modify":
                    Response.Redirect("ModifyPostClass.aspx?parTransfer=" + parString);
                    break;
               case "del":
                    (此处加一条Java语句???????)
                    dbd1.StrTableName = "StationDefineTable";
                    dbd1.StrSqlWhere = "StationDefineCode = '" + parString + "'";
    的 case "del":下面直接加一条Java语句来解决问题呢?
      

  7.   

    恭喜你在继续使用VS2005,你进一步欲实现的功能,也不用编写代码。
    1、在前面的步骤4中,你在itemTemplate里看见你的按钮右上角的小箭头了吧,verygood,点击‘编辑DataBings’
    2、看见这一级别的绑定了吗?把 CommandArgument和你想操作的字段绑定吧(右边下拉列表选择)
    3、ok,现在你可以类似下面方法调用
    ------------------
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "MyBtnClicked")
        {
            Response.Write("you wanted " + e.CommandArgument.ToString());
        }
    }
    ------------------
    你无非就是想取到结果集中的cell里的内容,现在你想得到的内容绑定在CommandArgument里了,你就不用再什么index什么cell[].text了(复杂的cell你还要findcontrol,呵呵)-----------不用编代码,感觉就是好------绑定,无处不在------==== 
    ~~~~ 我的Blog:http://blog.csdn.net/quou2002 
      

  8.   

    quou2002(曲欧) 
       拜服老兄ing~~~~~~~~~~
      

  9.   

    <ASP:LINKBUTTON id="lbDelete" runat="server" causesvalidation="False" commandname="Delete" enableviewstate="False" onclientclick="return confirm('确定删除此项吗?');">删除</ASP:LINKBUTTON>这么简单的现成功能啊