带有Behavior的SliderExtender不会在页面Load()之后呈现,而是在回发后工作

时间:2010-12-03 13:51:47

标签: javascript asp.net jquery asp.net-ajax

我在页面控件中的 UpdatePanel 中使用了asp.net滑块。

我分配了一个behaviorID,并在位于页面底部的JavaScript中的$find(behaviorID)$(document).ready函数中使用Sys.WebForms.PageRequestManager.getInstance().add_endRequest进行调用。

在page_initial之后,滑块上的JavaScript函数不起作用。 它无法在JavaScript中找到滑块,即$find(behaviorID) = null。而$(document).ready中设置的其他JavaScript函数确实有效。 但是,我可以查看滑块的轨道并拖动它。

但是当我在页面上使用其他控件进行任何回发时,滑块运行顺畅! 它使用<... Class= ...Behavior_ID>

生成其他标记

用于在源代码中生成Slider及其事件的JS看起来像:

Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.SliderBehavior, {"Length":410,"Maximum":100,"Minimum":-100,"TooltipText":"Adjust Target","id":"targetSlider_JS"}, null, null, $get("ctl00_ContentPlaceHolder3_Target1_txtSlider"));
});

该页面位于MasterPage的“内容”中。 我猜它在page-init时没有正确渲染滑块,需要为滑块设置一些服务器端设置吗?

此致

2 个答案:

答案 0 :(得分:2)

我有同样的问题是断断续续的。有时它是空的,其他时间很好。我添加了一个100ms的小setTimeout来延迟调用$ find,它现在可以正常工作。

答案 1 :(得分:0)

找不到解决方案。

使用了jquery滑块。