Pergunta

Na sua documentação Telerik diz que há uma maneira de desativar a classificação para a coluna específica usando AllowSorting propriedade. Eu estou olhando para Telerik membros .Web.UI.GridColumn e não há nenhuma propriedade AllowSorting. Há uma propriedade Ordenável mas seu protegido e tem que ser substituído. Então, o que devo usar para desativar a classificação para a coluna específica?

Há uma propriedade AllowSorting em GridBoundColumn mas neste caso eu estou usando GridTemplateColumn. Existe uma maneira para desativar a classificação em GridTemplateColumn?

Foi útil?

Solução 2

Ok, eu tenho o efeito desejado, eu desliguei a classificação definindo a propriedade SortingExpression de GridTemplateColumn em branco.

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

Isto parece um hack. Por que não é uma propriedade explícita para desativar a classificação? Ah bem. Isso funciona.

Se você conhece uma maneira melhor, me avise.

Graças.

Outras dicas

O atributo AllowSorting está disponível a partir da exibição de fonte / marcação no Visual Studio. Por exemplo (simplificado):

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

Eu não sei se isso funciona para você? Eu não instanciado meus grelhas a partir do código-behind arquivos ainda, então se é isso que você está fazendo, não posso ajudá-lo facilmente. Mas as obras acima para mim.


EDIT:

Ah não era claro a partir da pergunta original, que estava a utilizar a coluna GridTemplate. Como você está usando agora o SortExpression-propriedade, não usando o mesmo atributo no trabalho de marcação para você? Assim:

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

Telerik tem agora uma nova propriedade chamada HeaderButtonType (existe em uma coluna de template também!), Que pode ser definido como "None" para processar uma etiqueta em vez de um linkbutton para o texto do cabeçalho da coluna.

Aqui está um exemplo que mostra como desativar a classificação para uma coluna específica.

Observe a propriedade AllowSorting no nível Grid (para todas as colunas).

Em seguida, na coleção Columns, nota como ele é desligado para essa coluna 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, gostaria de tentar desligar Classificando no nível de grade e simplesmente permitir que as colunas necessárias. Dessa forma, você não terá que fazer qualquer coisa para o TemplateColumn uma vez que será desativado por padrão.

Você pode sempre fornecer seu próprio HeaderTemplate com uma etiqueta como o cabeçalho em vez de um botão de link se você estiver usando um GridTemplateColumn. A nós pouco de trabalho extra, mas isso funciona bem. Se você estiver indo para desativar a classificação para todas as suas GridTemplateColumns então o seu "hack" seria melhor.

Como se afirma no Telerik Docs :

No caso de você quiser desativar a classificação por apenas uma coluna específica, você pode configurar propriedades IsSortable da coluna para falso:

<telerik:GridViewColumn IsSortable="False" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top