我需要在更新面板完全加载时运行JavaScript函数(我想要滚动),而不是在初始页面加载时运行。
请建议。
谢谢
我需要在更新面板完全加载时运行JavaScript函数(我想要滚动),而不是在初始页面加载时运行。
请建议。
谢谢
这是在更新之后获取最终事件的方法。
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(EndRequest);
function EndRequest(sender, args) {
}
</script>
未经测试
<script type="text/javascript">
var app = Sys.Application;
app.add_init(ApplicationInit);
function ApplicationInit(sender) {
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (!prm.get_isInAsyncPostBack())
{
prm.add_pageLoaded(PageLoaded);
}
}
function PageLoaded(sender, args) {
//Do something
}
</script>
function load()
{
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
“EndRequestHandler”将是您想要调用的JavaScript函数的名称。 在标签的Onload事件中调用上述函数:
<body onload=”load()”>
function EndRequestHandler()
{
alert(“You record has been saved successfully”);
}
<input id=”hdnValue” type=”hidden” runat=”server” value=”" />
在异步回发的服务器端代码中设置其值:
Protected Sub btn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCreateSample.Click
If condition Then
hdnValue.value = “do this”
Else
hdnValue.value = “do that”
End If
End Sub
function EndRequestHandler()
{
if (document.getElementById(‘<%= hdnValue.ClientID %>’).value == “do this”)
{
alert(“You record has been saved successfully”);
}
else
{
alert(“There is an error”);
}
}
如果使用jQuery,您可以使用下面的代码。
这是为了在更新面板更新后显示保存的消息并在5秒钟后隐藏该消息。
function pageLoad() {
window.Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler()
{
window.setTimeout(function () {
var label = window.$get('<%= lblMsg.ClientID%>');
if (label != null) { label.style.display = 'none'; }
}, 5000);
}