找回密码
 注册
搜索
热搜: 回贴

ASP.net:如何定制你自己的DataGrid

2009-12-13 13:03| 发布者: admin| 查看: 35| 评论: 0|原作者: 心然

●下面的例子显示了如何定制DataGrid......


下面的例子显示了如何定制DataGrid,包括如何绑定一个DataTable到一个DataGrid,以及如何隐藏DataGrid中的一些列。

首先,如果你只设置DataGrid的DataSource属性是一个DataTable,那么DataGrid的TableStyle将是DefaultTableStyle,它的TableStyle.Count属性是零。所以,如果你想让你的DataGrid有个不同的table style,你必须添加你自己的table style。

下面的例子设置了一个DataGrid的data source属性,然后声明一个新的DataGridTableStyle和四个DataGridColumnStyles。这是因为在_periodData.Tables [AccountingPeriodData.AccountingPeriod_TABLE] 中有六个字段,但我只想显示四个,而且第一个必须是只读的,当然我想改变每个字段的Header Text,所以我用这个函数来实现它。注意,我们不能把HeaderText设置成一个字符串常量,我们应该从源文件中得到它。

顺便说一下,我声明了四个DataGridColumnStyle对象,但将它们更新为DataGridTextBoxColumn,这意味着你也可以将它们更新为一个DataGidBoolColumn。你当然应该知道原因啦。:-)// Initialize DataGrid when the form is opened.
private void InitializeDataGrid()
{
// set the DataGrid's datasource to a DataTable
dtgPeriods.DataSource = _periodData.Tables
[AccountingPeriodData.AccountingPeriod_TABLE];

// Create a DataGridTableStyle and set its MappingName is Accounting_TABLE
DataGridTableStyle mydtgTableStyle = new DataGridTableStyle();
mydtgTableStyle.MappingName = AccountingPeriodData.AccountingPeriod_TABLE;

// Create DataGridColumnStyles, set their properties
// Add these DataGridCollumnStyles into
the DataGridTableStyle defined above one by one
DataGridColumnStyle periodCodeStyle = new DataGridTextBoxColumn();
periodCodeStyle.MappingName = AccountingPeriodData.Period_FIELD;
periodCodeStyle.HeaderText = "會計期別";
periodCodeStyle.ReadOnly = true;
mydtgTableStyle.GridColumnStyles.Add(periodCodeStyle);

DataGridColumnStyle startDateStyle = new DataGridTextBoxColumn();
startDateStyle.MappingName = AccountingPeriodData.StartDate_FIELD;
startDateStyle.HeaderText = "期初日期";
mydtgTableStyle.GridColumnStyles.Add(startDateStyle);

DataGridColumnStyle endDateStyle = new DataGridTextBoxColumn();
endDateStyle.MappingName = AccountingPeriodData.EndDate_FIELD;
endDateStyle.HeaderText = "期末日期";
mydtgTableStyle.GridColumnStyles.Add(endDateStyle);

DataGridColumnStyle openStyle = new DataGridTextBoxColumn();
openStyle.MappingName = AccountingPeriodData.Open_FIELD;
openStyle.HeaderText = "期別開關";
mydtgTableStyle.GridColumnStyles.Add(openStyle);

// Add the DataGridTableStyle into the DataGrid's datasource.
dtgPeriods.TableStyles.Add(mydtgTableStyle);
}


关于作者:
胡晓东是GrapeCity公司国内开发部骨干。从事开发工作已超过六年。精通VB,C#,Sql Server,成功开发过多个系统,具有丰富的开发经验,也从事过Power Builder和Oracle等方面的工作。

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 09:37 , Processed in 0.165413 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部