2012-04-10 55 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