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>")