Telerik RadGrid - Как отключить сортировку по столбцу?

StackOverflow https://stackoverflow.com/questions/798458

  •  18-09-2019
  •  | 
  •  

Вопрос

В их документация Telerik говорит, что есть способ отключить сортировку для определенного столбца с помощью свойства AllowSorting .Я смотрю на Участники Telerik.Web.UI.GridColumn и нет никакого свойства AllowSorting.Существует сортируемое свойство, но оно защищено и должно быть переопределено.Итак, что мне использовать, чтобы отключить сортировку по определенному столбцу?

В GridBoundColumn есть свойство AllowSorting, но в данном случае я использую GridTemplateColumn .Есть ли способ отключить сортировку в GridTemplateColumn?

Это было полезно?

Решение 2

Хорошо, я добился желаемого эффекта, я отключил сортировку, установив для свойства GridTemplateColumn SortingExpression значение blank .

Grid.Columns.FindByUniqueName("Type").SortExpression = string.Empty;

Это выглядит как взлом.Почему нет явного свойства для отключения сортировки?Ну что ж.Это работает.

Если вы знаете способ получше, дайте мне знать.

Спасибо.

Другие советы

Атрибут AllowSorting доступен из представления исходного кода / разметки в Visual Studio.Например (упрощенный):

    <tr:RadGrid>
    <MasterTableView>
        <Columns>
            <tr:GridBoundColumn DataField="field" HeaderText="Description" 
                 AllowSorting="false" />
        </Columns>
    </MasterTableView>
    </tr:RadGrid>

Я не знаю, работает ли это у вас?Я еще не создал экземпляр своих сеток из файлов, лежащих в основе кода, так что, если это то, что вы делаете, я не смогу вам легко помочь.Но вышесказанное работает для меня.


Редактировать:

Ах, из первоначального вопроса не было ясно, что вы использовали столбец GridTemplate .Поскольку вы сейчас используете свойство SortExpression, разве использование того же атрибута в разметке не работает для вас?Итак:

    <tr:RadGrid>
    <MasterTableView>
        <Columns>
            <tr:GridTemplateColumn HeaderText="Description" DataField="field" 
                SortExpression="">
                <!-- template here etc. -->
            </tr:GridTemplateColumn>
        </Columns>
    </MasterTableView>
    </tr:RadGrid>

У Telerik теперь есть новое свойство под названием HeaderButtonType (оно также существует в столбце шаблона!), которому можно присвоить значение "None" для отображения метки вместо кнопки linkbutton для текста заголовка столбца.

Вот пример, показывающий, как отключить сортировку для определенного столбца.

Обратите внимание на свойство AllowSorting на уровне таблицы (для всех столбцов).

Затем в коллекции Columns обратите внимание, как она отключена для этого конкретного столбца.

<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True">
    <HeaderContextMenu>
        <CollapseAnimation Duration="200" Type="OutQuint" />
    </HeaderContextMenu>
    <MasterTableView>
        <RowIndicatorColumn>
            <HeaderStyle Width="20px" />
        </RowIndicatorColumn>
        <ExpandCollapseColumn>
            <HeaderStyle Width="20px" />
        </ExpandCollapseColumn>
        <Columns>
            <telerik:GridBoundColumn AllowSorting="False" UniqueName="column">
            </telerik:GridBoundColumn>
        </Columns>
    </MasterTableView>
    <FilterMenu>
        <CollapseAnimation Duration="200" Type="OutQuint" />
    </FilterMenu>
</telerik:RadGrid>

Для TemplateColumns я бы попробовал отключить Сортировку на уровне сетки и просто включить ее в необходимых столбцах.Таким образом, вам не нужно будет ничего делать для TemplateColumn, поскольку по умолчанию он будет отключен.

Вы всегда можете указать свой собственный headertemplate с меткой в качестве заголовка вместо кнопки ссылки, если вы используете GridTemplateColumn .A мы немного подработали, но это работает нормально.Если вы собираетесь отключить сортировку для всех ваших GridTemplateColumns, тогда ваш "взлом" был бы лучшим.

Как указано в Документы Telerik:

В случае, если вы хотите отключить сортировку только для определенного столбца, вы можете настроить свойство IsSortable столбца на значение False:

<telerik:GridViewColumn IsSortable="False" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top