在 ASP.NET 中使用 jQuery.load() 方法

今天就让我们看看在 ASP.NET 中使用 jQuery.load() 方法来调用 ASP.NET 的方法,实现无刷新的加载数据。 

使用 jQuery 的朋友应该知道可以使用 jQuery.load() 加载静态页面,并可指定要加载的区域,如在"test.html"中有如下内容:

<div id="show">

    <a href="http://www.jquery001.com/">jQuery001</a>

</div>



<div>

    <a href="http://www.xxx.com/">xxx</a>

</div>

在调用页面"Default.aspx"如下:

<body>

    <div id="result"></div>

</body>



$(document).ready(function() {

    $("#result").load("test.html #show");

});

相信大家能够想像到输出的结果,这样调用只会加载 id 为"show" 的 div 中的内容。下边我们进入本文的主题,看看在 ASP.NET 中怎么使用 jQuery.load() 方法无刷新的调用后台方法。假如有后台代码如下,它根据 "owner" 参数,绑定rptTest:

public partial class _Default : System.Web.UI.Page

{

    public List website;

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            SetTestData();



            if (!string.IsNullOrEmpty(Request.QueryString["owner"]))

            {

                rptTest.DataSource = website.Where(m => m.Owner == Request.QueryString["owner"]);

                rptTest.DataBind();

            }

        }

    }



    public void SetTestData()

    {

        website = new List();

        website.Add(new Website() { Name = "Google+", Owner = "Google" });

        website.Add(new Website() { Name = "Youtube", Owner = "Google" });

        website.Add(new Website() { Name = "265.com", Owner = "Google" });

        website.Add(new Website() { Name = "asp.net", Owner = "Microsoft" });

        website.Add(new Website() { Name = "MSN", Owner = "Microsoft" });



    }



    protected void btnTest_Click(object sender, EventArgs e)

    {



    }



}



public class Website

{

    public string Name { get; set; }

    public string Owner { get; set; }

}

前台代码如下,执行 "btnTest" 单击事件时,使用 event.preventDefault()阻止了按钮的默认执行方式,从而使用 jQuery.load() 方法传递了"owner"参数访问 Default.aspx 页面:

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <script src="js/jquery.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            $("#result").load("test.html #show");



            $("#<%= btnTest.ClientID %>").click(function(event) {

                event.preventDefault();

                var owner = $("#<%= ddlTest.ClientID %>").val();

                $("#result").load("Default.aspx?owner=" + owner + " #show");

            });

        });

    </script>

</head>

<body>

    <form id="form1" runat="server">

        <div id="show">

            <asp:Repeater ID="rptTest" runat="server">

                <ItemTemplate>

                    <div><%#Eval("owner") %><%#Eval("Name") %></div>

                </ItemTemplate>

            </asp:Repeater>

        </div>

    <%=DateTime.Now %>

    <div id="result"></div>

    <asp:DropDownList ID="ddlTest" runat="server">

        <asp:ListItem Value="Google">Google</asp:ListItem>

        <asp:ListItem Value="Microsoft">Microsoft</asp:ListItem>

    </asp:DropDownList>

    <asp:Button ID="btnTest" runat="server" Text="查询" onclick="btnTest_Click" />

    </form>

</body>

其他没有什么新知识,其中输出了当前时间来验证使用这种方法并没有刷新页面,结果如下图所示:

ASP.NET 中使用 jQuery.load() 方法ASP.NET 中使用 jQuery.load() 方法

在 ASP.NET Webform 中适当使用这种方式可减少页面刷新,从而提高用户体验。你可以从 jQuery学习直接下载在 ASP.NET 中使用 jQuery.load() 方法

http://www.jquery001.com/jquery-load-in-asp-net.html

 

你可能感兴趣的:(asp.net)