UpdatePanel中自定义控件内的动态javascript

Dynamic javascript within a custom control within an UpdatePanel

本文关键字:动态 javascript 自定义控件 UpdatePanel      更新时间:2023-09-26

很简单,我有一个自定义的ASP.NET控件,除了呈现文本框外,它还输出一个javascript函数和对该函数的调用。这里问题的关键是javascript中的变量在每次回发时可能不同。

因此,我在UpdatePanel中拥有控件,下面是输出javascript的一个示例。传递给someStaticFunction的一些变量是基于自定义控件的属性(例如Visible)的动态变量。

$(function() {
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(myFunction);
    myFunction();
});
function myFunction(sender, args) {
    someStaticFunction('false');    '' "false" is written dynamically by the control's server side code
}

当UpdatePanel返回时,根据用户的选择,页面现在可以将控件的属性设置为true。虽然javascript确实写得很正确(除了"false"是"true"之外,与上面相同),但false仍然会传递给someStaticFunction.

因此,控件在回发后呈现正确的javascript,而页面运行的是原始帖子中的javascript。

我希望这是清楚的,有人可以提供一个建议。提前谢谢。

您是否尝试过在每次回发时调用的pageLoad()函数中评估控件的属性,并用该值调用someStaticFunction,而不是在服务器端生成什么?

一个简单的代码示例:

function pageLoad(){
    var value = $('#controlID').val();
    someStaticFunction(value);
}