ASP.NET4 GridView的四種排序樣式詳解_實用技巧

來源:互聯網
上載者:User

與ASP.NET 的其他Web控制項一能夠,Gridview控制項擁有很多不同的CSS樣式屬性設定,包括象CssClass,Font字型,ForeColor,BackColor,BackColor, Width, Height等等。Gridview還包括了一些應用在表格的行上的樣式屬性,比如RowStyle, AlternatingRowStyle, HeaderStyle,和PagerStyle,它們都提供了象CssClass和Font這些基本的屬性設定。 

在 ASP.NET 4.0中的Gridview控制項中,新增加了四個樣式屬性:SortedAscendingHeaderStlye,SortedAscendingCellStlye,SortedDescendingHeaderStyle 和SortedDescendingCellStyle。這四個屬性有點像以前的RowStyle和HeaderStyle樣式屬性,但它們是應用在 gridview的列的,而不是行。當GridView需要排序的時候,這些屬性才起作用,如果當gridview需要按升序排序的話,那麼 SortedAscendingHeaderStyle和SortedAscendingCellStyle屬性定義了資料排序時的樣式風格。如果 gridview是降序排序時,SortedDescendingHeaderStyle和SortedDescendingCellStyle屬性則定義了排序時的樣式風格。 

這四個新的特性使在排序的時候,更容易定製資料排序時列的外觀樣式。這些屬性與CSS樣式搭配使用的話,可以在表格排序時增加向上的箭頭和向下的箭頭,以表明當前是按升序還是降序排序。本文將介紹如何使用這四個新的屬性的樣式。 

GridView中的排序回顧 

在Gridview中預設是文本的方式顯示每一列的列頭的。要排序的話,必須首先設定Gridview的AllowSorting屬性,這將使 Gridview將要排序的列以連結的方式展現,當使用者點擊時,就會觸發排序的事件。如果GridView綁定到資料來源控制項了,則你不必編寫任何代碼去處理排序,一切都是自動完成的。 

從使用者的角度來看,點擊標題列中的排序列一下,則會讓表格中的該列資料以升序排序,同樣再點擊一下,則以降序排序。遺憾的是,在以往asp.net 中的GridView不提供任何的方法以顯示給使用者看,當前的排序列是按升序排序還是以降序排序。在asp.net 4.0之前,要實現的唯一方法只有編寫一些代碼了,使用Gridview增加SortAscendingStyle 和SortDescendingStyle兩個屬性,並且使用了CSS去類比畫出兩個上下的箭頭。 

而在ASP.NET 4.0中,已經內建了這樣的功能了,下面講解下。 

新的排序相關樣式屬性 

ASP.NET 4.0中新增的4個排序相關的屬性如下: 

• SortedAscendingHeaderStyle 當Gridview以升序排列時,定義了排序列的表頭樣式。 

• SortedAscendingCellStyle 當Gridview以升序排列時,定義了要排序的資料列的樣式。 

• SortedDescendingHeaderStyle 當Gridview以降序排列時,定義了排序列的表頭樣式。 

• SortedDescendingCellStyle 當Gridview以降序排列時,定義了要排序的資料列的樣式。 

有了這些屬性,在排序時,只需要簡單對它們進行設定就可以了,比如下面的例子中,簡單設定了SortedAscendingCellStyle屬性和SortedDescendingCellStyle的子樣式背景顏色為黃色,馬上就可以看到效果了:

<asp:GridView ID="..." runat="server" AutoGenerateColumns="False" AllowSorting="true"    ...    SortedAscendingCellStyle-BackColor="Yellow"    SortedDescendingCellStyle-BackColor="Yellow">   ... </asp:GridView>

 
 
當然,為了觀察方便,可以設定 SortedAscendingCellStyle-BackColor和SortedDescendingCellStyle-BackColor為不同的顏色則可看到更清晰的效果。 
為排序列加上箭頭 

使用的CSS配合SortedAscendingHeaderStyle和SortedDescendingHeaderStyle兩個屬性,則為排序列增加向上和向下箭頭的表示排序狀態是很容易的。首先,你需要找一些向上箭頭或者向下箭頭的圖片,在本文的代碼下載中是有這樣的圖片了。接者需要建立兩個 CSS類,比如下文中的sortasc—header和sortdesc-header,在這兩個CSS類中需要指定上下箭頭圖片所在的位置,同時我們要在排序列的右邊定義一個適當的間隔位置,以便讓向上和向下箭頭不被排序列所在的表頭的文本所覆蓋。如下所示: 

.sortasc-header A {   background:url(URL to up arrow image) right center no-repeat; } .sortdesc-header A {   background:url(URL to down arrow image) right center no-repeat; } TH A {   padding-right: 20px; }

 之後我們就可以利用這些樣式了: 

<asp:GridView ID="..." runat="server" AutoGenerateColumns="False" AllowSorting="true"    ...    SortedAscendingHeaderStyle-CssClass="sortasc-header"    SortedDescendingHeaderStyle-CssClass="sortdesc-header"    SortedAscendingCellStyle-BackColor="Yellow"    SortedDescendingCellStyle-BackColor="Yellow">   ... </asp:GridView>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.