簡體   English   中英

從C#和Asp.Net背后的代碼調用JavaScript

[英]Calling javascript from codebehind c# & Asp.Net

我無法理解為什么不能從后面的代碼調用下面的javascript代碼

我有一個像這樣的簡單的JavaScript塊

  function callsCox(res) {
    alert(res);
   }

從我的代碼后面:

 ....
 string res="COX23";
 string script = String.Format("callsCox({0})", res);
 this.Page.ClientScript.RegisterStartupScript(this.GetType(), "Cox",script,true);

我錯過了什么嗎? 沒有任何例外或錯誤。

Page.ClientScript.RegisterStartupScript看起來Page.ClientScript.RegisterStartupScript (可能遺漏了一些東西)。 要嘗試的事情

  1. 將撇號添加到調用中 - 它作為對象傳遞。 嘗試作為一個字符串

    string script = String.Format(“callsCox('{0}')”,res);

  2. 是否在更新面板部分回發后調用字符串腳本Page.ClientScript.RegisterStartupScript 那可能會影響它

  3. 我知道如果它們在同一頁面中,則找不到功能。 嘗試移動到外部js文件。 不要問我為什么這已經解決了問題,但過去我曾經有過幾次。

  4. 只是出於調試目的,將函數一起取出等式,嘗試使警報像這樣工作。 如果它確實有效,它至少會將問題隔離開來

    this.Page.ClientScript.RegisterStartupScript(this.GetType(),“Cox”,“alert('這有用嗎?')”,true);

  5. 查看頁面的來源。 該功能是否寫入頁面(或從第4點開始提醒)。 它應該是。 如果你在this.Page.ClientScript.RegisterStartupScript方法上設置一個斷點,它是否被擊中? 好像它可能不是。

很抱歉沒有給您“嘿,這是解決方案”類型的答案。 我過去曾經有這樣的東西,我發現這個問題一直存在,直到問題被隔離開來。 其他人當然可以發現一個直接的問題。 祝好運。

這對我有用:

public static void ShowAlert(Page page, String message)
{
    String Output;
    Output = String.Format("alert('{0}');",message);
    page.ClientScript.RegisterStartupScript(page.GetType(), "Key", Output, true);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM