2013-07-16 69 views
0

我有一個代碼塊在我的C#是點擊一個按鈕,看起來像這樣執行:從ASP代碼中調用外部JavaScript函數後面

protected void LoadButton(object sender, EventArgs e) 
{ 
    LoadDoc(); 
    ReadXML(); 

    ScriptManager.RegisterClientScriptBlock(loadXML, this.GetType(), "FormMath", "FirstCalculation();", true); 
} 

與上線,我想調用一個JS函數稱爲「FirstCalculation」。問題是FirstCalculation不存在於default.aspx文件中,而是存在於我們將調用external.js的外部js文件中。我不能(不應該)將FirstCalculation從external.js移開,但我仍然需要在這一個按鈕上單擊來調用它。當然,我也需要能夠調用一些ASP。

最終目標是,我可以按一下按鈕,按順序調用ASP函數和Javascript函數。

另外值得注意的是,我不知道第三個參數應該在RegisterClientScriptBlock調用中。我從一個不同的資源中拷貝了它,所以如果這需要特定的東西,那可能是需要看的東西。

編輯:我遇到的很多其他示例似乎引用了default.aspx頁面內的代碼,這就是我掛斷的地方,因爲它不在同一個文件中。

回答

2

而不是使用RegisterClientScriptBlock使用RegisterStartupScript

這將確保傻冒注入將出現在頁面底部的JavaScript - 因此這將是你的.js文件後。應該工作正常的話..

這裏看到更多的信息:RegisterStartupScript On MSDN

而且 - 第三個參數(true)告訴你的代碼,以任何你的JavaScript注入<script>標籤;也就是說,RegisterClientScriptBock & RegisterStartupScript將首先注入<script>標籤,然後將您的字符串放在它們中間。你需要這個爲true你的情況。如果您正在注射,您會將其設置爲false "<script>FirstCalculation();</script>"

+0

非常好!它完美的工作,非常感謝你! – mkautzm

+0

非常歡迎:) – Darren

相關問題