当前位置: 首页 > 编程语言 > C#

UpdatePanel中的JavaScript代码分享

时间:2023-04-10 15:49:58 C#

C#学习教程:UpdatePanel中的JavaScript代码在这个占位符中,我根据一些外部条件附加了一个用户控件(它是一个配置页面)。在每个用户控件中都有一个bindUcEvents()javascript函数,它将各种jQuery和javascript事件绑定到用户控件中的按钮和验证器。我遇到的问题是用户控件的javascript没有被识别。通常,当updatepanel回发时,javascript在updatepanel内部执行,但在页面中找不到代码(我尝试通过firebug的控制台手动运行该函数,但它告诉我它找不到该函数)。有没有人有什么建议?干杯,埃德。编辑:剪切(但功能性)示例:标记:C#:protectedvoidPopulatePlaceholder(objectsender,EventArgse){Buttonbutton=newButton();button.ID="按下";button.Text="推";button.OnClientClick="javascript:returnfalse;";Code.Text="functionbindEvents(){$('#"+button.ClientID+"').click(function(){alert('hello');});}bindEvents();";PlaceMe.Controls.Add(按钮);}即使页面上存在代码,您也会看到按钮不会弹出警告消息。EDIT2:好吧,为了清楚起见,生产代码比绑定到文字的单个函数复杂得多,并且包含大量难以分解为非特定函数的代码,并且毫无意义,因为每个它们中的一部分仅在一个地方使用(我们正在谈论非常具体的验证和奇怪的弹出触发器+一些逻辑)。摆脱Literal控件并使用ScriptManager来注册脚本。出于同样的原因window.document.getElementById('someId').innerHtml="";不起作用。试试这个:protectedvoidPopulatePlaceholder(objectsender,EventArgse){Buttonbutton=newButton();button.ID="按下";button.Text="推";button.OnClientClick="返回false;";stringscript="functionbindEvents(){$('#"+button.ClientID+"').click(function(){alert('hello');});}bindEvents();";ScriptManager.RegisterClientScriptBlock(this.Page,typeof(SomeClass),Guid.NewGuid().ToString(),script,true);PlaceMe.Controls.Add(按钮);RegisterClientScriptBlock的参数可能需要更改,但您明白了。要在更新面板触发后重新运行一些js,我总是使用这个Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender,args){//在这里更新任何内容});此外,如果您对更新面板元素的调用有任何引用,您也可以在该函数中刷新这些变量,否则您将拥有不起作用的旧引用。将脚本管理器(Ajax扩展)添加到您的页面,并在该管理器中添加您的脚本引用。管理器将在基于ajax的页面加载(不仅仅是初始加载)上加载每个脚本标签-在updatepanel中移动所有需要的javascript代码,你已经完成了很多工作。"));}既然你已经从code-behind构建了javascript代码,那么你也可以动态添加控件。以上就是C#学习教程的全部内容:UpdatePanel中的JavaScript代码分享,如果对大家有用的话和需要了解的更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除.如转载请注明出处: