2012-03-16 4 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#の初心者です。プレースホルダーまたはリテラルが変更されたとき

+0

こんにちは、あなたは私の答えが役に立ったと評価していた場合、それは希望あなたがそれを受け入れられた答えとすることができれば素晴らしいです。ありがとう!そうでない場合、私はそれを改善する方法を教えてください、私はそうすることをうれしく思います。 – msigman

答えて

0

UserControls(ASCX)は、サーバー側のレンダリング中にページにアタッチされ、標準のHTML要素でできるようにJavascriptで作成することはできません。私はdivの標準的なHTML要素をユーザーコントロールとは対照的にJaveryなどのJaveryライブラリを使用して、該当する場合、この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> 

、あなたは条件付きでユーザーコントロールを表示または非表示にIsPostBackを使用することができます。

は、しかし、あなたはあなたの現在のアプローチに固執することを好むだろう場合は、このブログは私がここで入力することができるものよりも、より完全なのです良い例があります。http://www.aspsnippets.com/Articles/Dynamically-load-and-display-ASPNet-UserControl-using-jQuery-AJAX-and-WebMethod.aspx

関連する問題