Domanda

loro documentazione Telerik dice che c'è un modo per disattivare l'ordinamento per colonna specifica utilizzando struttura AllowSorting. Sto guardando Telerik membri .Web.UI.GridColumn e non v'è alcuna proprietà AllowSorting. C'è una proprietà ordinabili, ma la sua protetta e deve essere sovrascritto. Allora, cosa posso usare per disattivare l'ordinamento per la colonna specifica?

C'è una proprietà AllowSorting su GridBoundColumn ma in questo caso sto usando GridTemplateColumn. C'è un modo per disattivare l'ordinamento su GridTemplateColumn?

È stato utile?

Soluzione 2

Va bene, ho ottenuto l'effetto desiderato, ho spento l'ordinamento impostando la proprietà SortingExpression di GridTemplateColumn a vuoto.

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

Questo appare come un hack. Perché non c'è una proprietà esplicito per spegnere l'ordinamento? Oh bene. Questo funziona.

Se conoscete un modo migliore, fatemelo sapere.

Grazie.

Altri suggerimenti

L'attributo AllowSorting è disponibile dalla vista origine / markup in Visual Studio. Per esempio (semplificato):

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

Non so se questo funziona per voi? Non ho istanziato miei griglie dal code-behind file ancora, quindi se questo è quello che stai facendo, non posso facilmente aiutare. Ma le opere di cui sopra per me.


Modifica

Ah non era chiaro dalla domanda iniziale, che si stava utilizzando la colonna GridTemplate. Come ora si sta utilizzando il SortExpression-proprietà, non utilizzando lo stesso attributo nel lavoro di marcatura per voi? Quindi:

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

Telerik ha ora una nuova proprietà chiamata HeaderButtonType (esiste una colonna modello troppo!), Che può essere impostato su "Nessuno" per rendere un'etichetta invece di una LinkButton per il testo intestazione di colonna.

Ecco un esempio che mostra come disattivare l'ordinamento per una colonna specifica.

Si noti la proprietà AllowSorting a livello di rete (per tutte le colonne).

Poi, nella collezione Colonne, nota come viene spento per quella colonna specifica.

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

Per TemplateColumns, proverei spegnere ordinamento a livello di griglia e semplicemente abilitarlo sulle colonne necessarie. In questo modo, non dovrà fare nulla per il TemplateColumn poiché sarà disabilitato per impostazione predefinita.

Si può sempre fornire la propria HeaderTemplate con un'etichetta come intestazione invece di un pulsante di collegamento, se si sta utilizzando un GridTemplateColumn. Un po 'ci lavoro extra, ma questo funziona bene. Se avete intenzione di disattivare l'ordinamento per tutti i vostri GridTemplateColumns allora il vostro "hack" sarebbe meglio.

Come indicato nel Telerik Docs :

Nel caso in cui si desidera disattivare l'ordinamento solo per una determinata colonna, è possibile configurare proprietà IsSortable della colonna su false:

<telerik:GridViewColumn IsSortable="False" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top