Hca*_*tek 57 javascript asp.net jquery updatepanel
我有一个pageLoad函数,它在.ascx控件上设置一些我无法更改的css.在页面加载一切正常,但当更新面板更新控件时,我的css不再应用.如何在页面更新后重新运行我的功能?
$(function() {
$("textarea").attr("cols", "30");
$("input.tbMarker").css({ "width": "100px" }).attr("cols","25");
});
Run Code Online (Sandbox Code Playgroud)
这显然只在初始页面加载时运行.如何在更新后运行它?
Kar*_*thi 91
最简单的方法是在您的javascript代码中使用MSAjax pageLoad事件:
<script>
///<summary>
/// This will fire on initial page load,
/// and all subsequent partial page updates made
/// by any update panel on the page
///</summary>
function pageLoad(){ alert('page loaded!') }
</script>
Run Code Online (Sandbox Code Playgroud)
我已经多次使用它,它的功效就像魅力一样.最重要的是不要将它与document.ready函数混淆(在页面文档对象模型(DOM)准备好执行JavaScript代码之后只会执行一次),而每次更新面板都会执行pageLoad Event刷新.
bri*_*nng 44
添加add_pageLoaded处理程序也可以工作.
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoadedHandler);
Run Code Online (Sandbox Code Playgroud)
注意:处理程序将为任何回调触发,但是您可以使用它sender._postBackSettings.panelID
来过滤您希望调用函数的时间.
更多样品:
Mar*_*res 15
使用放置脚本管理器的相同表单添加代码.
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if (ScriptManager1.IsInAsyncPostBack)
{
StringBuilder sb = new StringBuilder();
sb.Append("<script language='javascript' type='text/javascript'>");
sb.Append("Sys.Application.add_load(func);");
sb.Append("function func() {");
sb.Append("Sys.Application.remove_load(func);");
sb.Append("alert('I am Batman!');");
sb.Append("}");
sb.Append("</script>");
ScriptManager.RegisterStartupScript(this, GetType(), "script", sb.ToString(), false);
}
}
Run Code Online (Sandbox Code Playgroud)
wom*_*omp 14
在更新面板的回发期间,在服务器代码中,使用ClientScriptManager向页面添加一些新脚本,如下所示:
ClientScriptManager.RegisterStartupScript(
typeof(page1),
"CssFix",
"javascriptFunctionName()",
true);
Run Code Online (Sandbox Code Playgroud)
将javascript封装在与其中的第三个参数匹配的命名函数中,并且应该在回发返回时执行.
Pet*_*ans 12
每次UpdatePanel完成时,您也可以绑定到客户端代码(JavaScript)中的事件,如下所示:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(){myFunction();});
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下myFunction(); 每次发生UpdatePanel回发时都会调用.如果在加载页面时执行此代码,则将在正确的时间调用该函数.
归档时间: |
|
查看次数: |
72735 次 |
最近记录: |