asp.net – 在我的UpdatePanel完成加载DOM元素后,如何从我的代码
我有一个带有转发器的UpdatePanel,在用户通过模式弹出窗口向其添加项目后重新绑定.
当他们单击按钮向转发器添加新行时,代码隐藏看起来像这样: protected void lbtnAddOption_Click(object sender,EventArgs e) { SelectedOption = new Option() { Account = txtAddOptionAccountNumber.Text,Margin = chkAddOptionMargin.Checked,Symbol = txtAddOptionSymbol.Text,Usymbol = txtAddOptionUsymbol.Text,}; Presenter.OnAddOption(); // Insert the new item RefreshOptions(); // Pull down and re-bind all the items mpeAddOptionDialog.Hide(); // Hide the modal // ... Make call to jQuery scrollTo() method here? } 这很好用,新行将通过UpdatePanel快速显示. 但是,通常会有数百行,并且添加新行的行基于当前使用的排序列. 所以,我想把它作为使用甜蜜jQuery ScrollTo plugin的机会.我知道如果我给它溢出的容器div的ID和其中元素的ID,它将平滑地直接滚动到用户新添加的行. 但是,有两个问题: >我需要找到合适的行,这样我才能抓住ClientID. 我已经解决了#1.我有一个可靠的方法,将产生新添加的行的ClientID. 然而,问题#2被证明是棘手的.我知道我可以调用ScriptManager.RegisterStartupScript()构成我的代码隐藏,它将在我的页面上执行JavaScript. 我遇到的问题是它似乎正在执行那段JavaScript(我猜)新刷新的DOM元素已经完全加载.所以,即使我传入适当的jQuery行来滚动到我想要的元素,它对我来说也是错误的,因为它还找不到那个元素. 这是我在上面发布的方法结尾处使用的行: string clientID = getClientIdOfNewRow(); ScriptManager.RegisterStartupScript(this,typeof(Page),"ScrollScript",String.Format("$("#optionContainer").scrollTo("{0}",800);",clientID),true); 我需要做什么才能确保在具有UpdatePanel的页面真正准备好之前不会调用这一行JavaScript? 解决方法
如果你需要处理的东西在更新面板中,那么你需要在加载面板后运行你的JS.我使用add_endRequest.以下内容是从更复杂的东西入侵的.它在文档就绪时运行一次,但安装了“end ajax”处理程序,每次更新更新面板时都会触发该处理程序.当它发射时,它就在你身边.
var prm = Sys.WebForms.PageRequestManager.getInstance(); jQuery(document).ready(function () { prm.add_endRequest(EndRequestHandler); }); function EndRequestHandler(sender,args) { // do whatever you need to do with the stuff in the update panel. } 显然,如果你愿意,你可以从代码隐藏中注入它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在加载/性能测试期间找到IIS要模拟的平均并
- asp.net – 如何使用嵌套的视图模型获取EditorFor的数据
- asp.net – 如何使用&在web.config文件
- asp.net-mvc-4 – 编辑并继续不在Windows 7,32位操作系统上
- asp.net – 在Response.Redirect之后获取上一页网址
- ASP.NET图像上传与调整大小
- asp.net – 如何获取HttpPostedFileBase文件的大小
- 如何在加载数据时创建页面覆盖 – asp.net/jquery/blockui
- asp.net-mvc – 使用编辑器下拉列表值更新Kendo网格
- asp.net-mvc-3 – 如何在Windows Azure中为文件夹授予RW权限