麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

利用Linq+Jquery+Ajax異步分頁的實現

2019-11-14 16:42:31
字體:
來源:轉載
供稿:網友

在Web顯示的時候我們經常會遇到分頁顯示,而網上的分頁方法甚多,但都太過于消耗帶寬,所以我想到了用Ajax來分頁,利用返回的Json來處理返回的數據,

大大簡化了帶寬的壓力。

先說下思路,無非就是異步執行ajax 把新列表所需要的數據用json格式返回來,然后把原來的列表Remove掉,讓新列表Show。

上前臺Html代碼:

<!--一個table 里面是repeater 當然了你也可以用<UL>那樣效率更高-->

<table width="100%" border="0" cellpadding="0" id = "newslist" cellspacing="1" bgcolor="b5d6e6">
            <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
            <tr>
            <td width="15%" height="22" background="images/bg.gif" bgcolor="#FFFFFF"><div align="center">
             <a id="quan">全選</a>
            <a id="fan">反選</a>
            </div></td> 
             <td width="12%" height="22" background="images/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">接收號碼</span></div></td>
            <td width="14%" height="22" background="images/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">發送時間</span></div></td>
            <td width="18%" background="images/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">郵件地址</span></div></td>
            <td width="23%" height="22" background="images/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">內容</span></div></td>
            <td width="15%" height="22" background="images/bg.gif" bgcolor="#FFFFFF" class="STYLE1"><div align="center">基本操作</div></td>
          </tr>
            </HeaderTemplate>
           <ItemTemplate>
             <tr class="item">
            <td height="20" bgcolor="#FFFFFF"><div align="center">
              <input class ="check_select" type="checkbox" name="checkbox2" title =<%#Eval("Id")%> value="checkbox" />
            </div></td>
            <td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1"><%#Eval("Name")%></span></div></td>
            <td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">2007-11-16 15:00:20 </span></div></td>
            <td bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">[email protected]</span></div></td>
            <td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE1">南京科技股份有限公司&hellip;</span></div></td>
            <td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE4"><img src="images/edt.gif" width="16" height="16" />編輯&nbsp; &nbsp;<img src="images/del.gif" width="16" height="16" />刪除</span></div></td>
          </tr>
           </ItemTemplate>
            </asp:Repeater>
        </table>

<!--一個table 里面是上一頁,下一頁,當前頁面信息等等……當然了你也可以用<UL>那樣效率更高-->

<table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td class="STYLE4"><a id="delete"  style =" cursor :hand;">批量刪除</a>

            </td>
             <td class="STYLE4">共有<asp:Label ID="Count" runat="server" Text=""></asp:Label>條數據,
             每頁顯示<asp:Label ID="ItemCount" runat="server" Text=""></asp:Label>條,
             當前<asp:Label ID="index" runat="server" Text=""></asp:Label>
             /
             <asp:Label ID="PageCount" runat="server" Text=""></asp:Label>
             頁

            </td>
            <td><table border="0" align="right" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="40"><img src="images/first.gif" class="page" title ="first" width="37" height="15" /></td>
                  <td width="45"><img src="images/back.gif" class="page" title ="back" width="43" height="15" /></td>
                  <td width="45"><img src="images/next.gif" class="page" title ="next" width="43" height="15" /></td>
                  <td width="40"><img src="images/last.gif" class="page" title ="last" width="37" height="15" /></td>
                  <td width="100"><div align="center"><span class="STYLE1">轉到第
                      <asp:DropDownList ID="Drop" runat="server">
                      </asp:DropDownList>                   
                    頁 </span></div></td>
                  <td width="40"><img class="page" title = "go" src="images/go.gif" width="37" height="15" /></td>
                </tr>
            </table> 
            </td>
          </tr>
        </table>

好了,初步的html頁面布局已經做完了,下來我們該做頁面和服務器的交互了

頁面引入Jquery,為上一頁,下一頁,首頁,尾頁,增加Click事件

設置他們的Class = page 以便于給他們增加Click

 $(".page").click(function () {
                var type = $(this).attr("title");
                var thisindex = $("#index").text(); //獲取當前頁碼
                switch (type) {
                    case 'first':
                        {
                            pageindex = 1;
                            PageIndex(1);  //Ajax 回傳函數
                            return;
                        }
                    case 'back':
                        {
                            if (thisindex == 1) {
                                alert("當前已經是第一頁!");
                            }
                            else {
                                pageindex = parseInt(thisindex) - 1;
                                PageIndex(pageindex);
                            }
                            return;
                        }
                    case 'next':
                        {
                            if (thisindex == $("#Drop").children().length) {
                                alert("當前已經是最后頁!");
                            }
                            else {
                                pageindex = parseInt(thisindex) + 1;
                                PageIndex(pageindex);
                            }
                            return;
                        }
                    case 'last':
                        {
                            var max = $("#Drop").children().length;
                            pageindex = max;
                            PageIndex(max);
                            return;
                        }
                    case 'go':
                        {
                            var _go = $("#Drop").val();
                            pageindex = _go;
                            PageIndex(_go);
                            return;
                        }
                }

            })

下面的代碼在是Ajax的回傳封裝,切記在$(function(){ ....})之外

var pageindex;
        function PageIndex(index) {
            $.ajax({
                type: "Post", //回傳格式
                url: "WebForm1.aspx", //回傳頁面
                data: { "id": index },  //回傳參數表示請求的是第幾頁
                cache: false, //禁止使用瀏覽器緩存
                //dataType: "json",
                success: function (data) {
                    var json = eval(data); //把返回來的數據 json
                    var str = "";
                    for (var i = 0; i < json.items.length - 1; i++) {
                        str = str + "<tr class='item' ><td height='20' bgcolor='#FFFFFF'><div align='center'><input class ='check_select' type='checkbox' name='checkbox2' title =" + json.items[i].id.toString() + " value='checkbox' /></div></td>";
                        str = str + "<td height='20' bgcolor='#FFFFFF'><div align='center'><span class='STYLE1'>" + json.items[i].name + "</span></div></td><td height='20' bgcolor='#FFFFFF'><div align='center'><span class='STYLE1'>2007-11-16 15:00:20 </span></div></td>";
                        str = str + "<td bgcolor='#FFFFFF'><div align='center'><span class='STYLE1'>[email protected]</span></div></td><td height='20' bgcolor='#FFFFFF'><div align='center'><span class='STYLE1'>南京科技股份有限公司…</span></div></td>";
                        str = str + "<td height='20' bgcolor='#FFFFFF'><div align='center'><span class='STYLE4'><img src='images/edt.gif' width='16' height='16' />編輯&nbsp; &nbsp;<img src='images/del.gif' width='16' height='16' />刪除</span></div></td></tr>";
                    }
                    $("#index").text(pageindex); //設置當前的頁碼
                    $(".item").remove(); //移除原有的列表
                    $("#newslist").append(str); //顯示返回的列表
                },
                error: function () {
                    alert("服務錯誤");
                }
            })
        }

下面才C#代碼了:

void data(int id,bool b)
        {
            int listcount = 7; //設置頁面的顯示數量
            LinqToSqlDataContext ds = new LinqToSqlDataContext();
            var q = (from a in ds.Admin select a).Skip((id-1) * listcount).Take(listcount); //獲取請求頁面的列表
            if (!b)  //如果是頁面初始加載 默認顯示
            {
                Repeater1.DataSource = q;
                DataBind();
                int count = (from a in ds.Admin select a).ToList().Count;
                this.Count.Text = count.ToString();                
                count = count / listcount + (count % listcount > 0 ? 1 : 0);
                this.ItemCount.Text = listcount.ToString();
                this.index.Text = "1";
                this.PageCount.Text = count.ToString();
                for (int i = 0; i < count; i++)
                {
                    Drop.Items.Add((i + 1).ToString());
                }
            }
            else
            {
                string str = "({items:[";                
                foreach (var a in q)
                {
                    str += "{'id':'" + a.Id + "'";
                    str += ",'name':'" + a.Name+"'";
                    str += "},";
                }
                str += "]})";
                Response.Write(str);
                Response.End();
            }
        }
        PRotected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                data(1,false);
            }
            PageIndex();
        }
        void PageIndex()
        {
            if (Request["id"] != null)
            {
                int id = int.Parse(Request["id"].ToString());
                data(id,true);
            }
        }

好了,到此,大功告成,后續會把批量刪除(批量刪除后的頁面變化等等加入),


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲日本韩国精品 | 久久福利剧场 | 玖草在线资源 | 羞羞答答视频 | 在线 日本 制服 中文 欧美 | 久久精品视频网址 | 国产在线精品一区二区三区不卡 | 久久在草| 成人国产精品久久久 | 一级在线免费 | 亚洲日本欧美 | 国产1级视频 | 日本黄色一级视频 | 色99久久 | 韩国精品视频在线观看 | 午夜精品久久久久久毛片 | 国产午夜亚洲精品理论片大丰影院 | 欧美激情综合在线 | 国产精品入口夜色视频大尺度 | 国产精品久久久久久久久久久天堂 | 激情宗合网 | 亚洲小视频在线 | 中文在线观看www | 久久精品视频3 | 亚洲综人网 | 亚洲免费视频大全 | 日韩视频―中文字幕 | 国产91在线亚洲 | 成人短视频在线观看免费 | 日日做夜夜操 | 亚洲片在线观看 | 91网站免费在线观看 | 国产美女爽到喷白浆的 | 毛片免费观看视频 | 欧美日韩免费一区二区三区 | 国产成人精品一区二区三区电影 | 日韩视频一区二区三区四区 | 国产精品一区网站 | 成人福利网 | 日本高清无遮挡 | av成人在线免费观看 |