我没有找到对我的情况有用的东西。最近的是this。
我已设置AllowSorting="true"
并尝试处理已触发的事件,但我无法掌握如何使用它。我的SELECT
是通过控制器的方法完成的,该方法返回一个填充了查询返回的对象的IEnumerable
。此方法接受ORDER BY
子句作为其参数之一,并从中构造SQL查询和其他参数。
此ORDER BY
参数来自用户选择的下拉列表值。我的目标是通过单击GridView的标题来设置排序。我希望能够捕获用户单击的标题的哪一列,以便我可以在我的控制器方法中传递它,然后以编程方式将我的GridView重新绑定到查询结果。还有一种方法可以知道查询是否应该根据最后的使用情况进入ASC或DESC。
这是我的GridView:
<asp:GridView ID="GridView1" HorizontalAlign="Center" runat="server"
AllowPaging="True" AutoGenerateColumns="False" AllowSorting="true">
这是我的ObjectDataSource:
<asp:ObjectDataSource ID="objDataSource" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="Get"
TypeName="Type.Name.Here">
<SelectParameters>
//Parameters and their respective controls...
//Order by's control bind to a dropdownlist...
</SelectParameters>
</asp:ObjectDataSource>
我希望有一种方法可以知道哪个列被点击了,以及它是用于ASC
还是DESC
选择。我希望能够将用户点击GridView标题时触发的事件用于该信息,以便我可以使用自定义Get(where, params, orderby, top)
方法传递这些信息。哪个结果可以与我的GridView绑定。
我想我可能对GridView及其ObjectDataSource的交互缺乏一些理解。任何有关这方面的帮助也是受欢迎的。