GridView里删除操作时,怎么样弹出 确认 取消 对话框? vs2005

在VS2005提供的GridView中我们可以直接添加一个CommandField删除列:<ASP:CommandField ShowDeleteButton="True" />,然后在GridView的OnRowDeleting事件中完成删除。但一般情况下我们在做这种删除操作时都需要先让用户确认一下,然后后再删除记录,以避免误操作引起的误删除。

那我们可以通过下面方法给GridView删除前加上一个确认对话框。

首先,在GridView的属性对框话框中点击“Columns”进入它的"字段"设计器;或者在设计窗口直接点击GridView控件右上角的那个小箭头,点击"编辑列",进入"字段"设计器。

接着在"字段"设计器中的左下方"选定的字段"框中,选择以前已加上的那个CommandField“删除”列,这时在右边它的属性列表下会看到一个"将此它段转换为 TemplateFied"的项,点击将它转换为TemplateFied列。

然后退出"字段"设计器,切换到源码视图你会发现该列已由原来的:
<ASP:CommandField ShowDeleteButton="True" />
变为了:
<ASP:TemplateField ShowHeader="False">
                                <ItemTemplate>
                                    <ASP:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"

CommandName="Delete"  Text="删除"></ASP:LinkButton>
 </ItemTemplate>

最后在<ASP:LinkButton>中加入:OnClientClick="return confirm('您确认删除该记录吗?');"

这样点击删除时就会先在客户端弹出“您确认删除该记录吗?”对话框,点击"确定",则进行删除;点击"取消",则不删除.
而原来在onRowDeleting事件中写的代码完全不用改变。
这里有个例子,完整源码如下:

        <asp:GridView ID="GridView1" runat="server" Width="98%" AutoGenerateColumns="False"
        DataKeyNames="privilegeid" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
        OnRowDeleting="GridView1_RowDeleting">
            <Columns>
                <asp:BoundField DataField="privilegeid" HeaderText="权限代号" SortExpression="privilegeid"/>
                <asp:BoundField DataField="dspname" HeaderText="权限名称" SortExpression="dspname"/>
                <asp:BoundField DataField="formname" HeaderText="表单位置" SortExpression="formname"/>
                <asp:BoundField DataField="creator" HeaderText="创建者" SortExpression="creator" ReadOnly="True"/>
                <asp:BoundField DataField="createdate" HeaderText="创建日期" SortExpression="createdate" ReadOnly="True"/>
                <asp:CommandField SelectText="修改" ShowSelectButton="True" />
 
                <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick="return confirm('您确认删除该记录吗?');"
                            Text="删除"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

 

然后在后台 直接写

 

    Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting

        'Dim id As String = GridView1.DataKeys(e.RowIndex).Value.ToString()
        'TextBox1.Text = "Delete from ryq.job where job_id='" & id & "'"
        'OracleOperator.execSQL("Delete from ryq.job where job_id='" & id & "'")
        'Me.bind()

    End Sub

 

如果是对页面上的Button点击后弹出 确认 取消 的对话框 可以 在后台事件里面写

        btnSave.Attributes.Add("onclick", "if(confirm('Are you sure to append a new record?')==false) return; ")
        button1.Attributes.Add("onclick", "return confirm('保存吗?');")

如果是页面弹出提示:

        'Response.Write("<script language=javascript>alert('提示')</script>")

 

 

posted on 2008-08-14 14:40  lwl0606  阅读(968)  评论(2编辑  收藏  举报

导航

我要啦免费统计