[ad_1]
嗨伙计,
在我的 asp:GridView
组件我有DeleteMethod 设置。 还设置了 CommandField:
ASP
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" ButtonType="Image" ControlStyle-Width="24px" EditImageUrl="~/Images/edit-icon-png-3601.png" CancelImageUrl="~/Images/close-button-png-30225.png" UpdateImageUrl="~/Images/check-tick-icon-14150.png" DeleteImageUrl="~/Images/trash-can-24846.png" />
在 OnRowDataBound()
方法我检查 DeleteButton
并将 javascript 添加到 onclientclick 事件。
javascript 可以工作,但是“确定”不会导致启动 DeleteMethod
在代码隐藏中。
当我不添加 JavaScript 时,该方法有效。
如何让删除命令按钮与 JavaScript 一起工作?
** 使用.NET Framework 4.7.2
我尝试过的:
我添加 JavaScript 的代码:
C
public static void AddDeleteMessage(GridViewRow row) { int nrControls = row.Controls.Count; Control lastGridViewCell = row.Controls[nrControls - 1]; var deleteButton = lastGridViewCell.Controls.OfType<ImageButton>().FirstOrDefault(btn => btn.CommandName == "Delete"); if (deleteButton != null) { deleteButton.OnClientClick = string.Format("javascript: return confirm(\"Are you sure?\");"); }
解决方案1
WebForms 链接/图像按钮是通过在单击它们时调用一些 JavaScript 来实现的。
但是你已经添加了JavaScript 前 无条件返回的东西 true/false
,这意味着这段代码永远不会被调用。
如果您查看页面的源代码,您将看到类似以下内容的内容:
超文本标记语言
onclick="javascript: return confirm(...); DoPostBack(...);"
显然,永远无法调用回发方法。
改变你的 OnClientClick
只到 return
如果用户选择取消:
C#
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";
[ad_2]
コメント