2

Telerikのドキュメントでは 、AllowSorting プロパティを使用して特定の列の並べ替えを無効にする方法があると述べています。Telerik.Web.UI.GridColumn メンバーを見ていますが、AllowSorting プロパティはありません。Sortable プロパティはありますが、保護されており、オーバーライドする必要があります。では、特定の列の並べ替えをオフにするにはどうすればよいでしょうか?

GridBoundColumn には AllowSorting プロパティがありますが、この場合は GridTemplateColumn を使用しています。GridTemplateColumn の並べ替えをオフにする方法はありますか?

4

6 に答える 6

6

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>
于 2009-04-28T15:18:18.527 に答える
4

さて、目的の効果が得られました。GridTemplateColumn の SortingExpression プロパティを空白に設定して、並べ替えをオフにしました。

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

これはハックのように見えます。並べ替えをオフにする明示的なプロパティがないのはなぜですか? しかたがない。これは機能します。

良い方法をご存知でしたら教えてください。

ありがとう。

于 2009-04-28T15:31:43.113 に答える
3

Telerik には、HeaderButtonType と呼ばれる新しいプロパティが追加されました (テンプレート列にも存在します!)。これを「None」に設定すると、列ヘッダー テキストのリンク ボタンの代わりにラベルをレンダリングできます。

于 2012-03-08T11:01:23.797 に答える
0

特定の列の並べ替えを無効にする方法を示す例を次に示します。

グリッド レベル (すべての列) の 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 はデフォルトで無効になるため、何もする必要はありません。

于 2009-04-28T15:17:33.473 に答える
0

Telerik Docsに記載されているように:

特定の列のみの並べ替えを無効にする場合は、列の IsSortable プロパティを False に構成できます。

<telerik:GridViewColumn IsSortable="False" />
于 2015-03-23T12:30:24.367 に答える
0

GridTemplateColumn を使用している場合は、リンク ボタンの代わりにヘッダーとして独自のヘッダー テンプレートをいつでも提供できます。少し余計な作業をしますが、これで問題なく動作します。すべての GridTemplateColumns の並べ替えを無効にする場合は、「ハック」が最適です。

于 2009-06-26T20:45:01.450 に答える