This is a migrated thread and some comments may be shown as answers.

[Solved] Sorting only applyied after paging

1 Answer 94 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Lee
Top achievements
Rank 1
Lee asked on 04 Nov 2009, 11:26 AM
I have setup a RadGird with a custom skin and pager. I have have copied the example for programming the sort order but the only problem once it is applied it does not update the grid until i go to the next page or per page.

I have the gird on a contect page and a scriptmanger and ajaxmanager on the master file

Here is my gird code

<telerik:RadGrid ID="rgdAgentOverview" runat="server" OnNeedDataSource="rgdAgentOverview_NeedDataSource"
                            AllowPaging="True" OnItemDataBound="rgdAgentOverview_ItemDataBound"
                            AutoGenerateColumns="False" GridLines="None"
                            Skin="Resolve" EnableEmbeddedSkins="False" EnableEmbeddedBaseStylesheet="False"
                            OnSelectedIndexChanged="rgdAgentOverview_SelectedIndex"
                            OnItemCommand="rgdAgentOverview_ItemCommand" AllowSorting="True"
                            AllowCustomPaging="True" >
                            <HeaderContextMenu EnableEmbeddedBaseStylesheet="False"
                                EnableEmbeddedSkins="False">
                            </HeaderContextMenu>
                            <MasterTableView CellPadding="0" CellSpacing="0" DataKeyNames="AgentID"
                                GridLines="Vertical" PageSize="30" AllowCustomSorting="true">
                                <Columns>
                                    <telerik:GridTemplateColumn DataField="ColourID" UniqueName="TemplateColumn">
                                        <ItemStyle HorizontalAlign="Center" Width="9px" />
                                        <ItemTemplate>
                                            <div ID="ColourBlock" runat="server" style="height:20px; width: 9px;">
                                            </div>
                                        </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridBoundColumn DataField="AgentID" HeaderText="AgentID"
                                        UniqueName="column1">
                                        <ItemStyle HorizontalAlign="Center" Width="88px" />
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="AgentName" HeaderText="Agent Name"
                                        UniqueName="column2">
                                        <ItemStyle HorizontalAlign="Center" Width="182px" />
                                    </telerik:GridBoundColumn>
                                    <telerik:GridTemplateColumn DataField="Position" HeaderText="Position"
                                        UniqueName="Position">
                                        <ItemTemplate>
                                            <div style="float: left; margin-top: 2px; margin-left: 10px;">
                                                <rec:RoundedHolder ID="rhbPosition" PositionID='<%# Eval("Position") %>' Opacity="75" DisplayRound="false"  Width="12px" Height="22px"
                                                Value="" runat="server" />
                                            </div>
                                            <div style="float:left;">
                                                <%# Eval("PositionText") %>
                                            </div>
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" Width="124px" />
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridBoundColumn DataField="Rate" HeaderText="Rate"
                                        UniqueName="column5">
                                        <ItemStyle HorizontalAlign="Center" Width="69px" />
                                    </telerik:GridBoundColumn>
                                    <telerik:GridTemplateColumn DataField="ColourID" UniqueName="TemplateColumn">
                                        <ItemStyle BorderStyle="None" HorizontalAlign="Center" Width="9px" />
                                    </telerik:GridTemplateColumn>
                                </Columns>
                                <EditFormSettings>
                                    <EditColumn CancelImageUrl="Cancel.gif" EditImageUrl="Edit.gif"
                                        InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif">
                                    </EditColumn>
                                </EditFormSettings>
                                <PagerTemplate>
                                    <div class="GirdFooter">
                                        <div class="GirdFooterInner">
                                            <div class="GirdFooterPageCount">
                                            Current Page : <%# (int)DataBinder.Eval(Container, "Paging.CurrentPageIndex") + 1 %>
                                                            of
                                                            <%# DataBinder.Eval(Container, "Paging.PageCount")%>
                                            </div>
                                            <div class="GirdFooterPre">
                                                <asp:Image ID="ibnPre" CssClass="GirdFooterImage" runat="server" ImageUrl="~/Images/Previous.png" />
                                                <asp:LinkButton ID="lnkPre" runat="server" OnClick="lnkPre_Click">Previous</asp:LinkButton>
                                            </div>
                                            <span style="float: left; font-size: 12px; margin-top: -2px; margin-right: 5px;">|</span>
                                            <div class="GirdFooterNext">
                                                <asp:LinkButton ID="lnkNext" runat="server" OnClick="lnkNext_Click" >Next</asp:LinkButton>
                                                <asp:Image ID="ibnNext" CssClass="GirdFooterImage"  runat="server" ImageUrl="~/Images/Next.png" />
                                            </div>
                                        </div>
                                    </div>
                                </PagerTemplate>
                            </MasterTableView>
                            <ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="true" >
                            </ClientSettings>
                            <FilterMenu EnableEmbeddedBaseStylesheet="False" EnableEmbeddedSkins="False">
                            </FilterMenu>
                        </telerik:RadGrid>

Here is my c# code

protected void rgdAgentOverview_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        var dc = new ResolveDataClassDataContext();

        try
        {

            var AgentsData = (from c in dc.Members
                             select new
                             {
                                 AgentID = c.UserID,
                                 AgentName = c.MemberProfiles.First().Firstname + " " + c.MemberProfiles.First().Surname,
                                 Position = c.MemberType.ID,
                                 PositionText = c.MemberType.TypeOfMember,
                                 Rate = c.MemberType.Commission,
                             }).ToList();

            DataTable CurrentAgents = MyExtenders.FilterResults(AgentsData, true);
            rgdAgentOverview.DataSource = CurrentAgents;

        }
        catch (Exception ex)
        {
            Admin CurrentMaster = (Admin)Page.Master;
            CurrentMaster.DisplayError(ex.Message);
        }
    }

protected void ibnSort_Click(object sender, ImageClickEventArgs e)
    {

        if (rbnAgentID.Checked)
        {
            lblSortNumber.Text = "1.";
            lblCurrentSortOrder.Text = "Agent ID";
        }
        else if (rbnAgentName.Checked)
        {
            lblSortNumber.Text = "2.";
            lblCurrentSortOrder.Text = "Agent Name";
        }
        else if (rbnAgentPos.Checked)
        {
            lblSortNumber.Text = "3.";
            lblCurrentSortOrder.Text = "Position";
        }
        else if (rbnRate.Checked)
        {
            lblSortNumber.Text = "4.";
            lblCurrentSortOrder.Text = "Rate";
        }

        rgdAgentOverview.MasterTableView.SortExpressions.Clear();
        GridSortExpression expression = new GridSortExpression();
        expression.FieldName = "Rate";

        if (ddlSortDirection.SelectedItem.Text == "Ascending")
        {
            ibnArrowUp.ImageUrl = "~/Images/CaseIdArrow.jpg";
            expression.SortOrder = GridSortOrder.Ascending;
        }
        else
        {
            ibnArrowUp.ImageUrl = "~/Images/CaseIdArrowDown.jpg";
            expression.SortOrder = GridSortOrder.Descending;
        }
        rgdAgentOverview.MasterTableView.SortExpressions.AddSortExpression(expression);
        rgdAgentOverview.Rebind();

        rgdAgentOverview.CurrentPageIndex = rgdAgentOverview.CurrentPageIndex + 1;
        rgdAgentOverview.Rebind();

    }

Thank you for any help

1 Answer, 1 is accepted

Sort by
0
Yavor
Telerik team
answered on 09 Nov 2009, 08:02 AM
Hi Lee,

I reviewed the code, and the setup looks correct. To further trace the issue, however, it will be best if you open a formal support ticket, and send us a small working project, demonstrating your setup, and showing the unwanted behavior.
We will debug it locally, and get back to you with additional information.

Kind regards,
Yavor
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
Grid
Asked by
Lee
Top achievements
Rank 1
Answers by
Yavor
Telerik team
Share this question
or