• 实现对gridview删除行时弹出确认对话框的一种简单方法


    在VS2008提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,完后在它的RowDeleting事件中完成删除。但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除。
    可以通过下面方法给GridView删除前加上个确认对话框。
    首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器。接着在“字段”设计器中选择以前已加上的那个CommandField“删除”列,这时在它的属性列表下会看到一个“将此它段转换为 TemplateFied”的项,点击将它转换为TemplateFied列。
    完后退出该字段设计器,切换到源码视图你会发现该列已由原来的:<asp:CommandField ShowDeleteButton="True" />
    变为了:
    CODE:

    <asp:TemplateField ShowHeader="False">
        <ItemTemplate>
           <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" Text="删除" OnClientClick="javascript:return confirm('真的要删除吗?');"></asp:LinkButton>
       </ItemTemplate>
    </asp:TemplateField>

    最后在<asp:LinkButton>中加入:

    OnClientClick="javascript:return confirm('真的要删除吗?');"

    或者加入:

    OnClientClick="if(confirm('你确定要删除此记录吗?')){return true;}else{return false;}"

    这样点击删除时就会先在客户端弹出“确认要删除吗?”对话框,而原来在RowDeleting事件中写的代码完全不用改变。

    注意:CommandName="delete" CommandName 一定要设为"delete",否则将不触发GridView中的RowDeleting 事件.

    注意:在事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)里需要设置GridView中的DataKeysName = Fid 时,才可以找到相应的ID.(Fid为表的主键 id)

    具体的前台代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="OurTeamOrder.aspx.cs" Inherits="Admin_ProductSecondTypeOrder" %>  
      
    <!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="GridView1" runat="server" AutoGenerateColumns="False"   
                onrowediting="GridView1_RowEditing"   
                PageSize="30" DataKeyNames="ProductID"   
                onrowupdating="GridView1_RowUpdating"   
                onrowcancelingedit="GridView1_RowCancelingEdit"   
                onrowdeleting="GridView1_RowDeleting">  
                <Columns>  
                    <asp:BoundField DataField="ProductID" HeaderText="编号" ReadOnly="True" />  
                    <asp:BoundField DataField="ProductName" HeaderText="名称"   
                        ReadOnly="True" />  
                    <asp:BoundField DataField="ProductOrder" HeaderText="排序序号" />  
                    <asp:CommandField InsertVisible="False" ShowCancelButton="False"   
                        ShowEditButton="True" />  
                    <asp:TemplateField ShowHeader="False">  
                        <ItemTemplate>  
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"   
                                CommandName="Delete" Text="删除" OnClientClick="javascript:return confirm('真的要删除吗?');"></asp:LinkButton>  
                        </ItemTemplate>  
                    </asp:TemplateField>  
                </Columns>  
            </asp:GridView>  
        </div>  
        </form>  
    </body>  
    </html>  

    后台代码:

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)  
    {  
        //Delete sql code  
        model.ProductId = (int)GridView1.DataKeys[e.RowIndex].Value;  
        //model.ProductOrder = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim());  
        //model.ProductOrder = Convert.ToInt32(GridView1.Rows[e.RowIndex].Cells[2].Controls[0]);  
        //model.ProductTypeId = ((int)(GridView.Rows[e.RowIndex].Cells[0].Controls[0]));  
      
        product.DeleteOurTeamOrder(model);  
        GridView1.EditIndex = -1;  
        BindData();  
    }
  • 相关阅读:
    rebar
    namenode ha
    jmx
    doclint in jdk8
    maven source
    avd
    ccw-ide
    ST3使用
    Web worker
    离线web-ApplicationCache
  • 原文地址:https://www.cnblogs.com/xiangyisheng/p/5097145.html
Copyright © 2020-2023  润新知