1. 程式人生 > >UpdatePanel和ScriptManager實現免重新整理獲取資料

UpdatePanel和ScriptManager實現免重新整理獲取資料

這年頭,都是ajax+jQuery,後臺取出json資料到前臺,然後再append到頁面上。
新來的大學實習生(估計是老闆的親戚,沒面試就插進來的),大學老師只教了拖控制元件…
現在要實現免重新整理的效果,還是可以的,用一個從來不用的控制元件 UpdatePanel 來實現:

需求:後臺獲取N個圖片資料,動態載入到前端,不準重新整理頁面!
ASPX頁面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default9.aspx.cs" Inherits="Default9" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>djk8888</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Button ID="btnPart" runat="server" Text="區域性重新整理" OnClick="btnPart_Click" /><br />
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Repeater ID="Repeater1" runat="server">
                    <ItemTemplate>
                        <%#Eval("img") %>
                    </ItemTemplate>
                </asp:Repeater>
            </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>

ASPX.CS頁面:

using System;
using System.Collections.Generic;
public partial class Default9 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager1.RegisterAsyncPostBackControl(this.btnPart);//註冊一下要實現非同步回發的控制元件
    }
    protected void btnPart_Click(object sender, EventArgs e)
    {
    	//此處可以是從資料庫中取出資料(略)
        Random ran = new Random();
        List<imgs> imgs = new List<imgs>();
        for (int i = 0; i < ran.Next(1,100); i++)
        {
            imgs pic = new imgs();
            pic.img = "<img src='Koala.jpg' width='100px' />";
            imgs.Add(pic);
        }
        this.Repeater1.DataSource = imgs;
        this.Repeater1.DataBind();
    }
    public class imgs
    {
        public string img { get; set; }
    }
}

就這麼簡單…