Net下有一个类DataGridColumn

作为 DataGrid 控件的不同列类型的基类。

有关此类型全部成员的列表。请參阅 DataGridColumn 成员。

System.Object 

System.Web.UI.WebControls.DataGridColumn 

System.Web.UI.WebControls.BoundColumn 

System.Web.UI.WebControls.ButtonColumn 

System.Web.UI.WebControls.EditCommandColumn 

System.Web.UI.WebControls.HyperLinkColumn 

System.Web.UI.WebControls.TemplateColumn

我们完毕能够写一个继承DataGirdColumn的类,这样就成了。DropDownListColumn,CheckBoxListColumn等。

控件的代码例如以下。

using System; 

using System.Web.UI; 

using System.Web.UI.WebControls ; 

using System.Collections ; 

using System.Data ;

namespace CustomColumn 



/// <summary> 

/// DataGridCustomColumn 的摘要说明。 

/// </summary> 

public class DropDownListColumn :System.Web.UI.WebControls.DataGridColumn 



//数据源 

public DataTable DataSource ; 

//显示的文本字段 

public string DataTextField ; 

// 

public string DataValueField ;

//DataGrid中要绑定的字段

public string DataField ;

public string DataShowField;

public DropDownListColumn() 



// 

// TODO: 在此处加入构造函数逻辑 

//

}

public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) 



base.InitializeCell (cell, columnIndex, itemType); 

switch(itemType) 



case ListItemType.Header : 

cell.Text = this.HeaderText ; 

break;

case ListItemType.Item:case ListItemType.AlternatingItem : 

cell.DataBinding +=new EventHandler(cell_ItemDataBinding); 

break;

case ListItemType.EditItem : 

cell.DataBinding +=new EventHandler(cell_EditItemDataBinding); 

//======================== 

DropDownList drp = new DropDownList(); 

cell.Controls.Add(drp); 

break;



}

private void cell_ItemDataBinding(object sender, EventArgs e) 



TableCell cell =(TableCell)sender ; 

DataGridItem DGI =(DataGridItem)cell.NamingContainer ; 

try 



cell.Text = (DataBinder.Eval(DGI.DataItem,DataShowField)).ToString(); 



catch 



throw new Exception("请设置字段"); 



}

private void cell_EditItemDataBinding(object sender,EventArgs e) 



TableCell cell =(TableCell)sender ; 

DropDownList drp =(DropDownList)cell.Controls[0]; ; 

ListItem item ; 

DataGridItem DGI ; 

try 

{

//================ 

drp.Items.Add(new ListItem("请选择","-1")); 

//

for(int k=0;k<=DataSource.Rows.Count -1;k++) 



DataRow dr = DataSource.Rows[k]; 

item = new ListItem(); 

item.Text = dr[DataTextField].ToString(); 

item.Value = dr[DataValueField].ToString(); 

drp.Items.Add(item); 

}

DGI =(DataGridItem)cell.NamingContainer ;

string Value = DataBinder.Eval(DGI.DataItem,DataField).ToString();

item = drp.Items.FindByValue(Value); 

if(item!=null) 



item.Selected = true; 





catch 



throw new Exception("数据源不正确。"); 

}

}



}

最新文章

  1. [NHibernate]存储过程的使用(一)
  2. 李洪强iOS经典面试题132-版本控制
  3. Silverlight弹出层(转载)
  4. 【转】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程
  5. appFramework在三星某些机型上的兼容问题
  6. Mac ssh登陆linux并且显示linux图形
  7. HTML5兼容IE各版本的写法
  8. linux cpu load学习笔记
  9. 简说Java线程的那几个启动方式
  10. 大数据学习之HDFS基本API操作(下)06
  11. mysql navcate longblob 查询结果导出倒入
  12. [20190214]11g Query Result Cache RC Latches补充.txt
  13. .net amr格式文件转换成mp3格式文件的方法
  14. 关于导出csv格式文件的身份证号、日期的处理
  15. Linux命令一览
  16. kibana 的search 的的搜索提示挡住输入框
  17. mysql 数据操作 单表查询 目录
  18. spring AbstractRoutingDataSource实现动态数据源切换
  19. WebApiTestHelpPage
  20. BTrace追踪Hadoop部署

热门文章

  1. js操作Attribute,控件的各种属性.....maxlength,style...
  2. C#模拟百度登录并到指定网站评论回帖(五)
  3. redis+mysql读写方案
  4. Java编程思想读书笔记_第三章
  5. WebApi实现IHttpControllerSelector问题
  6. quartz在集群环境下的最终解决方案
  7. 【Python-2.7】大小写转换函数
  8. HDU_3732_(多重背包)
  9. 第一章 React新的前端思维方式
  10. zabbix+docker