ASP.NET AJAX 和用户控件 : handling client side scripting

标签 asp.net jquery ajax

我有一个 UserControl,我想根据某些业务规则以编程方式将其多次包含在页面中。目前该控件具有必须在 ASP.NET AJAX 上调用的 JavaScript 函数 pageLoad事件。

我使用的模式是母版页有 pageLoad调用 contentPageLoad 的函数任何 ContentTemplate 上的函数(如果该函数存在)。然后,保存相关 UserControl 的 ContentTemplate 将负责在此事件期间调用 UserControl 上的适当函数。

现在,JavaScript 内联在 .ascx 中对于 UserControl,但我有一种感觉,我需要使用 Page.ClientScript属性通过后面的代码注入(inject)它。我的问题是:如何确保我的函数名称不会被破坏,并确保为每个 UserControl 调用适当的方法?

仅供引用:每个 UserControl 需要执行的代码是一个 jQuery block ,它从标准 HTML <select> 创建一个多选控件。 .

编辑: RegisterStartupScript建议这样做,但这会在 DOM 完成加载之前运行。将函数包装在 jQuery Document.ready() 中似乎没有帮助。用户控件正在 UpdatePanel 内运行,所以我真的没有选择如何调用这个脚本。

最佳答案

一种解决方案是在 JS 函数定义中使用用户控件的 ClientID:

function onLoadInitialize_<%=ClientID%>(){/*do things*/}

然后使用Page.ClientScript.RegisterStartupScript使其在client-onLoad期间发生。请注意 page_load happens on every asynchronous postback ;如果您希望每次实际页面加载(不包括异步回发)只发生一次,请改用 init 事件。

关于ASP.NET AJAX 和用户控件 : handling client side scripting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002337/

相关文章:

jquery - 使 jquery :Contains accent insensitive

javascript - 如何使用javascript显示某个div内的第n个div?

javascript - 使用 jQuery 和 AJAX 调用 PHP 类方法并获取返回值

javascript - 使用ajax填充谷歌地图标记

javascript - 设置异步 : false with jQuery?

c# - 通过字符串将方法名称分配给Func

javascript - ASP.NET GridView ItemTemplate LinkBut​​ton 在 JavaScript 确认后支持 RowCommand

asp.net - 进入asp.net的要点是什么?

c# - Excel 下载过程在 ASP.NET 中的大型数据集的情况下死于页面

javascript - 根据元素出现的频率对数组进行排序