GridView和SqlDataSoruce SORTING问题

时间:2017-11-05 21:27:07

标签: asp.net sorting gridview

我有非常基本的产品数据表,我将网格视图数据源设置为sqlDataSoruce,分页和排序选项为true。

但我也有一个DropDownList,如果用户选择某个产品组(蔬菜,水果,冷冻等),网格视图只显示该产品组项目。

{{1}}

网格显示从下拉列表中选择的groupID中的所有产品,但问题是当我想按名称或价格对其进行排序时,网格视图会再次显示所有产品。

如果您知道如何解决此问题,我将非常感激。 谢谢。

2 个答案:

答案 0 :(得分:1)

您需要保留下拉列表的 String timeOut = "1900-01-01 11:32:00"; DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = formatter.parse(timeOut); System.out.println(formatter.format(date)); ,最简单的方法是以声明方式绑定所有数据。像这样:

1900-01-01 11:32:00
BUILD SUCCESSFUL (total time: 0 seconds)

不需要代码。

旁注:永远不要像这样构建SQL查询字符串

SelectedValue

此类代码易受<asp:DropDownList ID="ddCategory" runat="server" DataTextField="categoryname" DataValueField="categoryid" AppendDataBoundItems="true" DataSourceID="sqlCategory" AutoPostBack="true"> <asp:ListItem Value="0" Text="- Select -"></asp:ListItem> </asp:DropDownList> <asp:SqlDataSource ID="sqlCategory" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindCnn %>" SelectCommand="select categoryid,categoryname from dbo.categories"> </asp:SqlDataSource> <asp:GridView ID="gvProducts" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="5" DataKeyNames="ProductID" DataSourceID="sqlNWind"> <Columns> <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="sqlNWind" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindCnn %>" SelectCommand="SELECT Products.ProductID, Products.ProductName FROM Products where (@categoryid=0 or CategoryID=@categoryId)"> <SelectParameters> <asp:ControlParameter Name="categoryid" ControlID="ddCategory" Type="Int32" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> 攻击。始终使用参数。

答案 1 :(得分:0)

您是否将数据反弹到gridview,例如以下

GridView1.DataBind();