0

我知道这是一个概念性问题,但我希望能够根据用户输入将 .Net WebControls 添加到页面。我希望这些控件是从服务器生成的 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 回答