首页 > 开发 > 综合 > 正文

如何定制你自己的DataGrid

2020-02-03 13:37:09
字体:
来源:转载
供稿:网友
如何定制你自己的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);
}





发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表