小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

asp.net Jquery 實現類似Gridview功能 (一)

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

  不知不覺2015年就過去一半了,由于過年前后公司人員陸續(xù)離職(這個...),項目忙不過來,從過年來上班就一直在忙,最近項目終于告一段落,開始步入正軌(不用天天趕項目了)。所以最近才有時間寫這個東西,可能寫的過程中我會從最開始的demo開始,一步一步的去實現我想要的功能,所以會比較啰嗦,感覺無聊請無視。


需求:

想利用Jquery做一個類似Gridview的功能

主要功能點

1、顯示數據

2、分頁

3、排序

4、樣式好看

暫時先實現這些,后面再優(yōu)化擴展。


好了,開始吧!

如圖新建一個空白項目,只有一個簡單的頁面和一個jquery庫,需要自己實現的方法放在JScript.js文件中

?

?前臺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

前臺只用一個div容器顯示GridView,頁面上有個隱藏域存放后臺取的Json數據,也可以用ajax異步取數據?,這里是直接在后臺傳過來的。

后臺代碼:

?

 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

其中用到一個方法把DataTable轉換為Json格式的數據,這里只是簡單的方法,復雜的并不適用,這里不多講

代碼如下:

 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

是不是很簡單,數據也有了,那么怎么把他們顯示到頁面上呢,下面開始實現上邊Html代碼里的一個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數據,利用html拼接的方式把表頭寫入divHeadTemplate容器,把行寫入divRowTemplate容器

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

讓我們看一下效果:

樣式很丑,但是是我要的效果,數據顯示出來了,然而這有什么用呢?

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

轉載于:https://www.cnblogs.com/xilen/p/4600459.html

來源:https://www./content-1-357751.html

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多