作者:梦魇漂鸟的心之一方老窝 | 来源:互联网 | 2023-01-09 15:05
UpdatePanel中的JavaScript代码好的:我在包含单个占位符的aspx页面上有一个UpdatePanel。在这个占位符中,我根据某些外部条件(这是一个配置页面)附加了
UpdatePanel中的Javascript代码
好的:我在包含单个占位符的aspx页面上有一个UpdatePanel。
在这个占位符中,我根据某些外部条件(这是一个配置页面)附加了一个用户控件中的一个。
在每个用户控件中都有一个bindUcEvents()Javascript函数,它将各种jQuery和Javascript事件绑定到usercontrol中的按钮和validation器。
我遇到的问题是usercontrol的Javascript未被识别。 通常,当updatepanel回发时,会在updatepanel内部执行Javascript,但页面中找不到这些代码(我已经尝试通过firebug的控制台手动运行该函数,但它告诉我它无法找到该函数)。
有没有人有什么建议?
干杯,艾德。
编辑:
削减(但function)的例子:
标记:
C#:
protected void PopulatePlaceholder(object sender, EventArgs e) { Button button = new Button(); button.ID = "Push"; button.Text = "push"; button.OnClientClick= "Javascript:return false;"; Code.Text = " function bindEvents() { $('#" + button.ClientID + "').click(function() { alert('hello'); }); } bindEvents(); "; PlaceMe.Controls.Add(button); }
即使代码存在于页面上,您也会看到按钮没有弹出警告消息。
EDIT2:
好吧,只是为了说清楚,生产代码比绑定到文字的单个函数复杂得多,并且包含大量的
一些代码很难分解成非特定的函数,并且毫无意义,因为它们每个都只在一个地方使用(我们说的是非常具体的validation和奇怪的弹出触发器+一些逻辑)。
摆脱Literal控件并使用ScriptManager注册脚本。 你正在做的事情因同样的原因不起作用
window.document.getElementById('someId').innerHtml = "";
不起作用。 试试这个:
protected void PopulatePlaceholder(object sender, EventArgs e) { Button button = new Button(); button.ID = "Push"; button.Text = "push"; button.OnClientClick= "return false;"; string script = "function bindEvents() { $('#" + button.ClientID + "').click(function() { alert('hello'); }); } bindEvents();"; ScriptManager.RegisterClientScriptBlock(this.Page, typeof(SomeClass), Guid.NewGuid().ToString(), script, true); PlaceMe.Controls.Add(button); }
RegisterClientScriptBlock的参数可能需要改变,但你明白了。
在更新面板触发后重新运行一些js我总是使用它
Sys.WebForms.PageRequestManager.getInstance().add_endRequest( function(sender, args) { //update whatever here });
此外,如果您对更新面板中的元素有任何引用,您也可以刷新该函数中的那些变量,否则您将拥有不起作用的旧引用。
将scriptmanager(Ajax Extensions)添加到您的页面,并在该管理器中添加您的脚本引用。 管理器将在基于ajax的页面加载(而不仅仅是初始加载)上加载每个脚本标记 – 在updatepanel中移动所有需要的Javascript代码,你已经完成了很多工作。
")); }
由于您已经从代码隐藏中构建了Javascript代码,因此您也可以动态添加控件。
上述就是C#学习教程:UpdatePanel中的Javascript代码分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记