国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

動態的管理ASP.NET DataGrid數據列

2024-07-10 12:58:02
字體:
來源:轉載
供稿:網友
在asp.net的datagrid數據顯示控件編程中,我們有幾種方式可以增加datagrid columns。其中最常見的方法是在web forms設計器中增加,通過在控件工具箱中拖訪datagrid控件到web設計頁面,然后在屬性生成器中增加columns列;還有一種方式就是在html視圖模式下更改html代碼的方式增加columns列。但是這兩種方式都是在設計時進行的,一旦設計完成就無法更改。其實我們也可以在程序運行時動態的增加或者刪除columns列。在這篇文章中,我將向大家介紹如何編程實現在運行時動態的增加和刪除columns列,其實是通過隱藏或者現實columns列來實現的。

  datagrid 的columns屬性是訪問datagrid columns的關鍵所在。訪問這個屬性返回的是datagridcolumncollection這樣的一個集合對象,它包含了所有的datagrigcolumn對象。datagridcolumncollection提供了增加一個datagrigcolumn對象和刪除一個已經存在的datagrigcolumn對象的方法。,我們將使用datagridcolumncollection的add方法來增加一個datagrigcolumn對象,從而在運行時動態的增加一列到datagrid中去。一個datagrigcolumn代表datagrid的一列,datagrid的visible屬性用來顯示或者隱藏一個列。

  好了,下面讓大家跟我一起來創建一個dynamicdatagrid的c#的asp.net的工程,他有隱藏和顯示datagrid 的每一列的選項。

  在我用vs.net創建的web application里面,我在設計頁面上拖放了一個panel 控件。在這個panel控件上,我放置了一個datagrid控件,一個dropdownlist控件,兩個button控件用于改變datagrid控件的屬性。

  現在我們開始創建兩個方法:filldatagrid()和fillcolumnslist()方法。filldatagrid()用于增加一個列到datagrid控件和用dataset數據源來填充它。在這里的我是通過db.getdataset()方法來獲取dataset的。大家可以參照附加的源代碼文件(db.cs)獲取更多的細節。

  下面的代碼說明了createdatagrid()的實現。從代碼中可以看出,我創建了三個列,用boundcolumn的datafield屬性綁定到dataset的id,name和address字段。boundcolumn類繼承自datagridcolumn類。

private void createdatagrid()
{
// set datagrid properties
datagrid1.autogeneratecolumns = false;

// get a dataset object filled with data
dataset ds = db.getdataset();

// create id column & add to datagrid
boundcolumn col = new boundcolumn();
col.headertext="user id";
col.datafield="id";
datagrid1.columns.add(col);

// create name column & add to datagrid
col = new boundcolumn();
col.headertext="user name";
col.datafield="name";
datagrid1.columns.add(col);

// create address column & add to datagrid
col = new boundcolumn();
col.headertext="user address";
col.datafield="address";
datagrid1.columns.add(col);

// datagrid data binding
datagrid1.datasource = ds.tables[0];
datagrid1.databind();
}


  fillcolumnslist()方法只是簡單的從datagrid中讀取列名,并且將這些列(columns)名填充到dropdownlist控件的下拉列表中去。我們將使用dropdownlist控件來選取隱藏或者顯示的列。

private void fillcolumnslist(datagrid grid)
{
foreach (datagridcolumn col in grid.columns)
{
columnslist.items.add(col.headertext);
}
}

  接著我們來添加hidedatagridcolumn()方法來具體的通過index索引和bool值兩個參數來顯示或者隱藏一個列。在這里,我僅僅是簡單的設置columns列的visible屬性為true或者false.

private void hidedatagridcolumn(int index, bool show)
{
datagrid1.columns[index].visible = show;
}

  最后的工作就是增加show column和hide column的單擊事件處理。正如我們在代碼中看到的一樣,我只是簡單的調用hidedatagridcolumn()方法來顯示或者隱藏列,當然要傳入參數了。

private void hidecolumnbtn_click(object sender, system.eventargs e)
{
hidedatagridcolumn(columnslist.selectedindex, false);
this.databind();
}
private void showcolumnbtn_click(object sender, system.eventargs e)
{
hidedatagridcolumn(columnslist.selectedindex, true);
this.databind();
}

  ok,所有的工作都結束了,我們看看運行的結果如何。你可以通過下拉列表來選擇要隱藏或者顯示的列,并且只需單擊show或者hide按鈕即可。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汶川县| 顺昌县| 文成县| 杨浦区| 通道| 波密县| 绥江县| 明水县| 峨眉山市| 隆回县| 饶阳县| 榆树市| 云浮市| 石渠县| 工布江达县| 乐东| 金山区| 敦煌市| 曲松县| 开封市| 房山区| 汨罗市| 汉中市| 广河县| 莒南县| 会理县| 隆子县| 吉木萨尔县| 故城县| 卢龙县| 连城县| 庆元县| 大宁县| 大关县| 泰宁县| 成安县| 佛学| 哈尔滨市| 泸溪县| 和平县| 桂平市|