令人十分困惑的问题,所有的方法都试过[DataGrid列标题本地化]

tajlolo 2005-04-06 11:10:27
可能大家都觉得很简单的问题,但是解决起来很困难。

我想用一个产品类别的下拉列表来解决产品的输入问题。产品分类是一个表,产品是一个表,二者用关系关联起来,主要是想解决层次化修改的问题。

我是用自动绑定的办法,所有的功能都已实现。回头突然发现,原来认为这个问题应该很简单,但是解决起来十分头痛。我也用了不少的办法:

//方法一
this.objdsClassAndProduct.Tables[1].Columns[0].Caption="中文列名";
这个办法是想从数据源入手,但是可以正确设置,也可以跟踪正确的结果,但是网格的列标题无变化。

//跟踪
this.label1.Text=this.objdsClassAndProduct.Tables[1].Columns[0].Caption;


//方法二
this.grdproduct.TableStyles[0].GridColumnStyles[0].HeaderText="中文列名";
//或者:
this.grdproduct.TableStyles["TableName"].GridColumnStyles["classID"].HeaderText="中文列名";

这个办法想直接从网格对象入手,但是用第一个办法,将会出现数组越界的报错信息。如果下第二个语句,将产生“无法导入XML架构,已有classID(分类号)存在”的问题。

我试着修改XSD的XML文件,如果在那里加上caption,不会有显示。其它的也试着修改了,但是没有效果,要么报错。

我也打开了自动产生的数据集对象的代码文件,这个文件一般看不到,在临时程序集里,也试着在对象初始化的时候设置,但是依然没有效果。

我也搜索了CSDN所有类似的贴子,包括用"select classID as 产品分类号...."等办法,但是依然无用,他会在网格后面产生一个新的列,原来的没有变化,并且也无法自动关联。

只有一个办法肯定能够解决,就是手动添加网络的TableStyles和列样式,但是我所有的功能都实现了,就是这个问题令人心烦。

但是有一点我敢肯定,就是这个列对象一定可以动态访问并设置,但是如何动态访问和设置,望大家指点。

如何动态访问和设置?
如何动态访问和设置?
...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tajlolo 2005-04-08
  • 打赏
  • 举报
回复
谢谢大家的回贴,我已经解决了,我的思路和你们的不一样,我的实现办法代价最小,那就是完全重构IDE生成的代码自动生成的有关映射和数据集类。只花了几分钟,仔细研究一下那个隐藏的数据集类,还是挺有意思的。

马上结贴了。谢谢大家的帮助。
SaSBYa 2005-04-07
  • 打赏
  • 举报
回复
WinForm吧.

第一种没什么好说的,应该DS设计时的思路.
不可能随便就改了.(没有研究是否有别名这样的东西...)

第二种,
你可以做的更彻底一,
完全重做TableStyles
这样就可以按你的要求了.

具体的操作一定要看MSDN,里面有较详细的提示.

ydaycool 2005-04-07
  • 打赏
  • 举报
回复
string[] djcolum={"中文名1","中文名2"}

for(int j=0;j<djcolum.Length;j++)
{
mytable.Columns[j].ColumnName=djcolum[j];

}

直接从数据邦定的源下手
dataGrid1.DataSource=mytable.DefaultView;
SaSBYa 2005-04-07
  • 打赏
  • 举报
回复
要是重做TableStyles也不是很吓人,
你只要做一个专门的类去处理DataGrid样式不就行了.

把相关的东西做为参数,类型让它自己去判断....

界面效果就可以自动生成了...
tajlolo 2005-04-07
  • 打赏
  • 举报
回复
是WinForm,如果完全重做,那工作量也太大了点,总觉得有更简洁的办法。

高手们,该出手时就出手啊。顶上去。
tajlolo 2005-04-06
  • 打赏
  • 举报
回复
上面的分类用comboBox绑定,产品细节用DataGrid绑定,可以分类修改和添加,就是产品的列标题的问题。

110,502

社区成员

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

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

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