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

[Solved] Grid DetailTable Sorting

1 Answer 153 Views
Grid
This is a migrated thread and some comments may be shown as answers.
JayCats
Top achievements
Rank 1
JayCats asked on 04 Mar 2010, 04:35 PM
Everytime I click a header in the detailtable to sort, the entire detail table collapses. Am I doing something wrong? Most of the code I have are just copy paste from the demos.

<telerik:RadGrid ID="grdDataView" runat="server" EnableEmbeddedBaseStylesheet="false"
                                    onprerender="grdDataView_PreRender" ShowStatusBar="false" OnNeedDataSource="grdDataView_OnNeedDataSource"
                                    AutoGenerateColumns="False" PageSize="4" AllowSorting="True" AllowMultiRowSelection="False" PagerStyle-ShowPagerText="false"
                                    AllowPaging="True" GridLines="None" EnableEmbeddedSkins="false" Skin="emmawebskin" Width="3500px" PagerStyle-Font-Underline="false"
                                    ondetailtabledatabind="grdDataView_DetailTableDataBind" OnSortCommand="grdDataView_OnSortCommand">
                                    <PagerStyle Mode="NumericPages"></PagerStyle>
                                    <MasterTableView DataKeyNames="MODELID" AllowMultiColumnSorting="false">
                                        <DetailTables>
                                            <telerik:GridTableView DataKeyNames="EquipmentID" Width="100%"
                                                runat="server">
                                            <Columns>
                                                <telerik:GridBoundColumn SortExpression="XXXXXXXX" HeaderText="XXXXXXXX" HeaderButtonType="TextButton"
                                                    DataField="XXXXXXXX" UniqueName="XXXXXXXX">
                                                </telerik:GridBoundColumn>
                                                <telerik:GridBoundColumn SortExpression="XXXXXXXX" HeaderText="XXXXXXXX" HeaderButtonType="TextButton"
                                                    DataField="XXXXXXXX" UniqueName="XXXXXXXX">
                                            </Columns>
                                            <SortExpressions>
                                                <telerik:GridSortExpression FieldName="XXXXXXXX"></telerik:GridSortExpression>
                                            </SortExpressions>
                                            </telerik:GridTableView>
                                        </DetailTables>
                                        <Columns>
                                            <telerik:GridBoundColumn SortExpression="XXXX" HeaderText="XXXX" HeaderButtonType="TextButton"
                                                DataField="XXXX" UniqueName="XXXX" >
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn SortExpression="XXXXXX" HeaderText="XXXXXX" HeaderButtonType="TextButton"
                                                DataField="XXXXXX" UniqueName="XXXXXX" Visible="false">
                                            </telerik:GridBoundColumn>
                                        </Columns>
                                        <SortExpressions>
                                            <telerik:GridSortExpression FieldName="XXXX"></telerik:GridSortExpression>
                                        </SortExpressions>
                                    </MasterTableView>
                                </telerik:RadGrid>   


protected void grdDataView_OnSortCommand(object source, GridSortCommandEventArgs e)
        {
                GridSortExpression sortExpr = new GridSortExpression();
                switch (e.OldSortOrder)
                {
                    case GridSortOrder.None:
                        sortExpr.FieldName = e.SortExpression;
                        sortExpr.SortOrder = GridSortOrder.Ascending;
                        e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
                        break;
                    case GridSortOrder.Ascending:
                        sortExpr.FieldName = e.SortExpression;
                        sortExpr.SortOrder = GridSortOrder.Descending;
                        e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
                        break;
                    case GridSortOrder.Descending:
                        sortExpr.FieldName = e.SortExpression;
                        sortExpr.SortOrder = GridSortOrder.Ascending;
                        e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
                        break;
                }
                e.Canceled = true;
                grdDataView.Rebind();
        }

1 Answer, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 05 Mar 2010, 04:16 PM
Hello,

When using NeedDataSource event and DetailTableDataBind event, RadGrid can automatically accommodate the appropriate database operations without the need for you explicitly handle any sorting, paging, grouping, and so on.
I suggest you, examine this online example, which handles the desired functionality and let me know if it helps to avoid this erroneous behavior.

All the best,
Pavlina
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Tags
Grid
Asked by
JayCats
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Share this question
or