2011-08-25 46 views
1

我有一個asp.net網格asp.net C#GridView的排序

<asp:GridView ID="GrdUsers" runat="server" AutoGenerateColumns="False" 
          Width="95%" BorderWidth="1px" BorderColor="Black" PagerStyle-CssClass="pgr" GridLines="Horizontal" 
          CssClass="DataGridStyle" AllowPaging="True" OnRowCommand="GrdUsers_RowCommand" 
          OnRowDeleting="GrdUsers_RowDeleting" OnRowEditing="GrdUsers_RowEditing" AllowSorting="true" OnSorting="gridView_Sorting" 
          OnPageIndexChanging="GrdUsers_PageIndexChanging"> 
          <%--<EmptyDataRowStyle--%> 
          <EmptyDataRowStyle CssClass="pgr" /> 
          <EmptyDataTemplate> 
           <asp:Label ID="lblNorecId" CssClass="notification error" runat="server" Text="No records were found using your search criteria." 
            Font-Bold="true" ForeColor="Brown" Font-Names="Arial" Font-Size="Medium"></asp:Label> 
          </EmptyDataTemplate> 
          <Columns> 
           <%-- <asp:BoundField HeaderText="Name" DataField="User_Fullname" /> 
     <asp:BoundField HeaderText="City" DataField="User_city" /> 
     <asp:BoundField HeaderText="State" DataField="User_state" /> 
     <asp:BoundField HeaderText="Zip" DataField="User_zip" /> 
     <asp:BoundField HeaderText="Joining Date" DataField="User_joiningdate" />--%> 
           <asp:BoundField DataField="catId" HeaderText="Categery Id" Visible="False" /> 
           <asp:BoundField DataField="MasterCName" HeaderText="Master Categery" /> 
           <asp:BoundField DataField="CatName" HeaderText="Sub Categery" /> 
           <asp:BoundField DataField="GearID" HeaderText="GearID" Visible="False" /> 
           <asp:BoundField DataField="GearName" HeaderText="Gear" /> 
           <asp:TemplateField HeaderText="RentHourly" SortExpression="RentHourly"> 

            <ItemTemplate> 
             <asp:Label ID="Label7" runat="server" Text="$"></asp:Label> 
             <asp:Label ID="Label1" runat="server" Text='<%# Bind("RentHourly") %>'></asp:Label> 

            </ItemTemplate> 
           </asp:TemplateField> 
           <asp:TemplateField HeaderText="Rentdaily" SortExpression="Rentdaily"> 

            <ItemTemplate> 
            <asp:Label ID="Label8" runat="server" Text="$"></asp:Label> 
             <asp:Label ID="Label2" runat="server" Text='<%# Bind("Rentdaily") %>'></asp:Label> 

            </ItemTemplate> 
           </asp:TemplateField> 
           <asp:TemplateField HeaderText="RentWeekend" Visible="false"> 

            <ItemTemplate> 
            <asp:Label ID="Label9" runat="server" Text="$" Visible="false"></asp:Label> 
             <asp:Label ID="Label3" runat="server" Text='<%# Bind("RentWeekend") %>' Visible="false"></asp:Label> 

            </ItemTemplate> 
           </asp:TemplateField> 
           <asp:TemplateField HeaderText="RentWeekly" Visible="false"> 

            <ItemTemplate> 
            <asp:Label ID="Label10" runat="server" Text="$" Visible="false"></asp:Label> 
             <asp:Label ID="Label4" runat="server" Text='<%# Bind("RentWeekly") %>' Visible="false"></asp:Label> 

            </ItemTemplate> 
           </asp:TemplateField> 
           <asp:TemplateField> 
            <ItemTemplate> 
             <asp:ImageButton ID="btnEdit" runat="server" CommandName="edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "GearID") %>' 
              ImageUrl="~/img/icons/16/edit_icon.png" /> 
            </ItemTemplate> 
           </asp:TemplateField> 
           <asp:TemplateField> 
            <ItemTemplate> 
             <asp:ImageButton ID="btnDel" runat="server" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "GearID") %>' 
              ImageUrl="~/img/icons/16/cancel.png" /> 
             <cc1:ConfirmButtonExtender ID="btnDel_ConfirmButtonExtender" runat="server" ConfirmText="Do You Want To Delete?" 
              Enabled="True" TargetControlID="btnDel"> 
             </cc1:ConfirmButtonExtender> 
            </ItemTemplate> 
           </asp:TemplateField> 
          </Columns> 
          <PagerSettings Mode="NextPrevious" NextPageText="Next" PreviousPageText="Last" /> 
          <RowStyle HorizontalAlign="Center" /> 
          <AlternatingRowStyle BackColor="#DBDBDB" ForeColor="Black" HorizontalAlign="Center" /> 
         </asp:GridView> 

現在我想將它們按升序renthourly和rentdaily排序和降序

+0

lolz我在這裏2小時後發佈googleing :-) – Wasif

+0

您檢查了[此MSDN](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.sorting的.aspx)? – NaveenBhat

+0

如果您發佈了一些嘗試獲取排序設置以及卡住的位置,可能會對此問題採取更多措施。社區不會爲你做你的工作。 (至少不是免費的) –

回答

0

看起來這是一個老問題,但你最好的選擇是使用ObjectDataSource綁定你的網格。

一旦使用ObjectDataSource,您可以讓它自動將SortDirection,SortColumn,CurrentPage和PageSize提供給您在ObjectDataSource中指定的SelectMethod。

在此業務方法(您的SelectMethod)中,您可以乾淨地發出適當的命令來僅查詢當前頁面所需的數據並應用適當的排序表達式。