【问题标题】:When I sort my filtered search results my gridview displays all instead sorted当我对过滤后的搜索结果进行排序时,我的 gridview 显示全部而不是排序
【发布时间】:2013-03-16 01:25:45
【问题描述】:

我有一个 gridview,当我搜索特定字符串时,我对过滤后的结果进行了排序,但 gridview 显示所有排序后的结果,我丢失了过滤后的结果。有什么想法吗?

平均售价:

        <asp:GridView ID="GridViewWinners" runat="server" AutoGenerateColumns="False" 
            CellPadding="4" DataKeyNames="PlayerID" DataSourceID="SqlDataSource4" ForeColor="#333333" 
            GridLines="Horizontal" Width="858px" 
            onselectedindexchanged="GridViewWinners_SelectedIndexChanged" 
            AllowSorting="True" Visible="False">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="PlayerID" HeaderText="PlayerID" ReadOnly="True" 
                    SortExpression="PlayerID" Visible="False" />
                <asp:BoundField DataField="LastName" HeaderText="Last Name" 
                    SortExpression="LastName" />
                <asp:BoundField DataField="FirstName" HeaderText="First Name" 
                    SortExpression="FirstName" />
                <asp:BoundField DataField="UserName" HeaderText="Login" 
                    SortExpression="UserName" />
                <asp:BoundField DataField="ClubNumber" HeaderText="Club Number" 
                    SortExpression="ClubNumber" />
                <asp:BoundField DataField="DOB" HeaderText="DOB" SortExpression="DOB" />
            </Columns>
            <EditRowStyle BackColor="#999999" />
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#E9E7E2" />
            <SortedAscendingHeaderStyle BackColor="#506C8C" />
            <SortedDescendingCellStyle BackColor="#FFFDF8" />
            <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
        </asp:GridView>

<asp:SqlDataSource ID="SqlDataSource4" runat="server" 
                ConnectionString="<%$ ConnectionStrings:GameCenterPrizesConnectionString1 %>" 
                DeleteCommand="DELETE FROM [Players] WHERE [PlayerID] = @PlayerID" 
                InsertCommand="INSERT INTO [Players] ([UserName], [ClubNumber], [FirstName], [LastName], [DOB]) VALUES (@UserName, @ClubNumber, @FirstName, @LastName, @DOB)" 
                ProviderName="<%$ ConnectionStrings:GameCenterPrizesConnectionString1.ProviderName %>" 
                SelectCommand="SELECT [PlayerID], [UserName], [ClubNumber], [FirstName], [LastName], [DOB] FROM [Players]" 
                UpdateCommand="UPDATE [Players] SET [UserName] = @UserName, [ClubNumber] = @ClubNumber, [FirstName] = @FirstName, [LastName] = @LastName, [DOB] = @DOB WHERE [PlayerID] = @PlayerID">
            <DeleteParameters>
                <asp:Parameter Name="PlayerID" Type="Int64" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="UserName" Type="String" />
                <asp:Parameter Name="ClubNumber" Type="String" />
                <asp:Parameter Name="FirstName" Type="String" />
                <asp:Parameter Name="LastName" Type="String" />
                <asp:Parameter Name="DOB" Type="DateTime" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="UserName" Type="String" />
                <asp:Parameter Name="ClubNumber" Type="String" />
                <asp:Parameter Name="FirstName" Type="String" />
                <asp:Parameter Name="LastName" Type="String" />
                <asp:Parameter Name="DOB" Type="DateTime" />
                <asp:Parameter Name="PlayerID" Type="Int64" />
            </UpdateParameters>
        </asp:SqlDataSource>

排序前: http://tinypic.com/view.php?pic=j82tcx&s=6

排序后: http://tinypic.com/view.php?pic=rvcz07&s=6

【问题讨论】:

  • 您能否提供更多详细信息?发布代码示例,给出细节。否则几乎不可能提供帮助。

标签: c# asp.net sql


【解决方案1】:

gridview 控件实际上并不进行排序,它使用数据源控件对数据进行排序。 gridview 控件将排序表达式传递给数据源控件,数据源控件将根据该表达式进行排序,如果它能够这样做的话。

http://msdn.microsoft.com/en-us/library/hwf94875.aspx

希望这会有所帮助。 --文档

【讨论】:

  • 它有帮助,但它仍然没有告诉我为什么在我排序并显示所有内容后,gridview 会丢失我的搜索结果。有什么想法吗?
猜你喜欢
  • 2020-02-10
  • 2012-01-16
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
相关资源
最近更新 更多