0

これは一種の概念的な質問ですが、ユーザー入力に基づいて.NetWebControlsをページに追加できるようにしたいと思います。これらのコントロールを、サーバーから生成されるWebControlsとUserControlsにします。コントロールが完全にレンダリングされることを確認しながら、これを実行する方法がよくわかりません。JQueryからサーバーに簡単にリクエストを送信し、返されたマークアップを問題なくページに追加できることはわかっています。WebControl / UserControlの完全なマークアップを生成してAJAXを介してJQueryに戻し、ページにレンダリングできるようにする方法はありますか?

4

1 に答える 1

0

ページへの非同期コールバックを行うには、AJAX を使用する必要があります。クライアントからこれをトリガーしたい場合は、おそらくコード ビハインドでメソッドを使用__doPostBackしてオーバーライドできます。RaisePostBackEvent

<script type="text/javascript">
    loadControls = function(input){
        __doPostBack(input.id, input.value);
    }
</script>
<asp:UpdatePanel ID="pnlLoadControls" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="txtInput" runat="server" onkeyup="loadControls(this)" />
        <asp:PlaceHolder ID="plcLoadedControls" runat="server" />
    </ContentTemplate>
</asp:UpdatePanel>

そして、コード ビハインドで:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
    base.RaisePostBackEvent(source, eventArgument);
    if (source == txtInput)
    {
        plcLoadedControls.Controls.Add(new LiteralControl("Hello World!"));
    }
}
于 2012-05-03T19:00:56.203 に答える