2012-02-20 70 views
1

我使用的C#中的Messagebox代碼是以下代碼,它是基於我的需求有條件地調用。除了使用Ajax更新面板時,它在任何情況下都可以正常工作。 例如,我想提示用戶,如果在GridView沒有選擇複選框,以 相應的消息,正在執行的代碼,但顯示MessageBox裏面沒有顯示UpdatePanel

public static void MessageBox(string message, Page page) 
    {  
     if (!string.IsNullOrEmpty(message)) 
     { 
      Label lbl = new Label(); 
      lbl.Text = "<script type=\"text/javascript\" language=\"javascript\">" + "alert('" + message + "'); " + "</script>"; 
      page.Controls.Add(lbl); 
     } 
    } 
+0

@ Im Hari:你爲什麼不嘗試異步自動回發,並檢查其工作與否 – Rocky 2012-02-20 06:45:05

回答

1

你可以做的建議here

1

它看起來就像是增加了無消息框直接在頁面上標註。這對於完整的post-back場景(你提到它)可以很好地工作,但是如果你不直接在UpdatePanel內部添加它,它將不會在部分回發中寫入頁面。

2

使用ScriptManager.RegisterClientScriptBlockClientScriptManager .RegisterClientScriptBlock方法同時使用更新面板添加腳本。

這方面的一個例子是購here

0

據我瞭解,一個UpdatePanel內的阿賈克斯回發只操縱使用一些ASP.Net Ajax的JavaScript的魔法UpdatePanel內的HTML。如果您在更新後的HTML中添加JavaScript代碼,它將不會被執行。

爲什麼不使用CustomValidator來驗證您的複選框?

1

我也找了同一種解決方案,因爲我有同樣的problem.the以下方法爲我工作作爲@Sids建議..

ScriptManager.RegisterClientScriptBlock(myControl, myControl.GetType(), "msg", "alert('Success')", true); 
相關問題