注意,是要在前台代码中实现这个 "询问用户是否删除"的功能,
只有当用户选择“确定删除后”才触发后台代码。前台代码 <asp:GridView ID="gv_OrderInfo" runat="server" OnRowDeleting="gv_OrderInfo_RowDeleting">
        <Columns>
            <asp:ButtonField CommandName="Delete" Text="删除" >
            <ItemStyle Width="30px"></ItemStyle>
            <ControlStyle ForeColor="Blue" />
            </asp:ButtonField>
        </Columns>
后台代码如下        protected void gv_OrderInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
           //我的要求是前台询问用户是否删除,当选择“确定删除”之后才触发此方法
        }

解决方案 »

  1.   

    使用模板列 <asp:GridView ID="gv_OrderInfo" runat="server" OnRowDeleting="gv_OrderInfo_RowDeleting">
    <Columns>
        <asp:TemplateField Header="删除">
                  <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnCommand="btnDelete_Command" CommandArguments="<%#Eval("ID")%>" OnClientClick="return confirm('确定要删除嘛?');"/>
        </asp:TemplateField>
    </Columns>
    </asp:GridView>public void btnDelete_Command(object sender,CommandEventArgs e)
    {
          string id= e.CommandArguments.ToString();
          string strSQL = "delete from TT where ID="+int.Parse(id);
          //执行删除逻辑即可
    }
      

  2.   

    可以在gv_OrderInfo_RowDataBound事件里写 protected void gv_OrderInfo_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)//(RowType是对象的行类型)这是判断绑定的,只有DataControlRowType.DataRow行能绑定数据
            {
                ((Button)(e.Row.Cells[4].Controls[0])).Attributes.Add("onclick","return confirm('确定要删除吗? ')");
            }
        }
      

  3.   

    警告 1 E:\Users\OROCHI.OROCHI-PC\Desktop\Now4.14\JiuboHISWeb\JiuboHIS_WebUI\OrderManage\OrderRegister.aspx: ASP.NET 运行时错误: 此上下文中不支持代码块。
    警告 2 验证(ASP.Net): 特性“Header”不是元素“TemplateField”的有效特性。
    警告 3 元素“Button”不是已知元素。原因可能是网站中存在编译错误,或者缺少 这怎么个情况呀???
      

  4.   

    是HeaderText="删除"
    CommandArgument='<%#Eval("ID")%>'可能是我先前拼写上有些问题,修正一下
      

  5.   

    好吧 我完整的发一下,这个页面是加载母版的<%@ Page Title="" Language="C#" MasterPageFile="../母版页/OrderManage.Master" AutoEventWireup="true" CodeBehind="OrderRegister.aspx.cs" Inherits="JiuboHIS_WebUI.预约管理.OrderRegister" %>
    <%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix="webdiyer" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server" >
        UID:<asp:Label ID="lb_UID" runat="server" Text="名字" ForeColor="Red"></asp:Label>
        &nbsp; Role:<asp:Label ID="lb_Role" runat="server" Text="角色"></asp:Label>
        <br />
        <asp:Button ID="btn_NewOrder" runat="server" OnClick="btn_NewOrder_Click" 
            Text="新增" />
        <br />
        <br />    <asp:GridView ID="gv_OrderInfo" runat="server" 
            OnSelectedIndexChanged="gv_OrderInfo_SelectedIndexChanged" 
            AutoGenerateColumns="False" OnRowEditing="gv_OrderInfo_RowEditing" 
            OnRowDeleting="gv_OrderInfo_RowDeleting">
            <Columns>
                <asp:ButtonField CommandName="Select" Text="查看" >
                <ControlStyle ForeColor="Blue" />
                <ItemStyle Width="30px"></ItemStyle>
                </asp:ButtonField>            <asp:BoundField DataField="状态" HeaderText="状态" ReadOnly="True">
                <ItemStyle Width="85px"></ItemStyle>
                </asp:BoundField>            <asp:BoundField DataField="医院" HeaderText="医院" ReadOnly="True">
                <ItemStyle Width="75px"></ItemStyle>
                </asp:BoundField>
               
                <asp:ButtonField CommandName="Edit" Text="修改" >
                <ControlStyle ForeColor="Blue" />
                <ItemStyle Width="30px"></ItemStyle>
                </asp:ButtonField>            <asp:TemplateField Header="删除">
                     <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnCommand="btnDelete_Command" CommandArguments="<%#Eval("ID")%>" OnClientClick="return confirm('确定要删除嘛?');"/>
               </asp:TemplateField>           
            </Columns>    </asp:GridView>    <br />    <webdiyer:AspNetPager ID="AspNetPager1" runat="server" 
            onpagechanged="AspNetPager1_PageChanged" 
            CurrentPageButtonClass="" FirstPageText="首页" LastPageText="尾页" 
            NextPageText="后页" PrevPageText="前页" PageSize="18" AlwaysShow="True" CustomInfoHTML="第&lt;font color='red'&gt;&lt;b&gt;%currentPageIndex%&lt;/b&gt;&lt;/font&gt;页,共%PageCount%页,每页显示%PageSize%条记录" PageIndexBoxType="DropDownList" 
            ShowCustomInfoSection="Left" ShowPageIndexBox="Auto" Font-Size="11pt" 
            Wrap="False">
        </webdiyer:AspNetPager>    <br />    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <br />
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        <br />
        <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
    </asp:Content>
      

  6.   

     <asp:GridView ID="gv_OrderInfo" runat="server" OnRowDeleting="gv_OrderInfo_RowDeleting">
         <Columns>
                 <asp:TemplateField HeaderText="删除">
                     <ItemTemplate>
                            <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnCommand="btnDelete_Command" CommandArgument="<%#Eval("ID")%>" OnClientClick="return confirm('确定要删除嘛?');"/>
                     </ItemTemplate>
                </asp:TemplateField>
         </Columns>
    </asp:GridView> 
      

  7.   


                <asp:TemplateField HeaderText="删除">
                      <ItemTemplate>
                     <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnCommand="btnDelete_Command" CommandArgument="<%#Eval("ID")%>" OnClientClick="return confirm('确定要删除嘛?');"/>
                     </ItemTemplate>
               </asp:TemplateField>红色部分的ID,你的表中有这个主键字段吧?这个是你实际要删除的数据表某一行对应的编号
      

  8.   


      <asp:TemplateField HeaderText="删除">
      <ItemTemplate>
      <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnCommand="btnDelete_Command" CommandArgument='<%#Eval("ID")%>'  OnClientClick="return confirm('确定要删除嘛?');"/>
      </ItemTemplate>
      </asp:TemplateField>
      

  9.   

    现在的警告
    警告 1 元素“Button”不是已知元素。原因可能是网站中存在编译错误,或者缺少 web.config 文件。
    PS:警告虽然无所谓,但是设计界面显示的控件已经毁掉了 看着不舒服
      

  10.   

    这个可以了 , 你修改了哪里?CommandArgument='<%#Eval("ID")%>'这个是干什么用的?
    PS:每一行的主键是在后台绑定的。。->    gv_OrderInfo.DataKeyNames = new string[] { "GUID", "ComeGUID", "PatientGUID" };//设置键
      

  11.   

    这个可以了 问一下 CommandArgument='<%#Eval("ID")%>'是干什么用的?怎么用?PS:每一行的主键我之前在后台已经绑定了->            gv_OrderInfo.DataKeyNames = new string[] { "GUID", "ComeGUID", "PatientGUID" };//设置键
      

  12.   

    换成LinkButton试试看,没打开VS,没测试<asp:TemplateField HeaderText="删除">
       <ItemTemplate>
              <asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandArgument='<%#Eval("ID") %>'
                                                    CausesValidation="False" OnCommand="btnDelete_Command" OnClientClick="return confirm('确定要删除嘛?');"></asp:LinkButton>
         </ItemTemplate>
    </asp:TemplateField>
      

  13.   

    编译器错误消息: CS1061: “ASP.ordermanage_orderregister_aspx”不包含“btnDelete_Command”的定义,并且找不到可接受类型为“ASP.ordermanage_orderregister_aspx”的第一个参数的扩展方法“btnDelete_Command”(是否缺少 using 指令或程序集引用?)源错误:行 91:   <asp:TemplateField HeaderText="删除">
    行 92:   <ItemTemplate>
    行 93:   <asp:Button ID="btnDelete" runat="server" CommandName="Delete" OnCommand="btnDelete_Command" CommandArgument='<%#Eval("ID")%>' OnClientClick="return confirm('确定要删除嘛?');"/>行 94:   </ItemTemplate>
    行 95:   </asp:TemplateField>
      

  14.   

    这个是命令参数啊,方便后台获取该值进行操作。看来你这个表的主键字段是GUID了,你设定了没关系,你将这里换成GUID即可<asp:TemplateField HeaderText="删除">
      <ItemTemplate>
      <asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandArgument='<%#Eval("GUID") %>'
      CausesValidation="False" OnCommand="btnDelete_Command" OnClientClick="return confirm('确定要删除嘛?');"></asp:LinkButton>
      </ItemTemplate>
    </asp:TemplateField>
      

  15.   

    嗯是三种GUID同时进行判断的,貌似你的写法和我之前的写法有些出入了。。btnDelete_Command这个事件在后台需要写是么?
      

  16.   

    需要处理一下,我的这种写法很常用啊,处理起来也方便啊
    public void btnDelete_Command(object sender,CommandEventArgs e)
    {
         string id= e.CommandArguments.ToString();
         string strSQL = "delete from 你的表名 where GUID="+int.Parse(id);
         //执行删除逻辑即可
         ...
    }
      

  17.   

    如果你想传递多个参数的话,将三个参数都写到CommandArgument中,用一定的符号分割,然后取值的时候,再按照这个符号进行分割使用即可。参考
      

  18.   

    http://blog.163.com/cailiangjun@126/blog/static/2679157120115315220901/