考慮到很多資料來源是不確定的,所以這時無法在前台設定gridview的表頭,需要在後台動態指定並繫結資料。
前台**如下:
複製**
<%@ page title="主頁" language="c#" masterpagefile="~/site.master" autoeventwireup="true"
codefile="default.aspx.cs" inherits="_default" %>
複製**
.cs頁面**如下
複製**
public partial class _default : system.web.ui.page
/// 繫結gridview
///
public void binddata()
/// /// 繫結生成gridview
///
/// 要繫結的gridview
/// gridview的資料來源
/// gridview的datakeynames
public static void gridviewbind(gridview gdv, datatable dtbldatasource, string strdatakey)
; for (int i = 0; i < dtbldatasource.columns.count; i++) //繫結普通資料列
//新增編輯列
commandfield cf = new commandfield();//命令字段
cf.buttontype = buttontype.link;//超連結樣式的按鈕
cf.showeditbutton = true;//顯示編輯按鈕
cf.causesvalidation = false;//引發資料驗證為false
cf.headertext = "編輯";
cf.itemstyle.horizontalalign = horizontalalign.center;
gdv.columns.add(cf);//新增編輯按鈕到gridview
//新增刪除列
commandfield cf2 = new commandfield();
cf2.buttontype = buttontype.link;
cf2.showdeletebutton = true;//顯示刪除按鈕
cf2.causesvalidation = false;
cf2.headertext = "刪除";
cf2.itemstyle.horizontalalign = horizontalalign.center;
gdv.columns.add(cf2);
//新增包核取方塊的模板列
templatefield tf = new templatefield();
tf.itemtemplate = new mytemplate("", datacontrolrowtype.datarow);
= "選擇";
tf.headertemplate = new mytemplate("模版列-選擇框", datacontrolrowtype.header);
tf.itemstyle.horizontalalign = horizontalalign.center;
gdv.columns.add(tf);
gdv.databind();//繫結
}//刪除gridview的行
void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e)
//編輯行
public void gridview1_rowediting(object sender, gridviewediteventargs e)
//取消
protected void gridview1_rowcancelingedit(object sender, gridviewcancelediteventargs e)
}
複製**
其中,新增模版的mytemplate類**為:
複製**
public class mytemplate : itemplate
/// /// 動態新增模版列
///
/// 列名
/// 列的型別
public mytemplate(string strcolumnname, datacontrolrowtype dcrtcolumntype)
public void instantiatein(control ctlcontainer)
}}複製**
在mytemplate類中,這裡是直接寫了新增checkbox,其實我們可以在mytemplate的建構函式裡新增乙個引數,表示傳進來的要在模版裡面新增的控制項的型別。這樣就可以根據
控制項型別來自動生成控制項了,而不要在類裡面去手動寫需要生成的控制項。
其中效果圖如下:
GridView動態生成列方法
這是乙個根據不同的資料來源而動態生成gridview顯示資料 繫結生成gridview 要繫結的gridview gridview的資料來源 gridview的datakeynames public static void gridviewbind gridview gv,datatable sou...
C 動態生成GridView的列
想實現這樣的功能嗎?在程式執行中使gridview動態生成列,而並不是將列固定寫死在gridview上 寫個繫結grideview的方法 繫結生成gridview 要繫結的gridview gridview的資料來源 gridview的datakeynames public static void ...
GridView後台新增模板列
1 定義實現itemplate介面的類 public class gridviewtemplate itemplate 定義實現介面itemplate的類 public void instantiatein system.web.ui.control container 分別建立頭行和下面行 voi...