首先是在WinForm中.一个DataGridView,将其绑定到一个dataSet的一个dataTable上.
设置了dataGridView的AutoGenerateColumns 为 false,并自定义了表格的各列.如果纯粹显示dataTable中的各个字段是没问题,设置各列的DataPropertyName为数据表的字段名即可.现在我想在其dataGridView的其中一列上达到如下功能:
比如我dataTable上有一个字段为ItemId,字符串类型,dataGridView的一列只显示itemId的前三位.类似这一列的每一行都显示的是字段ItemId的ItemId.SubString(1,3)
请大家指点一点应该怎么处理.
设置了dataGridView的AutoGenerateColumns 为 false,并自定义了表格的各列.如果纯粹显示dataTable中的各个字段是没问题,设置各列的DataPropertyName为数据表的字段名即可.现在我想在其dataGridView的其中一列上达到如下功能:
比如我dataTable上有一个字段为ItemId,字符串类型,dataGridView的一列只显示itemId的前三位.类似这一列的每一行都显示的是字段ItemId的ItemId.SubString(1,3)
请大家指点一点应该怎么处理.
不是这个意思啊.
dataGridView已绑定到dataTable了.并且dataGridView中对应的各个column与dataTable的各个字段绑定都没问题.现在是想在dataGridView中增加一列,这一列要绑定到其中一个字段的前三个字符.
public string GetStr(object ob)
{
处理成你想要的结果就后返回就行了
}
这种方法我是知道.通过处理数据源来解决.我是想不通过数据源来处理,而是在已经得到dataTable之后在界面上进行处理.
意思是这样的,但我是想在WinForm中,不是WebForm中.
烦请您再教教在WinForm中的处理方式.
先将dataGridView的VirtualMode,再将代码写在DataGridView的CellValueNeeded事件中:具体如下: private void dataGridView1_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
if (e.ColumnIndex == ((DataGridView)sender).Columns["要自定显示列的列的名称"].Index)
{
e.Value = "要显示的值的表达式";
}
}