有这个代码:
<asp:UpdatePanel ID="id">
<asp:CommandField ButtonType="Image" InsertImageUrl="url/here" ShowInsertImage="true" ValidationGroup="valGr" />
</asp:UpdatePanel>
如何防止在 C# 代码中双击此按钮。
有这个代码:
<asp:UpdatePanel ID="id">
<asp:CommandField ButtonType="Image" InsertImageUrl="url/here" ShowInsertImage="true" ValidationGroup="valGr" />
</asp:UpdatePanel>
如何防止在 C# 代码中双击此按钮。
您可以首先创建一个保存提交的标志并将其添加到表单中。然后在 UpdatePanel 进行更新并等待返回时打开和关闭该标志。
例如,此代码仅在以下
fAlloToSubmit
情况下才允许提交表单(和 UpdatePanel) true
:
<script>
var fAlloToSubmit = true;
function AllowFormToRun()
{
if(!fAlloToSubmit)
alert("Please wait for the page to fully re-loaded.");
return fAlloToSubmit;
}
</script>
并在您后面的代码上将其设置在表单上。
protected void Page_Load(object sender, EventArgs e)
{
Page.Form.Attributes["onsubmit"] = "return AllowFormToRun();";
}
现在对于 UpdatePanel,您在进行更新时打开该标志,例如,当您单击该命令时:
<script>
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
// here is run when you click the command on the UpdatePanel
fAlloToSubmit = false;
}
function EndRequest(sender, args) {
// here is come after the upadate of the command
fAlloToSubmit = true;
}
</script>
这里的诀窍是我持有要提交的表单,而不是查看页面上的每个控件来禁用它。