由Ajax发布的UpdatePanel,占位符,用户控件

时间:2012-03-16 00:23:39

标签: c# asp.net updatepanel

我可以使用以下代码动态添加用户控件。

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#的新手。当占位符或文字被更改时,我

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

UserControls(ASCX)在服务器端呈现期间附加到页面,无法使用Javascript以标准HTML元素的方式创建。我建议使用包含标准HTML元素而不是用户控件的div,并使用Jquery等Javascript库在适用时创建此div的副本。