我开始使用 jQuery BlockUI Plugin阻止页面的用户事件,直到在 C#/ASP.NET 端完成按钮处理。
所以我写了这个;
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.io/min/jquery.blockUI.min.js" ></script>
<script type="text/javascript">
$(document).ready(function () {
$('#MyButtonID').click(function () {
$.blockUI({ message: '<h1>Please wait..</h1>' });
});
});
</script>
如您所见,这是一个简单的代码,当我单击 asp:button
时阻止 UI,其中 ID
是 MyButtonID
直到它完成这是过程。这很好用。
现在,我尝试在此点击过程中根据条件创建一些警报。如果我理解清楚,现在我需要首先取消阻止我的页面,显示警报并再次保持阻止状态,直到完成按钮过程。
这就是为什么我写了两个函数(也许我可以在没有它们的情况下直接调用这些 $.unblockUI
和 $.blockUI
?) JavaScript 方面;
function UnblockUI() {
$.unblockUI();
}
function BlockUI() {
$.blockUI({ message: '<h1>Please wait..</h1>' });
}
据我搜索,在服务器端调用 Javascript 函数的最常见方法是使用 ClientScriptManager.RegisterStartupScript
C#中的方法。所以我试着在 C# 端提醒一些事情作为一个例子;
if(condition)
{
string script = string.Format("alert('{0}');", "Some error message");
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "alert", script, true);
}
它奏效了。之后,我尝试通过在我的 javascript 端调用 UnblockUI 函数来取消阻止页面,但它没有取消阻止。
if(condition)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "unblock", "UnblockUI", true);
string script = string.Format("alert('{0}');", "Some error message");
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "alert", script, true);
}
如果我理解正确,这个 UnblockUI
参数调用我在上面定义的 UnblockUI
javascript 函数,这个函数调用 $.unblockUI();
并取消阻止我的页面,该页面已被阻止,但正如预期的那样,它没有工作。
我在这里错过了什么?还是我甚至不明白这个插件可以让您在使用 AJAX 时模拟同步行为,而无需锁定浏览器 语句?
最佳答案
尝试使用如下函数调用:
function unblockUI() {
$(function() {
$.unblockUI();
});
}
function blockUI() {
$(function() {
$.blockUI({ message: '<h1>Please wait..</h1>' });
});
}
我希望我能帮助...
关于javascript - 如何使用 jquery-blockui 取消阻止被阻止的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34418417/