◆李金峰 鄒軍華 胡江峰
ASP.NET(C#)中通過GridView控件對X ML數(shù)據(jù)進行管理
◆李金峰 鄒軍華 胡江峰
提出一種通過GridView控件對Xml數(shù)據(jù)進行管理的基本方法,并就此方法作為例子,詳細講解命令的根本邏輯和含義以及使用范圍。
GridView;Xml;數(shù)據(jù)
10.3969/j.issn.1671-489X.2016.14.033
在ASP.NET架構(gòu)中,GridView控件通常是與SQL數(shù)據(jù)進行綁定以實現(xiàn)顯示數(shù)據(jù)功能。這種實現(xiàn)方法操作簡易,容錯性強,使用者不需要掌握太多的數(shù)據(jù)結(jié)構(gòu)知識。但是在教學(xué)中為了能讓學(xué)習者更好地理解GridView控件從數(shù)據(jù)源中讀取數(shù)據(jù)的過程和數(shù)據(jù)存儲的結(jié)構(gòu),使用Xml表作為數(shù)據(jù)源,其顯示方式更加直觀,嚴苛的編輯標準對于初學(xué)者的邏輯理解來講也更加友好。
本文旨在提出一種邏輯較為簡單易懂的命令來實現(xiàn)ASP.NET中通過GridView控件來對Xml表內(nèi)數(shù)據(jù)進行刪改的功能,命令行以易讀性為第一標準,使學(xué)習者在了解根本數(shù)據(jù)傳遞方法之后,能夠熟練掌握其命令邏輯,并在不同的環(huán)境下得以靈活運用。
XML表結(jié)構(gòu) 為了便于描述,本文采用圖1所示的XML文檔,該文檔的根節(jié)點為〈basic〉,其中有兩個子節(jié)點,分別為〈e0〉和〈e1〉。
圖1 Xml文檔內(nèi)容
顯示數(shù)據(jù) 由于顯示數(shù)據(jù)的此段在后續(xù)操作中會被多次用到,因此定義一個子函數(shù)MyDataBind。首先創(chuàng)建一個數(shù)據(jù)集,然后讀取外部Xml表數(shù)據(jù)加載至該數(shù)據(jù)集(Xml文件應(yīng)與當前頁面文件處于同一文件),再將數(shù)據(jù)集中第一個表,以默認方式作為GridView控件的數(shù)據(jù)源,最后綁定數(shù)據(jù)源。代碼如下:
刪除數(shù)據(jù) 刪除數(shù)據(jù)時,首先創(chuàng)建一個XmlDocument對象,讀取Xml表數(shù)據(jù)加載至該文檔對象,然后查找節(jié)點,通過ParentNode中的刪除子節(jié)點的方法刪除找到的節(jié)點,最后保存XML文檔,刷新數(shù)據(jù)。整個過程如圖2所示。
圖2 刪除Xml節(jié)點流程圖
在本例中,〈e1〉節(jié)點的數(shù)據(jù)類型是日期型,精確到“秒”,所以查找節(jié)點是通過“SelectSingleNode(″//basic[e1=′″+Grid ViewXmlDelete.Rows[e.RowⅠndex].Cells[3].Text+ ″′]″)”來實現(xiàn)的。
編輯和更新數(shù)據(jù) 編輯Gridview控件時,只需在RowEditing事件中獲取用戶選定的行號,然后通過調(diào)用MyDataBind函數(shù)顯示數(shù)據(jù)。
更新數(shù)據(jù)時,需要在Gridview控件的RowUpdating事件中創(chuàng)建多個TextBox對象,從而獲取在編輯狀態(tài)時用戶動態(tài)輸入的信息(通過RowIndex和Cells定位,應(yīng)該注意由于使用了GridView控件內(nèi)置的編輯和刪除按鈕,在編輯時,GridView顯示表的前兩列被更新和取消按鈕占用,因此在列定位時應(yīng)該后移兩列),再通過InnerText屬性設(shè)置其所有子節(jié)點的值,最后保存XML文檔,取消編輯狀態(tài),刷新數(shù)據(jù)。運行結(jié)果如圖3所示。
圖3
使用Xml表作為數(shù)據(jù)源時,由于與前臺程序之間存在一個DataSet緩存區(qū),數(shù)據(jù)先行載入后可以斷開與數(shù)據(jù)源的連接;而在DataSet中數(shù)據(jù)的存儲結(jié)構(gòu)為同一節(jié)點里的所有元素儲存在同一張DataTable中,其順序和Xml表中節(jié)點的排列順序一致。這些特性使得用GridView控件管理Xml表的規(guī)范數(shù)據(jù)時只用短時占用Xml表資源,大部分操作都在頁面程序上進行,大大提升了運行速率?!?/p>
[1]王輝,等.ASP.NET 3.5(C#)實用教程[M].北京:清華大學(xué)出版社,2012.
[2]Harol E R.XML實用大全[M].北京:中國水利水電出版社,2000.
TP311.131
B
1671-489X(2016)14-0033-02
作者:李金峰,惠州城市職業(yè)學(xué)院(516025);鄒軍華(通訊作者)、胡江峰,湖北大學(xué)教育學(xué)院(430062)。