Telerik RadGrid Сортировка ASP.NET C#

Мой Telerik RadGrid не будет сортировать, какой бы код я в него ни ввел. Я пробовал много вещей, и каждый раз, когда я нажимаю на заголовки, стрелка и цвет меняются, но данные остаются в том же порядке. Это мой последний фрагмент кода. (Я получил это с веб-сайта Telerik) Пожалуйста, скажите мне, что я делаю неправильно здесь.

<telerik:RadGrid runat="server" ID="radProductsGrid" Skin="Default" AllowSorting="true"
AllowPaging="true" OnSortCommand="radProductsGrid_SortCommand" 
OnNeedDataSource="radProductsGrid_NeedDataSource" AutoGenerateColumns= "false"  
GridLines="None" ShowGroupPanel="false" PageSize="100">
<telerik:GridBoundColumn ReadOnly="true" AllowFiltering="true" SortExpression="ItemNumber" DataField="ItemNumber" HeaderText="Item Number" UniqueName="ItemNumber">
</telerik:GridBoundColumn>      
<telerik:GridBoundColumn ReadOnly="true" AllowFiltering="true" SortExpression="ProductName" DataField="ProductName" HeaderText="Product Name" UniqueName="ProductName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" AllowFiltering="true" SortExpression="CategoryName" DataField="CategoryName" HeaderText="Category Name" UniqueName="CategoryName">
</telerik:GridBoundColumn> 

protected void radProductsGrid_SortCommand(object sender, GridSortCommandEventArgs e)
    {
        GridTableView tableView = e.Item.OwnerTableView;
        if (e.SortExpression == "ItemNumber")
        {
            e.Canceled = true;
            GridSortExpression expression = new GridSortExpression();
            expression.FieldName = "ItemNumber";
            if (tableView.SortExpressions.Count == 0 || tableView.SortExpressions[0].FieldName != "ItemNumber")
            {
                expression.SortOrder = GridSortOrder.Descending;
            }
            else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Descending)
            {
                expression.SortOrder = GridSortOrder.Ascending;
            }
            else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Ascending)
            {
                expression.SortOrder = GridSortOrder.None;
            }
            tableView.SortExpressions.AddSortExpression(expression);
            tableView.Rebind();
        }
    }

person Jamie    schedule 30.10.2013    source источник


Ответы (3)


Вместо этого:

tableView.SortExpressions.AddSortExpression(expression);
tableView.Rebind();

Сделай это:

radProductsGrid.MasterTableView.SortExpressions.AddSortExpression(expression);
radProductsGrid.Rebind();
person DanM7    schedule 30.05.2014

проверьте событие javascript onclick(), оно отбрасывает событие сортировки

            var hasChanges, inputs, dropdowns, editedRow;

            function RowClick(sender, eventArgs) {
                if (editedRow && hasChanges) {
                    hasChanges = false;
                    if (confirm("Update changes?")) {

                        $find("<%= RadGrid1.ClientID %>").get_masterTableView().updateItem(editedRow);
                    }
                }
            }
person bensuwait    schedule 23.01.2016

person    schedule
comment
Можете ли вы добавить пояснение к вашему ответу? - person Joshua Shearer; 23.01.2016