1

ダイナミックグリッドのリンクボタン列を持つASP.NETグリッドビュー

ASP.NET Gridviewには、リンクされた列が必要です。最初の列をクリックすると、クリックされたセルの値を持つ別のページに移動します。グリッドは動的なものです。つまり、列は固定されておらず、列/列自体は動的ではありません。最初の列だけにaspコントロールを追加し、残りの列は動的で、コードビハインドで最初の列「linkbutton」を常に追加します。

<Columns>
    <asp:TemplateField HeaderText="linkbutton">
    <ItemTemplate>
        <asp:LinkButton ID="linkbutton" runat="server" Text='<%#EVal("linkbutton") %>'
            CommandName="ShowDetails" CommandArgument='<%#Eval("linkbutton") %>'>
        </asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField> 
</Columns>

linkbuttonはデータテーブルの一部であるため、データテーブルをグリッドビューにバインドすると、テンプレートフィールド用とデータテーブルバインドからの2回表示されます。gridview.column()。visible = falseは、linkbuttonをデータテーブル列ではなく唯一の列と見なすため、機能しませんでした。

その背後にあるコードからLinkbuttonコントロールを追加しようとしましたが、これも機能しませんでした。

4

1 に答える 1

1

autogeneratecolumns を false に設定し、asp:BoundFields を使用して、asp:TemplateField で処理しているリンクボタン以外のデータテーブルの列を表示します。

その後、GridView.Columns().Visible を使用して、さまざまな列を非表示/表示できます。

Columns() に追加されていないため、自動生成された列で GridView.Columns().Visible を使用できませんでした。

明示的に宣言された列フィールドは、自動生成された列フィールドと組み合わせて使用​​できます。両方を使用すると、明示的に宣言された列フィールドが最初にレンダリングされ、その後に自動生成された列フィールドが続きます。自動的に生成された列フィールドは、Columns コレクションに追加されません。

于 2012-12-21T02:11:24.040 に答える