获取Javascript函数以在ASP.Net转发器DataBind上运行

时间:2010-07-09 12:57:41

标签: asp.net jquery

我的页面上有一个ASP.net转发器,它创建了一大堆listitems。我还使用JQuery UI Slider插件从某些列表项中包含的div生成滑块。所以我有一个名为initSliders()的javascript函数,它在页面加载时运行,创建了滑块。这很好。

Repeater位于Ajax UpdatePanel内,每隔10秒更新一次。转发器在每次迭代时都会反弹。这是问题发生的地方,重新滑动滑块消失。我相信这是因为转发器正在重新生成,所以我想我需要一种在每次转发器加载后调用javascript initSliders()函数的方法。

我会怎么做?

1 个答案:

答案 0 :(得分:2)

你是对的。在部分回发时,您的滑块将被删除,您必须在每次刷新时重新创建它。

这样做的一种方法是在Page_Load

上添加这样的代码段
 string script = //SCRIPT THAT CREATES THE SLIDER
 ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), 
     "SLIDER", script, true);

修改

部分更新响应设置为div控件的innerHTML,因此更新面板中的内联javascript代码不会在刷新时起作用。

这就是你需要使用ScriptManager注册脚本的原因

更详细的解释here