即使在 Page.LoadComplete() 之后页面仍在加载
Page is still loading even after Page.LoadComplete()
我想在我的网页上禁用某些控件,同时根据对 DropDownList
控件的更改加载页面
当用户更改 DropDownList 时,我在其中有代码可以暂时禁用该控件。
myDDL.enabled =false;
我的 Page_Load()
上也有创建 LoadComplete
事件的调用。
Page.LoadComplete += new EventHandler(Page_LoadComplete);
在LoadComplete()
我只是重新启用DropDownList
控件
myDDL.enabled=true;
然而,真正发生的是我的控件已启用 "very quickly",即使页面仍然是 "loading",用户仍然可以更改 dropdownlist,
的值。
"loading" 是什么意思?
我有一个 gridview
和 CKeditor
文本框超过几行,我可以看到 gridview
已经加载,但 CKeditor
控件仍在它之前呈现停止,因为它在内部 (javascript) 进行加载。
有没有办法可以延迟 LoadComplete()
事件,比如 5 秒,让 CKeditor 中的 javascript 完成?
谢谢
如果你只想延迟 5 节,你可以这样做:
函数 loadComplete() {
setTimeout(function(){ myDDL.enable = true;}, 5000);
}
这将导致在调用 loadComplete 5 秒后启用 ddl。
所以我实际做的是在服务器上:
private void load_page (){
myDD.enable = false;
}
然后在客户端上,jquery:
<script>
$(document).ready(function() { $("#myDDL").prop('disabled', false); });
</script>
如果没有 jquery,您将使用 onload 事件处理程序作为表单的一部分。
此解决方案是严格的客户端解决方案,但采用 aspx 页面。在标记中分配了 onload 事件处理程序。
<html>
<head>
<script>
function init() {
document.getElementById("someDDL").disabled = false;
}
</script>
</head>
<body>
<form onload="init()">
<asp:DropDownList id="someDDL" clientIdMode="Static" runat="server" Enabled="false"></asp:DropDownList>
</form>
</body>
</html>
我通过简单地使用 Javascript 和 ...
解决了 delima
window.onload = function () {
setTimeout(function() {
var ddl = document.getElementById('<%=myDDL.ClientID%>');
if (ddl) ddl.removeAttribute('disabled');
}, 4500)
}
这延迟了重新启用下拉列表控件 4.5 秒,并且在加载所有 javascript 和其他控件之后。
我知道 onLoad() 在 DOM 加载后立即运行,但由于延迟,控件仅在我需要时才重新启用。
效果很好!
我想在我的网页上禁用某些控件,同时根据对 DropDownList
控件的更改加载页面
当用户更改 DropDownList 时,我在其中有代码可以暂时禁用该控件。
myDDL.enabled =false;
我的 Page_Load()
上也有创建 LoadComplete
事件的调用。
Page.LoadComplete += new EventHandler(Page_LoadComplete);
在LoadComplete()
我只是重新启用DropDownList
控件
myDDL.enabled=true;
然而,真正发生的是我的控件已启用 "very quickly",即使页面仍然是 "loading",用户仍然可以更改 dropdownlist,
的值。
"loading" 是什么意思?
我有一个 gridview
和 CKeditor
文本框超过几行,我可以看到 gridview
已经加载,但 CKeditor
控件仍在它之前呈现停止,因为它在内部 (javascript) 进行加载。
有没有办法可以延迟 LoadComplete()
事件,比如 5 秒,让 CKeditor 中的 javascript 完成?
谢谢
如果你只想延迟 5 节,你可以这样做:
函数 loadComplete() {
setTimeout(function(){ myDDL.enable = true;}, 5000);
}
这将导致在调用 loadComplete 5 秒后启用 ddl。
所以我实际做的是在服务器上:
private void load_page (){
myDD.enable = false;
}
然后在客户端上,jquery:
<script>
$(document).ready(function() { $("#myDDL").prop('disabled', false); });
</script>
如果没有 jquery,您将使用 onload 事件处理程序作为表单的一部分。
此解决方案是严格的客户端解决方案,但采用 aspx 页面。在标记中分配了 onload 事件处理程序。
<html>
<head>
<script>
function init() {
document.getElementById("someDDL").disabled = false;
}
</script>
</head>
<body>
<form onload="init()">
<asp:DropDownList id="someDDL" clientIdMode="Static" runat="server" Enabled="false"></asp:DropDownList>
</form>
</body>
</html>
我通过简单地使用 Javascript 和 ...
解决了 delimawindow.onload = function () {
setTimeout(function() {
var ddl = document.getElementById('<%=myDDL.ClientID%>');
if (ddl) ddl.removeAttribute('disabled');
}, 4500)
}
这延迟了重新启用下拉列表控件 4.5 秒,并且在加载所有 javascript 和其他控件之后。
我知道 onLoad() 在 DOM 加载后立即运行,但由于延迟,控件仅在我需要时才重新启用。
效果很好!