小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SPGridView 研究筆記 Part 2 - 排序與過濾

 cz0007 2010-04-11

  SPGridView 研究筆記 Part 2 - 排序與過濾 收藏
SPGridView的排序與GridView是相同的. 我們先看看SPGridView默認(rèn)排序功能的效果.

P2-1


啟用排序功能先把將SPGridView的AllowSorting屬性設(shè)置成true, 然后給需要排序的列設(shè)置SortExpression屬性. 這樣就可以效果頁面內(nèi)的排序, 就是只能把當(dāng)前在SPGridView里顯示的數(shù)據(jù)排序一下.
如果需要從數(shù)據(jù)源那端排序, 就得先準(zhǔn)備好一個(gè)有排序表達(dá)式參數(shù)的取數(shù)據(jù)方法, 之前我們準(zhǔn)備的NorthwindData.cs里已經(jīng)有了一個(gè)GetProductList(string sortExpression)方法, 我們只需要再把ObjectDataSource的SortParameterName設(shè)置成與那個(gè)參數(shù)名字一置, "sortExpression"就行了.

 

過濾是SPGridView新增的功能, 效果很酷. 
   P2-2  P2-3
Filter菜單中裝載了SPGridView中全部的Category, 選中一個(gè)Category后SPGridView就會(huì)只顯示選中Category的數(shù)據(jù), 再點(diǎn)開Category菜單就變成右邊圖那樣了.
注: 最上面兩個(gè)排序是Filter菜單自己帶的, 即使你把SPGridView的AllowSorting設(shè)置成false并把Category列的SortExpression去掉, 這兩個(gè)排序還是可以用. 而且這兩個(gè)排序會(huì)先嘗試?yán)肙bjectDataSource的排序功能, 不行就在SPGridView頁內(nèi)排序. 呵呵. 怪怪的.

要啟用SPGridView的過濾功能, 先要把SPGridView的AllowFiltering設(shè)為true, 再使用FilterDataFields屬性設(shè)置要啟用過濾菜單的列, 這里我們不需給前面ProductId和ProductName兩個(gè)列啟用過濾功能, 但是在FilterDataFields里我們還是得用逗號(hào)來充當(dāng)這2個(gè)列的占位符.

<cc1:SPGridView ID="SPGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" FilterDataFields=",,CategoryName" AllowFiltering="true">這樣就能得到上面2張圖的效果了.  當(dāng)然光這樣還不能真正過濾數(shù)據(jù). 我們還需要再設(shè)置2個(gè)屬性.
<cc1:SPGridView ID="SPGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" FilterDataFields=",,CategoryName" AllowFiltering="true" FilteredDataSourcePropertyFormat="{1} = '{0}'" FilteredDataSourcePropertyName="FilterExpression">其中FilteredDataSourcePropertyName是指SPGridView調(diào)用的DataSource控件用于過濾數(shù)據(jù)的屬性名稱, 我們現(xiàn)在用的是ObjectDataSource控件, 它的FilterExpression屬性是用來處理過濾的. 而FilteredDataSourcePropertyFormat里的"{1} = '{0}'"就是用來給FilterExpression賦值用的. {1}表示需要過濾的列名CategoryName, {0} 表示被選中的過濾條件 Confections (見上面右圖). 當(dāng)選擇 Confections 時(shí), SPGridView就會(huì)給ObjectDataSource的FilterExpression屬性傳入 CategoryName = 'Confections' 從而達(dá)到過濾效果.

注: 只有當(dāng)SPGridView指定了一個(gè)DataSource控件時(shí)過濾才會(huì)有效, 使用DataView作數(shù)據(jù)源去設(shè)置它的RowFilter是不行的. 詳情見SPGridView源代碼中的DoSortPostBackEventProcessing方法.

 

完整代碼:

 <asp:Content ID="Content3" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">asp:Content><asp:Content ID="Content1" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">    SPGridView Demo: Part 2 - Sorting and Filteringasp:Content><asp:Content ID="Content2" ContentPlaceHolderID="PlaceHolderMain" runat="server">        <cc1:SPGridView ID="SPGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" FilterDataFields=",,CategoryName" AllowFiltering="true" FilteredDataSourcePropertyFormat="{1} = '{0}'" FilteredDataSourcePropertyName="FilterExpression" AllowSorting="true">        <Columns>            <cc1:SPBoundField DataField="ProductId" HeaderText="Product ID" SortExpression="ProductId">            cc1:SPBoundField>            <cc1:SPBoundField DataField="ProductName" HeaderText="Product Name" SortExpression="ProductName" />            <cc1:SPBoundField DataField="CategoryName" HeaderText="Category" SortExpression="CategoryName">            cc1:SPBoundField>            <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>                    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetProductList" SortParameterName="sortExpression" TypeName="SPGridView_Demo.NorthwindData">asp:ObjectDataSource>    asp:Content>

本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/ericfine/archive/2008/10/23/3130387.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多