SPGridView 研究筆記 Part 3 - 分組 收藏
SPGridView提供數(shù)據(jù)分組顯示功能, 但是只能將頁面內(nèi)數(shù)據(jù)分組. 只要設(shè)置 AllowGrouping(true), GroupField(某列名) 就能實現(xiàn)下面的效果.
所以我們先加入一個MenuTemplate.
<cc1:MenuTemplate ID="mtCategory" runat="server">
<cc1:MenuItemTemplate ID="mitFilter" runat="server" Text="View Products" />
cc1:MenuTemplate>由于這個GroupMenu不在Columns里, 而SPMenuField又不能像MenuTemplate一樣扔在SPGridView之外. 所以只好在代碼里加了.protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.SPGridView1.GroupMenu = new SPMenuField();
this.SPGridView1.GroupMenu.MenuTemplateId = this.mtCategory.ID;
this.SPGridView1.GroupMenu.HeaderText = "Category";
this.SPGridView1.GroupMenu.TextFields = "CategoryName";
}現(xiàn)在來看看效果吧. 完整代碼:
<script runat="server"> 1: 2: protected override void OnInit(EventArgs e) 3: { 4: base.OnInit(e); 5: this.SPGridView1.GroupMenu = new SPMenuField(); 6: this.SPGridView1.GroupMenu.MenuTemplateId = this.mtCategory.ID; 7: this.SPGridView1.GroupMenu.HeaderText = "Category"; 8: this.SPGridView1.GroupMenu.TextFields = "CategoryName"; 9: }script>
<asp:Content ID="Content3" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">
SPGridView Demo: Part 3 - Grouping
asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<cc1:SPGridView ID="SPGridView1" runat="server" EnableViewState="false" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" AllowSorting="true" AllowGrouping="true" GroupField="CategoryName" AllowGroupCollapse="true">
<Columns>
<cc1:SPBoundField DataField="ProductId" HeaderText="Product ID" SortExpression="ProductId">
cc1:SPBoundField>
<cc1:SPBoundField DataField="ProductName" HeaderText="Product Name" SortExpression="ProductName" />
<asp:BoundField DataField="UnitPrice" DataFormatString="${0:F2}" HeaderText="Unit Price" SortExpression="UnitPrice" />
<asp:TemplateField HeaderText="Orderable" SortExpression="Discontinued">
<itemtemplate>
<asp:Label id="lblDiscontinued" runat="server" text=''>asp:Label>
itemtemplate>
asp:TemplateField>
Columns>
cc1:SPGridView>
<cc1:MenuTemplate ID="mtCategory" runat="server">
<cc1:MenuItemTemplate ID="mitFilter" runat="server" Text="View Products" />
cc1:MenuTemplate>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetProductList" TypeName="SPGridView_Demo.NorthwindData" SortParameterName="sortExpression">asp:ObjectDataSource>
asp:Content> 特別注意: 1.啟用分組后, 如果不把EnableViewState設(shè)置為false, 排序功能就會出錯. 寒~~ 2.啟用分組后, 過濾功能會失靈. 暈倒~~ 3.如果使用了ObjectDataSource來分頁數(shù)據(jù), 那么分組只能分當(dāng)前頁的, 過濾功能也失靈. 汗~~
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/ericfine/archive/2008/10/23/3131800.aspx