Pregunta

su documentación Telerik dice que hay una manera de desactivar la ordenación en la columna específica mediante el uso de la propiedad AllowSorting. Estoy mirando Telerik miembros .Web.UI.GridColumn y no hay ninguna propiedad AllowSorting. Hay una propiedad Sortable pero su protegida y tiene que ser anulado. Entonces, ¿qué puedo utilizar para apagar la clasificación para la columna específica?

Hay una propiedad AllowSorting en GridBoundColumn pero en este caso estoy usando GridTemplateColumn. ¿Hay una manera de desactivar la clasificación en GridTemplateColumn?

¿Fue útil?

Solución 2

Está bien, me dieron el efecto deseado, apagué la clasificación estableciendo la propiedad SortingExpression de GridTemplateColumn en blanco.

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

Esto parece un truco. ¿Por qué no es una propiedad explícita para desactivar la clasificación? Oh bien. Esto funciona.

Si conoce una mejor manera, que me haga saber.

Gracias.

Otros consejos

El atributo AllowSorting está disponible en la vista de origen / marcado en Visual Studio. Por ejemplo (simplificada):

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

No sé si esto funciona para usted? No he instancia mis rejillas del código subyacente ARCHIVOS todavía, así que si eso es lo que está haciendo, no puedo ayudarle fácilmente. Sin embargo, lo anterior funciona para mí.


EDIT:

Ah no estaba claro a partir de la pregunta original, que estaba utilizando la columna de la GridTemplate. Ya que ahora está utilizando el SortExpression-propiedad, no usando el mismo atributo en la obra de marcado para usted? Por lo tanto:

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

Telerik tiene ahora una nueva propiedad llamada HeaderButtonType (existe en una columna de plantilla también!) Que puede ser ajustado en "Ninguno" para hacer una etiqueta en lugar de una LinkButton los atributos del encabezado de la columna.

Este es un ejemplo que muestra cómo desactivar la ordenación en una columna específica.

Tenga en cuenta la propiedad AllowSorting a nivel de cuadrícula (para todas las columnas).

A continuación, en la colección de columnas, tenga en cuenta la forma en que se apaga para esa columna específica.

<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>

Para TemplateColumns, me gustaría tratar de apagar clasificación a nivel de red y sólo tiene que activar en las columnas necesarias. De esta manera, usted no tendrá que hacer nada para el TemplateColumn ya que será desactivado por defecto.

Siempre se puede suministrar su propio HeaderTemplate con una etiqueta como el encabezado en lugar de un botón de enlace si está utilizando un GridTemplateColumn. Una nos poco de trabajo extra, pero esto funciona bien. Si se va a desactivar la ordenación en todas sus GridTemplateColumns entonces su "piratear" sería lo mejor.

Como se indica en la Telerik Docs :

En caso de que quiera desactivar la ordenación por sólo una columna en particular, se puede configurar la propiedad IsSortable de la columna en Falso:

<telerik:GridViewColumn IsSortable="False" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top