如何解决dataGrid的标题栏显示的问题 我有个数据库DB里有Name,Sex,Address,对应的中文也就是(姓名,性别,地址)。用dataGrid的dataset数据集填充时,在dataGrid窗口中显示的就是(Name,Sex ,Address)英文字段名,但我想在dataGrid窗口的显示的是中文名称,请问怎么才能装对应的英文显示成中文,就是在窗口中显示为“姓名,性别,地址列 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上的兄弟,请说具本一点啊,我试了TableStyle 这里面只能使dataGrid在程序窗口中出现中文列表名了,在运行中就不会出现中文了,还是英文的,右键-》属性生成器里面有自带的功能 ????什么意思啊,属性生成器在哪里啊, /*******Product表********/ DataTable dt=new DataTable("Product"); dt.Columns.Add("Product_Id"); dt.Columns[0].Caption="ID"; dt.Columns[0].AutoIncrement=true; dt.Columns[0].AutoIncrementSeed=1; dt.Columns[0].DataType=typeof(int); dt.Columns.Add("Product_Name"); dt.Columns[1].Caption="产品名称"; dt.Columns[1].DataType=typeof(string); dt.Columns.Add("Product_Date"); dt.Columns[2].Caption="产品日期"; dt.Columns[2].DataType=typeof(DateTime); dt.Columns.Add("Product_Amount"); dt.Columns[3].Caption="产品数量"; dt.Columns[3].DataType=typeof(int); dt.Columns.Add("Product_Price"); dt.Columns[4].Caption="产品价格"; dt.Columns[4].DataType=typeof(float); dt.Columns.Add("ExtendedPrice"); dt.Columns[5].Caption="总价"; dt.Columns[5].Expression="Product_Amount*Product_Price"; //创建列的表达式 DataRow dr=dt.NewRow(); dr[1]="主板"; dr[2]="2005-9-28"; dr[3]=10; dr[4]=680; dt.Rows.Add(dr); dr=dt.NewRow(); dr[1]="机箱"; dr[2]="2005-10-2"; dr[3]=5; dr[4]=105.53; dt.Rows.Add(dr); dr=dt.NewRow(); dr[1]="硬盘"; dr[2]="2005-8-29"; dr[3]=42; dr[4]=450; dt.Rows.Add(dr); /******************************/ /*******ProductDetail表********/ DataTable dt1=new DataTable("ProductDetail"); dt1.Columns.Add("Product_Name"); dt1.Columns[0].Caption="产品名称"; dt1.Columns[0].DataType=typeof(string); dt1.Columns.Add("ProductDetail_Text"); dt1.Columns[1].Caption="使用说明"; dt1.Columns[1].DataType=typeof(string); dr=dt1.NewRow(); dr[0]="主板"; dr[1]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; dt1.Rows.Add(dr); dr=dt1.NewRow(); dr[0]="机箱"; dr[1]="@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"; dt1.Rows.Add(dr); /*****************************/ ds.Tables.Add(dt); ds.Tables.Add(dt1); DataColumn ParentCol=dt.Columns[1]; DataColumn ChildCol=dt1.Columns[0]; DataRelation drel=new DataRelation("Detail",ParentCol,ChildCol); ds.Relations.Add(drel); //ds.Tables["Product"].Columns.Add("ExtendedPrice",typeof(float),"Product_Amount*Product_Price"); //ds.Tables["Product"].Columns[5].Caption="总价"; DataGridTableStyle TS=new DataGridTableStyle(); TS.AlternatingBackColor=Color.FromArgb(((System.Byte)(241)), ((System.Byte)(244)), ((System.Byte)(250))); TS.BackColor=Color.White; TS.DataGrid=DG; TS.GridLineColor = System.Drawing.Color.FromArgb(((System.Byte)(102)), ((System.Byte)(153)), ((System.Byte)(204))); TS.HeaderBackColor = System.Drawing.Color.FromArgb(((System.Byte)(201)), ((System.Byte)(212)), ((System.Byte)(234))); TS.HeaderForeColor = System.Drawing.SystemColors.ControlText; TS.MappingName=dt.TableName.ToString(); TS.PreferredRowHeight = 20; TS.RowHeaderWidth = 10; DG.TableStyles.Add(TS); for(int i=0;i<dt.Columns.Count;i++) { DataGridTextBoxColumn TC=new DataGridTextBoxColumn(); TC.HeaderText=dt.Columns[i].Caption; TC.MappingName=dt.Columns[i].ColumnName; TC.Width=dt.Columns[i].Caption.ToCharArray().Length*20; DG.TableStyles[0].GridColumnStyles.Add(TC); } DG.CaptionText="产品明细表"; DG.SetDataBinding(ds,"Product"); 我给你来个简单的把sql语句换成如下即可select name as 姓名,sex as性别,address as地址 from tables 我是用dataGrid绑定到dataset上面的,因为这个dataGrid将做为多个查询结果共用的,而不是用DataTable表格了,所以楼上的兄弟这方法不太适合我,但还是挺有参考的,先谢谢了,我慢慢研究。 还有哪位高人能具体针对我的问题给予指点!!! 如以下代码所示即可解决.我用的是.net2.0中的GridView,你将其换在DataGrid即可. <asp:GridView ID="GridView1" runat="server"> <Columns> <asp:BoundField HeaderText="你要显示的中文名称" DataField="数据库字段名" /> <asp:TemplateField HeaderText="你要显示的中文名称"> <ItemTemplate> <asp:Label ID="Label1" runat="Server"><%#DataBinder.Eval(Container.DataItem,"数据库字段名" %></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <Columns><asp:BoundColumn DataField="数据库字段名" SortExpression="EmployeeID" HeaderText="要显示的中文名"><HeaderStyle Width="30px"></HeaderStyle></asp:BoundColumn></Columns> select Name as [姓名],Sex as [性别],Address as [地址] from tablename 绑定数据 。 。 。DataGridTableStyle dataGridTableTargetStyle = null;DataGridTextBoxColumn dataGridTextBoxColumn = null;dataGridTableTargetStyle = new DataGridTableStyle();dataGridTableTargetStyle.MappingName = DataSet.Tables["UserInfo"].TableName;//DataSet.Tables["UserInfo"]数据表dataGridTableTargetStyle.AlternatingBackColor = Color.Gainsboro;dataGridTableTargetStyle.SelectionBackColor = Color.Blue;dataGridTableTargetStyle.RowHeadersVisible = false;dataGridTextBoxColumn = new DataGridTextBoxColumn();dataGridTextBoxColumn.MappingName = "UserInfoID";dataGridTextBoxColumn.HeaderText = "UserInfoID";dataGridTextBoxColumn.Width = 0;dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);dataGridTextBoxColumn = new DataGridTextBoxColumn();dataGridTextBoxColumn.MappingName = "Name";dataGridTextBoxColumn.HeaderText = "姓名";dataGridTextBoxColumn.Width = 30;dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);dataGridTextBoxColumn = new DataGridTextBoxColumn();dataGridTextBoxColumn.MappingName = "Sex";dataGridTextBoxColumn.HeaderText = "性别";dataGridTextBoxColumn.Width = 20;dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);DataGrid1.TableStyles.Add(dataGridTableTargetStyle); 在DataGrid上为DataSet中的每一个DataTable建立TableStyle,这样,当改变DataGrid.DataSource时,会自动匹配对应的TableStyle 地址传入的值超出了类型的有效范围应该怎么处理? 深度剖析三层架构,第四部。 c# 弹出层问题 c# web屏幕截图 请教客户端与服务端存读图象。 关于用C#在MySQL中大量插入数据的问题速度超慢不知道为什么....... 如何只对url地址中的汉字进行编码??????? 如何解决数据集DataSet通过XmlDataDocument生成xml文件失真问题 C#怎样打开关闭CDROM? 怎样判断一个类是否已被创建 请问,在C#中是否有鼠标拖拽事件,该如何使用?请举例说明,谢谢! 文件名挺长,无法下载
里面有自带的功能 ????什么意思啊,属性生成器在哪里啊,
DataTable dt=new DataTable("Product");
dt.Columns.Add("Product_Id");
dt.Columns[0].Caption="ID";
dt.Columns[0].AutoIncrement=true;
dt.Columns[0].AutoIncrementSeed=1;
dt.Columns[0].DataType=typeof(int); dt.Columns.Add("Product_Name");
dt.Columns[1].Caption="产品名称";
dt.Columns[1].DataType=typeof(string); dt.Columns.Add("Product_Date");
dt.Columns[2].Caption="产品日期";
dt.Columns[2].DataType=typeof(DateTime); dt.Columns.Add("Product_Amount");
dt.Columns[3].Caption="产品数量";
dt.Columns[3].DataType=typeof(int); dt.Columns.Add("Product_Price");
dt.Columns[4].Caption="产品价格";
dt.Columns[4].DataType=typeof(float); dt.Columns.Add("ExtendedPrice");
dt.Columns[5].Caption="总价";
dt.Columns[5].Expression="Product_Amount*Product_Price"; //创建列的表达式 DataRow dr=dt.NewRow();
dr[1]="主板";
dr[2]="2005-9-28";
dr[3]=10;
dr[4]=680;
dt.Rows.Add(dr); dr=dt.NewRow();
dr[1]="机箱";
dr[2]="2005-10-2";
dr[3]=5;
dr[4]=105.53;
dt.Rows.Add(dr); dr=dt.NewRow();
dr[1]="硬盘";
dr[2]="2005-8-29";
dr[3]=42;
dr[4]=450;
dt.Rows.Add(dr);
/******************************/ /*******ProductDetail表********/
DataTable dt1=new DataTable("ProductDetail");
dt1.Columns.Add("Product_Name");
dt1.Columns[0].Caption="产品名称";
dt1.Columns[0].DataType=typeof(string); dt1.Columns.Add("ProductDetail_Text");
dt1.Columns[1].Caption="使用说明";
dt1.Columns[1].DataType=typeof(string); dr=dt1.NewRow();
dr[0]="主板";
dr[1]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
dt1.Rows.Add(dr); dr=dt1.NewRow();
dr[0]="机箱";
dr[1]="@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
dt1.Rows.Add(dr);
/*****************************/
ds.Tables.Add(dt);
ds.Tables.Add(dt1); DataColumn ParentCol=dt.Columns[1];
DataColumn ChildCol=dt1.Columns[0];
DataRelation drel=new DataRelation("Detail",ParentCol,ChildCol);
ds.Relations.Add(drel);
//ds.Tables["Product"].Columns.Add("ExtendedPrice",typeof(float),"Product_Amount*Product_Price");
//ds.Tables["Product"].Columns[5].Caption="总价"; DataGridTableStyle TS=new DataGridTableStyle();
TS.AlternatingBackColor=Color.FromArgb(((System.Byte)(241)), ((System.Byte)(244)), ((System.Byte)(250)));
TS.BackColor=Color.White;
TS.DataGrid=DG;
TS.GridLineColor = System.Drawing.Color.FromArgb(((System.Byte)(102)), ((System.Byte)(153)), ((System.Byte)(204)));
TS.HeaderBackColor = System.Drawing.Color.FromArgb(((System.Byte)(201)), ((System.Byte)(212)), ((System.Byte)(234)));
TS.HeaderForeColor = System.Drawing.SystemColors.ControlText;
TS.MappingName=dt.TableName.ToString();
TS.PreferredRowHeight = 20;
TS.RowHeaderWidth = 10;
DG.TableStyles.Add(TS);
for(int i=0;i<dt.Columns.Count;i++)
{
DataGridTextBoxColumn TC=new DataGridTextBoxColumn();
TC.HeaderText=dt.Columns[i].Caption;
TC.MappingName=dt.Columns[i].ColumnName;
TC.Width=dt.Columns[i].Caption.ToCharArray().Length*20;
DG.TableStyles[0].GridColumnStyles.Add(TC);
} DG.CaptionText="产品明细表";
DG.SetDataBinding(ds,"Product");
把sql语句换成如下即可select name as 姓名,sex as性别,address as地址 from tables
我用的是.net2.0中的GridView,你将其换在DataGrid即可. <asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField HeaderText="你要显示的中文名称" DataField="数据库字段名" />
<asp:TemplateField HeaderText="你要显示的中文名称">
<ItemTemplate>
<asp:Label ID="Label1" runat="Server"><%#DataBinder.Eval(Container.DataItem,"数据库字段名" %></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:BoundColumn DataField="数据库字段名" SortExpression="EmployeeID" HeaderText="要显示的中文名"><HeaderStyle Width="30px"></HeaderStyle>
</asp:BoundColumn>
</Columns>
。
。
。
DataGridTableStyle dataGridTableTargetStyle = null;
DataGridTextBoxColumn dataGridTextBoxColumn = null;
dataGridTableTargetStyle = new DataGridTableStyle();
dataGridTableTargetStyle.MappingName = DataSet.Tables["UserInfo"].TableName;
//DataSet.Tables["UserInfo"]数据表
dataGridTableTargetStyle.AlternatingBackColor = Color.Gainsboro;
dataGridTableTargetStyle.SelectionBackColor = Color.Blue;
dataGridTableTargetStyle.RowHeadersVisible = false;
dataGridTextBoxColumn = new DataGridTextBoxColumn();
dataGridTextBoxColumn.MappingName = "UserInfoID";
dataGridTextBoxColumn.HeaderText = "UserInfoID";
dataGridTextBoxColumn.Width = 0;
dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);dataGridTextBoxColumn = new DataGridTextBoxColumn();
dataGridTextBoxColumn.MappingName = "Name";
dataGridTextBoxColumn.HeaderText = "姓名";
dataGridTextBoxColumn.Width = 30;
dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);dataGridTextBoxColumn = new DataGridTextBoxColumn();
dataGridTextBoxColumn.MappingName = "Sex";
dataGridTextBoxColumn.HeaderText = "性别";
dataGridTextBoxColumn.Width = 20;
dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);DataGrid1.TableStyles.Add(dataGridTableTargetStyle);