2012-06-22 39 views
0

我已經試過這一個如何在網格視圖的列排序

<asp:GridView ID="GvDetails" **runat="server" Width="100%" AutoGenerateColumns="False" 
    AllowPaging="True" CssClass="clGrid" PageSize="25" OnRowEditing="GvDetails_RowEditing" 
    OnRowCommand="GvDetails_RowCommand" OnPageIndexChanging="GvDetails_PageIndexChanging" 
    EnableModelValidation="True" AllowSorting="true" EnableSortingAndPagingCallbacks="true" 
    onselectedindexchanged="GvDetails_SelectedIndexChanged"> 
    <Columns> 

    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" > 
     <HeaderStyle Width="35%" CssClass="gridHeader"></HeaderStyle> 
           <ItemStyle CssClass="gridItem" HorizontalAlign="Left"></ItemStyle> 
     </asp:BoundField> 
    </Columns> 
</asp:GridView> 

但不工作:(

+1

網格視圖dosent提供由defauly這取決於你所使用的數據源分類,看看這些文章對於瞭解它的http:/ /msdn.microsoft.com/en-us/library/hwf94875%28v=vs.85%29.aspx http://forums.asp.net/p/956540/1177923.aspx –

回答

0

您需要將DataSource programactically排序,如果你想在GridView排序。

有Telerik和DevExpress的控件爲你做這件事,但你必須爲它們付錢。

幸運的是,排序DataSource很簡單。

<asp:Button ID="btSort" runat="server">Sort Alphabetically</asp:Button> 

然後在點擊甚至稱這種功能

public void SortAlphabetically() 
    { 
     List<string> names = // However you get your names 

     // Sort from A-Z using Linq 
     var sort = from s in names 
        orderby s 
        select s; 

     // Set the DataSource and Bind the data 
     GvDetails.DataSource = sort; 
     GvDetails.DataBind(); 
    }