c# - 如何取消由按下 ButtonColumn 引起的提交事件

标签 c# javascript .net asp.net

我正在使用 ASP 数据网格,并且有一个 ButtonColumn。当按钮呈现到页面时,它是一个提交类型的输入。所以它是一个提交按钮。该按钮用于删除记录。但我想要一些 JavaScript 来确认用户想要删除记录。我遇到的问题是,即使我从确认方法返回 false,提交事件仍然会发生...

这里是将 javascript 方法分配给点击事件的服务器端代码:

Button deleteButton = e.Item.Cells[6].Controls[0] as Button;
if (deleteButton != null)
{
    deleteButton.OnClientClick = "confirmDelete()";
}

下面是创建数据网格的 ASP.net 代码:

<asp:DataGrid 
    runat="server" 
    ID="UsersList" 
    OnItemCommand="UsersList_ItemCommand" 
    AutoGenerateColumns="false"
    HeaderStyle-CssClass="dataTableHeader" 
    Width="60%">
    <Columns>
        <asp:HyperLinkColumn DataNavigateUrlField="Username" DataTextField="Username" HeaderText="Username"  DataNavigateUrlFormatString="~/Account/EditUser.aspx?user={0}"/>
        <asp:BoundColumn DataField="Email" HeaderText="Email" />
        <asp:ButtonColumn Text="Delete" HeaderText="Delete" ButtonType="PushButton" CommandName="DeleteUser" CausesValidation="false" />
    </Columns>
</asp:DataGrid>

以下是确认删除的 Javscript 代码:

<script>
    function confirmDelete() {
        var x = confirm("This action cannot be undone. Are you sure you want to delete this user?");
        return x;
    }
</script>

也许没有办法用 ButtonColumn 来完成这个任务。我正在考虑更改为 TemplateColumn,并在其中放置一个按钮。但随后我将不得不重新设计在后端处理这些点击事件的代码,该事件当前在 ItemCommand 处理程序中处理。

最佳答案

尝试:

 deleteButton.OnClientClick = "return confirmDelete()";

关于c# - 如何取消由按下 ButtonColumn 引起的提交事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418764/

相关文章:

c# - 如何使用相同的 ListView 移动 Group 的 ListViewItem 部分来代替另一个 ListViewItem?

C# WPF 应用程序启动非常慢

javascript - 将公式添加到带有函数的单元格会出现错误

javascript - 页面上的裂纹效果(非闪光)

.net - 如果您使用 Azure AppService 和 SSL,是否有必要通过 SSL 运行 docker 容器?

c# - 在C#中自动神奇地添加MySQL参数

c# - Directory.Exists (Dir) 功能未按预期工作

c# - 计算面积

javascript - 如何减少播放器位置?

C# EWS 托管 API : How to access shared mailboxes but not my own inbox