2012-04-10 14 views
2

我试图在回发后更新JavaScript变量。我正在考虑使用ClientScript.RegisterStartupScript函数。它适用于初始页面加载,但不适用于回发。我在page_load函数中添加了下面的行。我假设发生的事情是,如果密钥添加一次,它不能再次添加它。我有一个母版页和内容页面。我从内容页面调用它。更新.Net代码隐藏的JavaScript变量

ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script type='text/javascript'>alert('Error !!!');</script>"); 

有没有从后端调用JavaScript函数的方法?

谢谢

+0

你到底想干什么?也许有其他的替代品 – MilkyWayJoe 2012-04-10 16:45:04

回答

1

试试这个方法:

语法

public void RegisterOnSubmitStatement (
     Type type, 
     string key, 
     string script 

) 

使用

放置在页面加载此代码使脚本火的网络表单提交的每点击。

if (!script.IsClientScriptBlockRegistered(this.GetType(), "SubmitScript")) 
     { 
      script.RegisterOnSubmitStatement(this.GetType(), "SubmitScript", "alert('Submit Clicked')"); 
     } 

考虑下面的代码

protected void Page_Load(object sender, EventArgs e) 
    {  
ClientScriptManager script = Page.ClientScript; 
if (!script.IsClientScriptBlockRegistered(this.GetType(), "SubmitScript")) 
    { 
      script.RegisterOnSubmitStatement(this.GetType(), "SubmitScript", "return confirm('Are you sure to continue')"); 
    } 
    } 
    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     Response.Write("Form is Submitted."); 
    } 
+0

我正在使用一个网格,并没有意识到,RegisterOnSubmitStatement会被触发,因为我从一个记录更改为另一个。每次我从记录更改到记录时,它都会进行回传。很棒。谢谢。 – MindGame 2012-04-10 16:57:27

1

你可以把asp:Literal放在你的aspx页面的脚本块中。

然后在您的代码背后,只需将变量赋值作为文本置于文字中即可。它会作为你的javascript代码的一部分呈现。

+0

有趣,不知道你可以做到这一点。谢谢。 – MindGame 2012-04-10 16:57:52

+0

这就是Literal的用途。无论你放进什么内容,它都会完全呈现在页面上的标记中。 – SouthShoreAK 2012-04-10 17:06:34