2013-04-15 28 views
1

Iam具有用於顯示成功/警告/錯誤消息的UserControl。對於所有這些類型的消息,我們有一個UserControl「Message.ascx」當前正在使用其他沒有Jquery的aspx頁面如何從ASP.NET中的Jquery調用UserControls的CodeBehind方法?

正如我們試圖維護標準的消息警報。 現在,作爲IAM的使用jQuery和JSON在第一次我的aspx頁面調用,我想從我的jQuery顯示這些成功的消息,

一般的aspx代碼隱藏我已經使用的用戶控件作爲

//register User Control 
<UM1:UM runat="server" ID="Message" /> 
.... 
public void insert(){ 
.. Some logic.., after success 
Message.ShowSuccess(" Inserted Successfully"); 
} 

但在這裏jQuery中我如何調用這些ShowSuccess(),這是在ascx.cs 我Ajax調用

 $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "Voyage.aspx/Context_Update", 
       data: "{'ID':''1}", 
       dataType: "html", 
       success: function (html) { 
        try {       
         // Want to Show Message.ShowSuccess(" Inserted Successfully");      
        } catch (ex) { 
         alert("ErrCode:1"); 
        } 

蔭沒有得到任何的想法,並沒有發現任何結果太.., 請幫助我o ut

+0

爲什麼要使用servercode在客戶端上顯示消息? –

+0

對於所有其他頁面,我們擁有相同的頁面,但所有其他頁面不在Jquery ..中,我們只是想維護標準消息。 –

+0

是不是可以從ascx獲取服務器代碼? –

回答

2

您無法調用ASP .NET中的用戶控件,因爲它不是直接提供給外部世界的東西,而是服務器在頁面生命週期中組合到您的頁面中的東西 - 週期。

如果你想調用服務器上的某些東西,你需要將[WebMethod]屬性添加到服務器端方法,這允許你從jQuery調用。您的頁面上可能有一個[WebMethod],然後調用User-Control中的某些代碼,但不能直接訪問您的用戶控制。

所以,這樣的事情:

MyPage.aspx

[WebMethod] 
public static string GetMessageFromWebPage() 
{ 
    return MyUserControl.GetMessageFromUserControl(); 
} 

MyUserControl.ascx

public static string GetMessageFromUserControl() 
{ 
    return "Hello World!" 
} 

jQuery的

$.ajax({ 
    type: "POST", 
    url: "MyPage.aspx/GetMessageFromWebPage", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
    // Do something with the page method's return. 
    $("#Result").text(msg.d); 
    } 
}); 
+0

因此,對於此消息,我需要一個調用ascx服務器代碼並使用此WebMethod的WebMethod? –

+0

是的,頁面上的WebMethod和用戶控件的普通方法。該頁面調用用戶控件上的方法並返回給調用者。 – Belogix

+0

@粉紅 - 我已經擴展到包括非常完整的例子。 – Belogix

相關問題