如何定制你自己的DataGrid

如何定制你自己的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);
}

时间: 2024-12-01 23:44:14

如何定制你自己的DataGrid的相关文章

DataGrid和DropDownList的一些配合以及使用css定制DataGrid

css|datagrid 有的时候我们需要(1)在编辑的时候用下拉框选择,并且默认为数据库的内容(2)使用下拉框过滤数据(3)使用css统一定制DataGrid下面给出代码:数据结构:表dep:depid(标识主键),depname(学院名字)表stu:stuid(标识主键),stuname(学生名字),studepid(学院id=表dep.depid) 前台:<%@ Page language="c#" Codebehind="WebForm28.aspx.cs&qu

定制DataGrid的外观

datagrid 1.选择要显示的列: 在默认的情况下,我们在DataGrid中显示的列就是我们在执行Sql查询语句的时候查询出来的列,什么意思呢?如果我们用Select * from myTable,那么,将会显示所有的列,如果,我们用Select field1,field2 from mytable那么就只显示两个列.所以,在Datagrid中要选择你要显示的列,最简单的方法不是修改属性来完成,而是通过修改Sql查询语句来完成. 还有一个小问题,就是,我们在设计数据库的时候,字段的名称往往是

感受DataGrid给数据操作带来的便利(3)

datagrid|数据 第三节:快速分页 在第二节中,我体会到了DataGrid在定制外观上的快捷和方便,这一节,我又学会了快速的将数据分页. 我们在查询数据库的时候,往往不会用一个页面来显示所有的数据,而是对数据进行分页显示.记得在asp中,我们编写一个分页的页面非常麻烦,当我,学会了用DataGrid来Render数据的时候,我兴奋不已,因为,它做数据分页原来这么简单. 还是打开属性生成器(或者修改"分页"类的属性),这个时候你肯定知道要去选择左侧的"分页"分支

基于AJAX.NET技术的DataGrid控件开发

ajax|datagrid|datagrid控件|控件开发 摘要 本文中的这个DataGrid是一个客户端控件,它是使用JavaScript和Ajax.net技术构建的. 一. 简介 本文中要创建的这个DataGrid是一个客户端控件.它是使用JavaScript并且使用Ajax.net技术构建的以实现与ASP.NET后端代码的通讯:而在这个后端,我们使用ADO.NET存取数据库并使用Dataset更新数据库. 这个控件具有一个DataGrid应该具有的一切特征,并且具有在你建立连接串和表名后不

关于何种情况下使用DataGrid、DataList或Repeater的一些讨论

datagrid [概述] WEB开发自从有了基于脚本的WEB编程技术(如ASP)以来,经历了一个漫长的过程.通过使用微软的ASP.Net技术,传统的ASP中大量的.单调乏味的.重复性的编程工作成为了历史.例如,象大多数ASP程序员所知的,在ASP中显示数据库内容所需要的过程: 建立数据库连接 用SQL查询装载ADO数据集 显示所需要的任何HTML代码 遍历数据集中的记录 输出记录字段值及相关的HTML 移向下一条记录 循环 显示所需要的HTML代码 又如,为了在表格中显示记录集的内容,我们需要

使用 ASP+ DataGrid 控件来创建主视图/详细资料视图

asp+|datagrid|创建|控件|视图 简介 Microsoft Visual Studio.NET 的下一发行版包括 DataGrid Web 控件 (作为服务器控件的 Active Server Page+ (ASP+) 套件的一部分). 该控件提供用以根据数据源的内容来表示 HTML 的功能. DataGrid 控件可以用于若干个只读汇报情形.该控件设计用于对丰富而完全可定制的数据表格布局的输出进行简化.还提供多个机制,用于通过超级链接及其对选择.排序.分页和原地编辑和其它特性的支持

使用DataGrid动态绑定DropDownList

datagrid|动态 简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList中所选的值,然后保存选择后的值到数据库或XML文件,其实要做到这样的功能并不难,只要我们学会使用DataGrid的DataGrid1_ItemDataBound事件就行了,跟我来做个例子. //检索数据库的函数 public DataSet GetZcbd() { try {

DataGrid中由某列的值设定行的颜色

datagrid 今天真是的,又被界面搞的晕头转向. 为了实现.Net window DataGrid 的某一行可以根据该行某列的值的内容设定该行颜色的功能. 先贴一个连接,里面有DataGrid很多功能扩充的解决方案Windows Forms Datagrid 不过没有我这个需求的解决方案,最后终于还是在同事的帮助下搞定了. 由某一个单元格的值设定该单元格的颜色的实现我就不贴了,上面的连接里面有解决方案.下面是由某列的值设定整行颜色的一个解决方案. 关键是在定制的DataGridTextBox

感受DataGrid给数据操作带来的便利(2)

datagrid|数据 第二节:定制DataGrid的外观 上一篇文章中,我初步感受到了DataGrid给我带来的便利,但是,如果是我们自己编写程序画的表格的话,我们能够很灵活的控制表格的表现形式,所以,DataGrid能不能定制它的表现形式.答案,我知道肯定是可以的,关键是它是否比我自己用代码"画"要来得快. 根据以往的经验,我知道,从DataGrid的属性中就可以完成这些操作. 1.选择要显示的列: 在默认的情况下,我们在DataGrid中显示的列就是我们在执行Sql查询语句的时候