为DataGrid 写一个 DropDownListColumn
来源:互联网 发布:雨佳会计软件 编辑:程序博客网 时间:2024/06/06 01:20
作为 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("数据源不对。");
}
}
}
}
- 为DataGrid 写一个 DropDownListColumn
- 为DataGrid 写一个 DropDownListColumn
- 为DataGrid 写一个 DropDownListColumn
- 为DataGrid 写一个 DropDownListColumn
- 为DataGrid 写一个 DropDownListColumn
- 为DataGrid写一个Renderer需要注意实现的两个接口:IListDataRenderer和IDropInListDataRenderer
- 为Project提供一个统一风格的DataGrid
- DataGrid中为一个超链接跳转添加多个属性
- 为一个系统写plugin的感想
- 为js写的一个include文件
- 为LoadRunner写一个lr_save_float函数
- 为接口写一个 template 适配类
- 为MYPoint类写一个分类
- 如何为TinyMce写一个插件
- 如何为Android写一个PhoneGap插件
- 为PhoneGap写一个android插件
- 为类写一个自己的堆
- 写一个函数,判断一个字符串是否为回文联
- 使用TCPDF插件生成pdf以及pdf的中文处理
- 在asp.net中使用excel模板
- 查看软件使用的端口
- 后台技术分享
- 以传值和传引用的方式传递参数 IN OUT NOCOPY
- 为DataGrid 写一个 DropDownListColumn
- gnuplot学习(二)
- DataReader也玩超酷数据显示分页
- linux下添加PATH环境变量
- sqlserver通配符使用-特殊符号处理-escape
- 大概了解一下web.config
- ASP.NET: Dispaly data from an Excel Spreadsheet
- 用service来进行查询
- 面对对象必须掌握内容