使用ExtJS GridPanel從Web Service 獲取、綁定和顯示數據_.Net教程
推薦:用Xaml做網頁框架下面就開始編寫XAML,首先來定義一下頁面的屬性: 以下為引用的內容: <Page xmlns="http://schemas.microsoft
本文將向大家介紹一種使用 ExtJS 的 GridPanel 組件從 ASP.NET Web Service 獲取 XML 數據并進行綁定和顯示的方法。
GridPanel 組件在進行數據綁定時可以接收多種數據格式。其中以 JSON 和 XML 最為常見。如果要給 GridPanel 綁定 JSON 格式的數據(這也是網上“通用”和“熱門”的解決方案),那么我們需要修改 Web Service 的 Web.config 設置,將輸出數據的格式改為 JSON(默認為 XML。設置方法可參見:http://www.cnblogs.com/regedit/archive/2008/03/04/1089948.html 一文)。
個人認為此方法過于繁瑣,為了保證對現有的 Web Service 不做較大的調整,我決定還是繼續讓其返回 XML 格式的數據。因此在對 GridPanel 進行數據綁定時就要選用 XML 方式綁定了。也就是說,我們在綁定數據時要使用 Ext.data.XmlReader 而不是 Ext.data.JsonReader。具體的實現方法如下:
1. Web Service 部分:
以下為引用的內容: using System; [WebService(Namespace = "http://tempuri.org/")] // SQL 連接字符串 // 從 start 開始 limit 行,按 sort 字段排序,排序方式為 dir(將傳入 "asc" 或 "desc") // 從數據庫獲取數據,放入 record 表 // 計算總行數,放入 results 表 return ds; |
GetAritcles 將返回一個 DataSet。其內包括兩個 DataTable,第一個存放了(跟據 start 和 limit 參數指定的)當前頁的數據,另一個存放了數據庫中所有數據的行數,供客戶端的 GridPanel 組件使用。客戶端部分(節選):
以下為引用的內容: <script type="text/javascript"> // 數據源 // GridPanel 組件 // 格式化日期 <!-- GridPanel 組件的顯示位置 --> |
從 Web Service 中由 GetArticles 方法返回的是 XML 數據。在將數據綁定到 Ext.data.Store 組件時應使用 Ext.data.XmlReader 而不是網上經常看到的 Ext.data.JsonReader。綁定時我們需要“告訴” XmlReader 在 XML 數據中哪些節點代表數據條目(本例為“record”),哪個節點代表數據總數(本例為“totalRecords”),以及數據的主鍵節點 (本例為“Id”)。您可以通過下圖來理解 XmlReader 的數據綁定過程:
另外,從上圖中的 XML 數據可以看出,日期(Date)的格式比較“丑陋”,如果不加修飾的話將會原樣顯示于客戶的 GridPanel 組件中。因此在客戶端顯示數據之前,需要對日期數據進行一下加工。在創建 Ext.grid.ColumnModel 時為 Date 列指定 renderer(注意加粗部分):
{header:'日期',dataIndex:'Date',sortable:true,width:50, renderer: renderDate}
代碼中的“renderDate”是一個 JavaScript 函數,定義如下:
以下為引用的內容: function renderDate(value) { var reDate = /\d{4}\-\d{2}\-\d{2}/gi; var reTime = /\d{2}:\d{2}:\d{2}/gi; return value.match(reDate) " " value.match(reTime); } |
此函數中的 value 參數即為原始的日期數據,由 Ext.grid.ColumnModel 傳入。在函數中使用正則表達式分別提取日期數據中的“日期”和“時間”部分,拼接后返回。
整個程序執行后的運行界面如下圖所示:
分享:校內網API的.net版本XiaoNei.Net 1.0(非官方)校內API開放也有一段時間了,也沒有太關注,正好新版本的SNS開發到了API這一塊,正好借鑒一下XiaoNei,FB,MySpace的API。 且聞校內API比較有前途,最近的API編程大賽也比較火,而且人氣也較
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-使用ExtJS GridPanel從Web Service 獲取、綁定和顯示數據。