質問

以下のようなグリッドがあり、さらにいくつかのデータ列があります。
ID 列と ParentID 列を非表示にしたいと考えています。ただし、ID を非表示にすると、展開/折りたたみ機能が存在しなくなります。すべての行が通常のテーブルと同様に表示されます。

enter image description here

どうすればそれを達成できますか?

<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1" OnColumnCreated="RadGrid1_ColumnCreated"
        OnItemCreated="RadGrid1_ItemCreated" OnItemDataBound="RadGrid1_ItemDataBound" AutoGenerateColumns="false" OnPreRender="RadGrid1_PreRender">
        <MasterTableView HierarchyDefaultExpanded="true" HierarchyLoadMode="Client" AllowSorting="false"
            DataKeyNames="OrderId, MasterId" Width="100%">
            <SelfHierarchySettings ParentKeyName="MasterId" KeyName="OrderId" MaximumDepth="1" />
            <Columns>
                <telerik:GridTemplateColumn HeaderText="Order ID" UniqueName="OrderId" Display="false">                    
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn HeaderText="Name">
                    <ItemTemplate><%# Eval("Name") %></ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn HeaderText="Number">
                    <ItemTemplate><%# Eval("PassengerNumber") %></ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn HeaderText="Total">
                    <ItemTemplate><%# Eval("Total") %></ItemTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
        </MasterTableView>
        <ClientSettings AllowExpandCollapse="true" />
    </telerik:RadGrid>

Display="false" OrderID は HTML に保持されているため、この機能は動作するはずですが、動作しません。

誰かアイデアはありますか?

役に立ちましたか?

解決

わかりました。コードビハインドを詳しく調べた結果、解決策を見つけました。
私の場合、名前列に展開/折りたたみボタンが必要でした。
そのために:
.aspx ファイルでは、DataKeyNames に Name を追加する必要がありました。ID と ParentId グリッド列を削除しました。追加した UniqueName 属性を Name グリッド列に値 Name で設定します。
コードビハインドでは、展開/折りたたみボタンを作成するときに uniquecolumnname の Name を渡しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top