我有以下代码 -
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?
答案 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);
}