日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

asp.net Jquery 實(shí)現(xiàn)類似Gridview功能 (一)

 印度阿三17 2019-07-26
原文鏈接:http://www.cnblogs.com/xilen/p/4600459.html

  不知不覺(jué)2015年就過(guò)去一半了,由于過(guò)年前后公司人員陸續(xù)離職(這個(gè)...),項(xiàng)目忙不過(guò)來(lái),從過(guò)年來(lái)上班就一直在忙,最近項(xiàng)目終于告一段落,開(kāi)始步入正軌(不用天天趕項(xiàng)目了)。所以最近才有時(shí)間寫這個(gè)東西,可能寫的過(guò)程中我會(huì)從最開(kāi)始的demo開(kāi)始,一步一步的去實(shí)現(xiàn)我想要的功能,所以會(huì)比較啰嗦,感覺(jué)無(wú)聊請(qǐng)無(wú)視。


需求:

想利用Jquery做一個(gè)類似Gridview的功能

主要功能點(diǎn)

1、顯示數(shù)據(jù)

2、分頁(yè)

3、排序

4、樣式好看

暫時(shí)先實(shí)現(xiàn)這些,后面再優(yōu)化擴(kuò)展。


好了,開(kāi)始吧!

如圖新建一個(gè)空白項(xiàng)目,只有一個(gè)簡(jiǎn)單的頁(yè)面和一個(gè)jquery庫(kù),需要自己實(shí)現(xiàn)的方法放在JScript.js文件中

?

?前臺(tái)Html:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 2 
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4 
 5 <html xmlns="http://www./1999/xhtml">
 6 <head runat="server">
 7     <title>js grid view</title>
 8     <script src="jquery-1.9.1.js" type="text/javascript"></script>
 9     <script src="JScript.js" type="text/javascript"></script>
10     <script type="text/javascript">
11         $(function () {
12             var strJson = $("#<%=hfJsonValue.ClientID%>").val();
13             ShowGridView(strJson);
14         });
15     </script>
16 </head>
17 <body>
18     <form id="form1" runat="server">
19     <div id="divGridViewMain">
20         <div id="divHeadTemplate">
21             
22         </div>
23         <div id="divRowTemplate">
24         
25         </div>
26     </div>
27     <asp:HiddenField ID="hfJsonValue" runat="server" />
28     </form>
29 </body>
30 </html>
View Code

前臺(tái)只用一個(gè)div容器顯示GridView,頁(yè)面上有個(gè)隱藏域存放后臺(tái)取的Json數(shù)據(jù),也可以用ajax異步取數(shù)據(jù)?,這里是直接在后臺(tái)傳過(guò)來(lái)的。

后臺(tái)代碼:

?

 1 private void BindGridView()
 2     {
 3         DataTable dt = new DataTable();
 4         dt.Columns.Add("ID");
 5         dt.Columns.Add("Name");
 6         dt.Columns.Add("Age");
 7         dt.Columns.Add("Sex");
 8         dt.Columns.Add("Score");
 9         DataRow dr = null;
10         Random r = new Random();
11         for (int i = 0; i < 20; i  )
12         {
13             dr = dt.NewRow();
14             dr["ID"] = i;
15             dr["Name"] = "Name_"   i;
16             dr["Sex"] = (i % 2 == 0 ? "女" : "男");
17             dr["Age"] = r.Next(16, 27);
18             dr["Score"] = r.Next(60, 100);
19             dt.Rows.Add(dr);
20         }
21 
22         //datatable to json
23         string strJson = DataTable2Json(dt);
24         hfJsonValue.Value = strJson;
25     }
View Code

其中用到一個(gè)方法把DataTable轉(zhuǎn)換為Json格式的數(shù)據(jù),這里只是簡(jiǎn)單的方法,復(fù)雜的并不適用,這里不多講

代碼如下:

 1 public static string DataTable2Json(DataTable dt) { 
 2         StringBuilder jsonBuilder = new StringBuilder(); 
 3         jsonBuilder.Append("["); 
 4         for (int i = 0; i < dt.Rows.Count; i  ) 
 5         { 
 6             jsonBuilder.Append("{"); 
 7             for (int j = 0; j < dt.Columns.Count; j  ) 
 8             { 
 9                 jsonBuilder.Append("\""); 
10                 jsonBuilder.Append(dt.Columns[j].ColumnName); 
11                 jsonBuilder.Append("\":\""); 
12                 jsonBuilder.Append(dt.Rows[i][j].ToString()); 
13                 jsonBuilder.Append("\","); 
14             } 
15             jsonBuilder.Remove(jsonBuilder.Length - 1, 1); 
16             jsonBuilder.Append("},"); 
17         } 
18         jsonBuilder.Remove(jsonBuilder.Length - 1, 1); 
19         jsonBuilder.Append("]"); 
20         //jsonBuilder.Append("}"); 
21         return jsonBuilder.ToString(); 
22     }
View Code

是不是很簡(jiǎn)單,數(shù)據(jù)也有了,那么怎么把他們顯示到頁(yè)面上呢,下面開(kāi)始實(shí)現(xiàn)上邊Html代碼里的一個(gè)js方法

直接貼代碼:

 1 function ShowGridView(strJson) {
 2 
 3     var jsonVal = eval(strJson);
 4 
 5     var headHtml = "<table width='100%'><tr>";
 6     var rowHtml = "<table width='100%'>";
 7 
 8     for (var i = 0; i < jsonVal.length; i  ) {
 9         rowHtml  = "<tr>";
10 
11         $.each(jsonVal[i], function (key, value) {
12             if (i==0) {
13                 headHtml  = "<td>"   key   "</td>";
14             }
15             rowHtml  = "<td>"   value   "</td>";
16         });
17         rowHtml  = "</tr>";
18     }
19     
20 
21     headHtml  = "</tr><table>";
22     rowHtml  = "</table>";
23 
24     $("#divHeadTemplate").html(headHtml);
25     $("#divRowTemplate").html(rowHtml);
26 }
View Code

這里解析json數(shù)據(jù),利用html拼接的方式把表頭寫入divHeadTemplate容器,把行寫入divRowTemplate容器

到這里我們的工作都做完了

讓我們看一下效果:

樣式很丑,但是是我要的效果,數(shù)據(jù)顯示出來(lái)了,然而這有什么用呢?

今天就寫到這吧,困了,睡覺(jué)了,未完待續(xù)。。

轉(zhuǎn)載于:https://www.cnblogs.com/xilen/p/4600459.html

來(lái)源:https://www./content-1-357751.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多