从标题单击中使用ObjectDataSource对GridView进行排序

时间:2014-06-13 20:42:48

标签: asp.net sorting gridview

我没有找到对我的情况有用的东西。最近的是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的交互缺乏一些理解。任何有关这方面的帮助也是受欢迎的。

0 个答案:

没有答案