博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为DataGrid 写一个 DropDownListColumn
阅读量:5165 次
发布时间:2019-06-13

本文共 2527 字,大约阅读时间需要 8 分钟。

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("数据源不正确。"); 
}

}

}

转载于:https://www.cnblogs.com/gccbuaa/p/7136443.html

你可能感兴趣的文章
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
团队工作第二天
查看>>
System类
查看>>
tableView
查看>>
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>