2012-03-16 60 views
0

我可以使用下面的代碼動態添加一個用戶控件。UpdatePanel,佔位符,用Ajax加載的用戶控件

ASPX:

<asp:PlaceHolder ID="PlaceHolder1" runat="server" /> 

代碼背後:

UserControl uc = (UserControl)Page.LoadControl 
("~/App_Controls/Site/Player/PlayerProfile2.ascx"); 
PlaceHolder1.Controls.Add(uc); 

現在我要加載的用戶響應按鈕點擊。我有通過做ajax文章提交表單的代碼。

$(document).ready(function() { 
    var options = 
    { 
     success: showResponse, 
     url: "/Default.aspx", 
     type: "post" 
    }; 

    $('#btnClick').click(function() { 
     $("form").ajaxSubmit(options); 
     return false; 
    }); 
}); 

function showResponse(responseText, statusText, xhr, $form) 
{ 
    alert(responseText); 
} 

<asp:Button ID="btnClick" ClientIDMode="Static" runat="server" Text="Click" /> 

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
<asp:PlaceHolder ID="PlaceHolder1" runat="server" /> 
<asp:Literal ID="litText" runat="server" /> 
</ContentTemplate> 
</asp:UpdatePanel> 

我是C#的新手。當佔位符或文字被改變時w

+0

你好,如果你發現我的答案有幫助,它會」如果你能把它標記爲公認的答案,那就太好了。謝謝!如果沒有,請告訴我如何改進它,我很樂意這樣做。 – msigman 2012-03-24 16:12:04

回答

0

用戶控件(ASCX)在服務器端呈現期間附着到頁面上,並且不能用標準HTML元素可以用JavaScript創建的方式。我建議使用包含標準HTML元素而不是用戶控件的div,並使用JavaScript庫(如Jquery)在適用時創建此div的副本。

2

而不是使用jQuery AJAX,我會使用內置的ASP.NET AJAX;它將爲您提供更簡單的體驗。 http://weblogs.asp.net/sanjeevagarwal/archive/2008/07/22/Dynamically-create-ASP.NET-user-control-using-ASP.NET-Ajax-and-Web-Service.aspx。通過移動UpdatePanel中的按鈕,該按鈕生成的任何PostBack將被.NET框架攔截並作爲部分回發(使用AJAX)提交。這應該爲您如何實現使用.NET AJAX樣式之後提供一個堅實的起點。

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
<asp:Button ID="btnClick" ClientIDMode="Static" runat="server" Text="Click" /> 
<asp:PlaceHolder ID="PlaceHolder1" runat="server" /> 
<asp:Literal ID="litText" runat="server" /> 
</ContentTemplate> 
</asp:UpdatePanel> 

在CodeBehind文件中,您可以使用IsPostBack來有條件地顯示或隱藏您的用戶控件。

但是,如果你願意堅持使用當前的做法,這個博客有一個很好的例子,這比什麼我可以在這裏輸入更加完整:http://www.aspsnippets.com/Articles/Dynamically-load-and-display-ASPNet-UserControl-using-jQuery-AJAX-and-WebMethod.aspx