◆李金峰 鄒軍華 胡江峰
ASP.NET(C#)中通過GridView控件對X ML數據進行管理
◆李金峰 鄒軍華 胡江峰
提出一種通過GridView控件對Xml數據進行管理的基本方法,并就此方法作為例子,詳細講解命令的根本邏輯和含義以及使用范圍。
GridView;Xml;數據
10.3969/j.issn.1671-489X.2016.14.033
在ASP.NET架構中,GridView控件通常是與SQL數據進行綁定以實現顯示數據功能。這種實現方法操作簡易,容錯性強,使用者不需要掌握太多的數據結構知識。但是在教學中為了能讓學習者更好地理解GridView控件從數據源中讀取數據的過程和數據存儲的結構,使用Xml表作為數據源,其顯示方式更加直觀,嚴苛的編輯標準對于初學者的邏輯理解來講也更加友好。
本文旨在提出一種邏輯較為簡單易懂的命令來實現ASP.NET中通過GridView控件來對Xml表內數據進行刪改的功能,命令行以易讀性為第一標準,使學習者在了解根本數據傳遞方法之后,能夠熟練掌握其命令邏輯,并在不同的環境下得以靈活運用。
XML表結構 為了便于描述,本文采用圖1所示的XML文檔,該文檔的根節點為〈basic〉,其中有兩個子節點,分別為〈e0〉和〈e1〉。

圖1 Xml文檔內容
顯示數據 由于顯示數據的此段在后續操作中會被多次用到,因此定義一個子函數MyDataBind。首先創建一個數據集,然后讀取外部Xml表數據加載至該數據集(Xml文件應與當前頁面文件處于同一文件),再將數據集中第一個表,以默認方式作為GridView控件的數據源,最后綁定數據源。代碼如下:

刪除數據 刪除數據時,首先創建一個XmlDocument對象,讀取Xml表數據加載至該文檔對象,然后查找節點,通過ParentNode中的刪除子節點的方法刪除找到的節點,最后保存XML文檔,刷新數據。整個過程如圖2所示。

圖2 刪除Xml節點流程圖
在本例中,〈e1〉節點的數據類型是日期型,精確到“秒”,所以查找節點是通過“SelectSingleNode(″//basic[e1=′″+Grid ViewXmlDelete.Rows[e.RowⅠndex].Cells[3].Text+ ″′]″)”來實現的。
編輯和更新數據 編輯Gridview控件時,只需在RowEditing事件中獲取用戶選定的行號,然后通過調用MyDataBind函數顯示數據。
更新數據時,需要在Gridview控件的RowUpdating事件中創建多個TextBox對象,從而獲取在編輯狀態時用戶動態輸入的信息(通過RowIndex和Cells定位,應該注意由于使用了GridView控件內置的編輯和刪除按鈕,在編輯時,GridView顯示表的前兩列被更新和取消按鈕占用,因此在列定位時應該后移兩列),再通過InnerText屬性設置其所有子節點的值,最后保存XML文檔,取消編輯狀態,刷新數據。運行結果如圖3所示。

圖3
使用Xml表作為數據源時,由于與前臺程序之間存在一個DataSet緩存區,數據先行載入后可以斷開與數據源的連接;而在DataSet中數據的存儲結構為同一節點里的所有元素儲存在同一張DataTable中,其順序和Xml表中節點的排列順序一致。這些特性使得用GridView控件管理Xml表的規范數據時只用短時占用Xml表資源,大部分操作都在頁面程序上進行,大大提升了運行速率?!?/p>
[1]王輝,等.ASP.NET 3.5(C#)實用教程[M].北京:清華大學出版社,2012.
[2]Harol E R.XML實用大全[M].北京:中國水利水電出版社,2000.
TP311.131
B
1671-489X(2016)14-0033-02
作者:李金峰,惠州城市職業學院(516025);鄒軍華(通訊作者)、胡江峰,湖北大學教育學院(430062)。