我在一个GridView应用程序中有一个Asp.net控件,它有一个<asp:buttonField> of type="image"和CommandName="Delete"。
在到达OnRowDelete事件之前,是否有任何方法执行一段javascript?
在删除行之前,我只想简单确认一下。
谢谢!
编辑:请注意<asp:ButtonField>标记没有的OnClientClick属性。
发布于 2008-10-20 15:16:37
我将使用TemplateField,并使用常规的asp:按钮或asp:ImageButton填充ItemTemplate,这取决于所需的内容。然后,您可以执行与RowCommand事件拦截Delete命令时要执行的逻辑相同的逻辑。
然后,在这些按钮中的任何一个上,我将使用OnClientClick属性在此之前执行JavaScript确认对话框。
<script type="text/javascript">
function confirmDelete()
{
return confirm("Are you sure you want to delete this?");
}
</script>
...
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="DeleteButton" runat="server"
ImageUrl="..." AlternateText="Delete" ToolTip="Delete"
CommandName="Delete" CommandArgument='<%# Eval("ID") %>'
OnClientClick="return confirmDelete();" />
</ItemTemplate>
</asp:TemplateField>发布于 2010-03-01 20:18:13
我发现最优雅的方法是使用jQuery连接onClick事件:
<script type="text/javascript">
$(".deleteLink").click(function() {
return confirm('Are you sure you wish to delete this record?');
});
</script>
...
<asp:ButtonField ButtonType="Link" Text="Delete"
CommandName="Delete" ItemStyle-CssClass="deleteLink" />注意,我使用一个任意的CSS类来标识链接按钮。
发布于 2008-10-20 16:42:42
在GridView的RowCreated事件处理程序中,使用FindControl查找命名按钮,并将其添加到属性集合中:
btn.Attributes.Add("onclick", "return confirm('delete this record?');");只有在ASP.Net ()是真的情况下,即已经确定了的情况下,才会执行您的代码。
https://stackoverflow.com/questions/218733
复制相似问题