在ASP.NET的DataGrid數(shù)據(jù)顯示控件編程中,我們有幾種方式可以增加DataGrid columns。其中最常見的方法是在web forms設(shè)計(jì)器中增加,通過在控件工具箱中拖訪DataGrid控件到web設(shè)計(jì)頁(yè)面,然后在屬性生成器中增加Columns列;還有一種方式就是在HTML視圖模式下更改HTML代碼的方式增加Columns列。但是這兩種方式都是在設(shè)計(jì)時(shí)進(jìn)行的,一旦設(shè)計(jì)完成就無(wú)法更改。其實(shí)我們也可以在程序運(yùn)行時(shí)動(dòng)態(tài)的增加或者刪除Columns列。在這篇文章中,我將向大家介紹如何編程實(shí)現(xiàn)在運(yùn)行時(shí)動(dòng)態(tài)的增加和刪除Columns列,其實(shí)是通過隱藏或者現(xiàn)實(shí)Columns列來實(shí)現(xiàn)的。
DataGrid 的Columns屬性是訪問datagrid Columns的關(guān)鍵所在。訪問這個(gè)屬性返回的是DataGridColumnCollection這樣的一個(gè)集合對(duì)象,它包含了所有的DataGrigColumn對(duì)象。DataGridColumnCollection提供了增加一個(gè)DataGrigColumn對(duì)象和刪除一個(gè)已經(jīng)存在的DataGrigColumn對(duì)象的方法。,我們將使用DataGridColumnCollection的Add方法來增加一個(gè)DataGrigColumn對(duì)象,從而在運(yùn)行時(shí)動(dòng)態(tài)的增加一列到DataGrid中去。一個(gè)DataGrigColumn代表DataGrid的一列,DataGrid的Visible屬性用來顯示或者隱藏一個(gè)列。
好了,下面讓大家跟我一起來創(chuàng)建一個(gè)DynamicDataGrid的C#的ASP.NET的工程,他有隱藏和顯示DataGrid 的每一列的選項(xiàng)。
在我用VS.NET創(chuàng)建的web application里面,我在設(shè)計(jì)頁(yè)面上拖放了一個(gè)Panel 控件。在這個(gè)panel控件上,我放置了一個(gè)DataGrid控件,一個(gè)DropDownList控件,兩個(gè)Button控件用于改變DataGrid控件的屬性。最后的設(shè)計(jì)界面看起來是下圖這樣的。
現(xiàn)在我們開始創(chuàng)建兩個(gè)方法:FillDataGrid()和FillColumnsList()方法。FillDataGrid()用于增加一個(gè)列到DataGrid控件和用DataSet數(shù)據(jù)源來填充它。在這里的我是通過DB.GetDataSet()方法來獲取DataSet的。大家可以參照附加的源代碼文件(DB.CS)獲取更多的細(xì)節(jié)。
下面的代碼說明了CreateDataGrid()的實(shí)現(xiàn)。從代碼中可以看出,我創(chuàng)建了三個(gè)列,用BoundColumn的DataField屬性綁定到Dataset的ID,Name和Address字段。BoundColumn類繼承自DataGridColumn類。
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
OK,所有的工作都結(jié)束了,我們看看運(yùn)行的結(jié)果如何。你可以通過下拉列表來選擇要隱藏或者顯示的列,并且只需單擊Show或者Hide按鈕即可。
出處:藍(lán)色理想
責(zé)任編輯:幻想曲
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|