C# 从更新面板加载Javascript函数
我有以下代码-C# 从更新面板加载Javascript函数,c#,javascript,viewstate,C#,Javascript,Viewstate,我有以下代码- protected string Term { get { return this.ViewState["Term"] != null ? (string)this.ViewState["Term"] : ""; } set { this.ViewState["Term"] = value; } } 然后设置术语- public void populateTerm() { Term = "Test";
protected string Term
{
get { return this.ViewState["Term"] != null ? (string)this.ViewState["Term"] : ""; }
set { this.ViewState["Term"] = value; }
}
然后设置术语
-
public void populateTerm()
{
Term = "Test";
ScriptManager.RegisterStartupScript(this, GetType(), "term","useTerm()", true);
}
然后在Javascript中可以使用这个术语-
function useTerm() {
var Term = <%= Term %>;
// use Term
}
函数useTerm(){
var项=;
//使用术语
}
当页面在触发populateTerm()
的按钮单击上重新加载时,这种方法可以正常工作。但是,我已经将按钮移动到了一个updatePanel
,因此,由于整个页面没有在按钮单击时重新加载(只有更新面板),这意味着useTerm()
没有被调用,
为空
如果我删除updatePanel代码,它可以正常工作。如何使其与updatePanel一起工作?假设函数
useTerm
在您的aspx页面中,您可以将该脚本块移动到updatePanel
ContentTemplate
中
另一种方法是更改JavaScript函数,以便将术语作为参数传入:
function useTerm(term) {
// use term
}
然后用术语的最新值调用它:
public void populateTerm()
{
Term = "Test";
string script = string.Format("useTerm('{0}');", Term);
ScriptManager.RegisterStartupScript(this, GetType(), "term", script, true);
}