从更新面板加载Javascript函数

时间:2013-11-27 11:50:55

标签: c# javascript viewstate

我有以下代码 -

 protected string Term
    {
        get { return this.ViewState["Term"] != null ? (string)this.ViewState["Term"] : ""; }
        set { this.ViewState["Term"] = value; }
    }

然后设置Term -

public void populateTerm()
    {

        Term = "Test";    
        ScriptManager.RegisterStartupScript(this, GetType(), "term","useTerm()", true);

    }

然后在Javascript中可以使用Term -

function useTerm() {
                    var Term = <%= Term %>;
                    // use Term
                 }

当正在触发populateTerm()的按钮点击重新加载页面时,这可以正常工作。但是我已经将按钮移动到updatePanel,因为整个页面没有按钮点击(仅更新面板)重新加载,这意味着useTerm()未被调用<%= Term %>是空的。

如果我删除updatePanel代码,它可以正常工作。如何才能使用updatePanel?

1 个答案:

答案 0 :(得分:0)

假设函数useTerm在您的aspx页面中,您可以在UpdatePanel ContentTemplate内移动该脚本块。

另一种方法是更改​​JavaScript函数,以便将term作为参数传递:

function useTerm(term) {
    // use term
}

然后使用最新值Term

调用它
public void populateTerm()
{

    Term = "Test";    
    string script = string.Format("useTerm('{0}');", Term);
    ScriptManager.RegisterStartupScript(this, GetType(), "term", script, true);

}