[英]asp.net using c# gridview sorting
我有一个asp.net网格
<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>
现在我想按升序和降序按小时和每日对它们进行排序
看来这是一个古老的问题,但是最好的选择是使用ObjectDataSource绑定网格。
一旦使用了ObjectDataSource,就可以让它自动为您在ObjectDataSource上指定的SelectMethod提供SortDirection,SortColumn,CurrentPage和PageSize。
在此业务方法(您的SelectMethod)中,您可以干净地发出适当的命令以仅查询当前页面所需的数据并应用适当的排序表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.