如何创建成自定义风格的DataGrid列组件.

tianjh 2004-12-31 12:01:42
在DataGrid中编辑数据时有时需要根据数据类型不同在编辑时产生不同的编辑控件,这样可以初步验证数据类型,也为用户提供了很好的交互接口.
可是系统中对DataGrid只提供了简单了文本和checkbox有限的几种列风格,如何创建自定义的列风格,请诸位高手指点迷津.
举个例子,如何生成具有下拉框的DataGrid列风格控件.
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guishuanglin 2005-01-07
  • 打赏
  • 举报
回复
晕啊,楼主你是不是要把下拉列表邦定到GRID的列上啊,
如果是的看这里
http://blog.csdn.net/langmafeng/archive/2004/11/04/167164.aspx
用这种方法,可以把一般你想要的控件都帮上去。时间,日期,数字框,动太下拉列表。。。。
adam2732999 2004-12-31
  • 打赏
  • 举报
回复
动态生成grid的column 以dropdownlist为例
public class DeptColumn :TemplateColumn
{
public DeptColumn(string dept)
{
this.HeaderText = dept;
HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
HeaderStyle.Width = Unit.Percentage(9);
ItemStyle.CssClass = "Normal";
ItemTemplate = new IDeptColumn(dept);
}
}

public class IDeptColumn:ITemplate
{

ReturnData _dbAccess = null;
private string _dept = string.Empty;

public IDeptColumn(string dept)
{
_dept = dept;
_dbAccess = new ReturnData();
}

public void InstantiateIn(System.Web.UI.Control container)
{
DropDownList dl = new DropDownList();
dl.CssClass = "Normal";
dl.Width = Unit.Pixel(100);
dl.ID = "dl_" + _dept;
dl.DataBinding += new EventHandler(dl_OnDataBinding);

container.Controls.Add(dl);
}

private void dl_OnDataBinding(object sender,EventArgs e)
{
DropDownList dl = (DropDownList)sender;
DataGridItem container = (DataGridItem) dl.NamingContainer;
string qbrId = ((DataRowView)container.DataItem)["qbrId"].ToString();

if (qbrId.Length > 0)
{
dl.DataSource = _dbAccess.QBR_SurveyPlanUserGet(int.Parse(qbrId), _dept);
dl.DataTextField = "username";
dl.DataValueField = "userid";
}

}

}
老大刘 2004-12-31
  • 打赏
  • 举报
回复
msdn上有比较详细的说明
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWebUIWebControlsTemplateColumnClassItemTemplateTopic.htm
老大刘 2004-12-31
  • 打赏
  • 举报
回复
简单的方式:用模板列

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧