Question

leur documentation Telerik dit qu'il ya un moyen de désactiver le tri de colonne spécifique en utilisant la propriété AllowSorting. Je regarde Telerik membres .Web.UI.GridColumn et il n'y a pas de propriété AllowSorting. Il y a une propriété sortable mais son protégé et doit être remplacée. Alors, que dois-je utiliser pour désactiver le tri pour la colonne spécifique?

Il y a une propriété AllowSorting sur GridBoundColumn mais dans ce cas j'utilise GridTemplateColumn. Yat-il un moyen de désactiver le tri sur GridTemplateColumn?

Était-ce utile?

La solution 2

D'accord, je suis l'effet désiré, j'éteint le tri en définissant la propriété SortingExpression de GridTemplateColumn à blanc.

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

Cela ressemble à un hack. Pourquoi est-il pas une propriété explicite pour désactiver le tri? Tant pis. Cela marche.

Si vous connaissez une meilleure façon, laissez-moi savoir.

Merci.

Autres conseils

L'attribut AllowSorting est disponible à partir de la vue de source / balisage dans Visual Studio. Par exemple (simplifié):

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

Je ne sais pas si cela fonctionne pour vous? Je n'ai pas instancié mes grilles du code-behind encore de fichiers, donc si c'est ce que vous faites, je ne peux pas facilement vous aider. Mais les travaux ci-dessus pour moi.


EDIT:

Ah, il ne montre pas clairement la question initiale, que vous utilisiez la colonne GridTemplate. Comme vous utilisez maintenant la SortExpression-propriété, ne pas utiliser le même attribut dans le travail de balisage pour vous? Donc:

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

Telerik a maintenant une nouvelle propriété appelée HeaderButtonType (existe sur une colonne de modèle aussi!) Qui peut être réglé sur « None » pour rendre une étiquette au lieu d'un linkbutton pour le texte d'en-tête de colonne.

Voici un exemple montrant comment désactiver le tri pour une colonne spécifique.

Notez la propriété AllowSorting au niveau de la grille (pour toutes les colonnes).

Ensuite, dans la collection Colonnes, notez la façon dont il est désactivé pour cette colonne spécifique.

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

Pour TemplateColumns, je voudrais essayer d'éteindre tri au niveau du réseau et permettre simplement sur les colonnes nécessaires. De cette façon, vous ne devez rien faire pour le TemplateColumn car il sera désactivé par défaut.

Vous pouvez toujours fournir votre propre HeaderTemplate avec une étiquette comme l'en-tête au lieu d'un bouton de lien si vous utilisez un GridTemplateColumn. Un travail supplémentaire que nous mordit mais cela fonctionne très bien. Si vous allez désactiver le tri pour tous vos GridTemplateColumns alors votre « hack » serait le mieux.

Comme indiqué dans le Telerik Docs :

Si vous souhaitez désactiver le tri pour une colonne particulière uniquement, vous pouvez configurer la propriété de la colonne IsSortable False:

<telerik:GridViewColumn IsSortable="False" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top