ASP.NET 扩展/协定数据网格

分享于 

5分钟阅读

Web开发

  繁體

介绍

ASP.NET DataGrid 功能强大且功能强大。 然而,我们需要它做的一些事情需要大量定制代码。 鲍尔HierarGrid是一个非常复杂的datagrid示例。 不幸的是,我的项目需要扩展和协定 DataGrid 列而不是 DataGrid 行,所以我实现了本文中描述的ExDataGrid 服务器控件。 大部分代码逻辑是从HierarGrid中借来的。

你可以在这里查看 HierarGrid

你还可以在这里查看 ExDataGrid 的现场演示。

图 1.收缩的列

图 2.展开的列

使用服务器控件

ExDataGrid 服务器控件需要使用三个类:

  • ExDataGrid - 主服务器控件。 这直接从 DataGrid 派生,并且具有正则datagrid的所有功能。
  • ExColumnExpand - 带有加号和减号的列。 这里控件是从 BoundColumn 派生的。
  • ExColumn - 将收缩/展开的列。 这里控件派生自 BoundColumn,并添加了 DrawBordersForeColorBackColor 等属性。

若要关联 ExColumnExpandExColumn 类以便它们一起工作,必须为每个展开组分配属性 ExGroupName

例如:

<cc1:ExDataGridid="DataGridReport1"runat="server"BorderColor="#000066"CellPadding="1"BorderWidth="2px"AutoGenerateColumns="False"ShowFooter="True"><EditItemStyleForeColor="Black"BackColor="Yellow"></EditItemStyle><AlternatingItemStyleFont-Size="X-Small"BackColor="Gainsboro"></AlternatingItemStyle><ItemStyleFont-Size="X-Small"Font-Names="Verdana"></ItemStyle><HeaderStyleFont-Bold="True"BackColor="#D7D7D7"></HeaderStyle><FooterStyleFont-Size="Small"BackColor="RoyalBlue"></FooterStyle><Columns><asp:BoundColumnDataField="Title_ID"HeaderText="Title_ID"SortExpression="Title_ID"></asp:BoundColumn><cc1:ExColumnExpandExGroupName="TitleExpand"DataField="Title"HeaderText="Title"SortExpression="Title"/><cc1:ExColumnDataField="Price"ExGroupName="TitleExpand"HeaderText="Price"SortExpression="Price"DrawBorders="true"><ItemStyleBackColor="#396794"ForeColor="white"></ItemStyle><HeaderStyleBackColor="#396794"ForeColor="white"></HeaderStyle><FooterStyleBackColor="#396794"ForeColor="white"></FooterStyle></cc1:ExColumn><cc1:ExColumnDataField="Notes"ExGroupName="TitleExpand"HeaderText="Notes"SortExpression="Notes"DrawBorders="true"><ItemStyleBackColor="#396794"ForeColor="white"></ItemStyle><HeaderStyleBackColor="#396794"ForeColor="white"></HeaderStyle><FooterStyleBackColor="#396794"ForeColor="white"></FooterStyle></cc1:ExColumn><asp:BoundColumnDataField="Type"HeaderText="Type"SortExpression="Type"/><cc1:ExColumnExpandDataField="Publisher"ExGroupName="PublishExpand"HeaderText="Publisher"SortExpression="Publisher"/><cc1:ExColumnDataField="Publication"ExGroupName="PublishExpand"HeaderText="Publication Date"SortExpression="Publication"DrawBorders="false"><ItemStyleBackColor="#396794"ForeColor="white"></ItemStyle></cc1:ExColumn><asp:BoundColumnDataField="Authors"HeaderText="Authors"SortExpression="Authors"></asp:BoundColumn></Columns></cc1:ExDataGrid>

结束语

这里服务器控件已经快速编写并且有很大的改进空间。 它实现 IPostback 接口,这样控件的状态在排序或者任何它的他重新绑定过程中保存。 此外,控件和契约函数的扩展通过JavaScript运行,因此 postback 是不必要的。 如有必要,请提出建议或者改进。 让我知道它是怎么走的 !


数据  EXP  asp  asp-net  Datagrid  Expand  
相关文章