在DataBound之后对GridView中的特定列进行排序

时间:2010-02-09 02:40:20

标签: c# asp.net sql-server

我已经访问了存储过程,我无法编辑。 这个存储过程返回一个带有2列的表,我所做的是在此存储过程中使用SQLDataSource设置GridView的DataSource。但是我希望这个GridView可以在每次GridView加载时对特定列进行排序。

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
                        DataSourceID="SqlDataSource2" ForeColor="Black" 
                        Width="58%" Height="125px" AllowPaging="True" AllowSorting="True"
                        PageSize="5" >
                        <Columns>
                            <asp:BoundField DataField="DateOccur" HeaderText="Login Date" 
                                SortExpression="DateOccur" />
                            <asp:BoundField DataField="TotalMinutesPlayed" HeaderText="Total Minutes" 
                                SortExpression="TotalMinutesPlayed" />
                        </Columns>
                        <AlternatingRowStyle BackColor="#EFEFEF" />
                    </asp:GridView>

谢谢!〜

3 个答案:

答案 0 :(得分:2)

如果无法通过编辑SQL本身对其进行排序,则可以通过将DataView对象绑定到数据源,为DataView指定Sort表达式,然后将DataGrid绑定到DataView对象来以编程方式对其进行排序。 p>

有关示例代码的演练see here

答案 1 :(得分:2)

您还可以使用Gridview.Sort方法 See Here.

答案 2 :(得分:0)

我使用的是MSDN上的示例代码的略微修改版本。

Gridview Sort Example on MSDN

通过将我发现的示例与SortExpression属性结合起来,我可以对任何列进行排序,甚至使用专有的排序来调用我的规范。