1

ユーザーコントロール内にデータリストがあり、ユーザーがいくつかのチェックボックスに基づいてレポートをカスタマイズできるページに読み込まれます。

ただし、チェックボックスの 1 つは [Hide Worklog] で、結果セットからワークログ列を非表示にする必要があります。

私が行った場合:

datatable1.Columns.Remove("WorkLog");

コードは次の理由で例外をスローします。

<asp:Label ID="WorkLog" runat="server" Text='<%# Bind("WorkLog") %>'></asp:Label></td>

存在しません。

私はユーザーコントロールについてすべて間違っていますか?このユーザーコントロールは常に作業ログを表示できる必要があるため、そこにバインドすることは悪くないと思いますが、同時に、ユーザーが望む場合は非表示にできるようにしたいと考えています。

4

2 に答える 2

2

データ ソース (つまり、DataTable) から列を削除する代わりに、DataList からラベル コントロールを削除してみてください。

DataList1.Controls.Remove(DataList1.FindControl("WorkLog"));

ページに表示されているよりも多くの列がデータ ソースにある場合、エラーは発生しませんが、表示されていない列を表示しようとすると、エラーが発生します。データ ソースに存在します。

于 2009-11-02T19:15:40.997 に答える
0

いくつかの条件を確認した後、コードビハインドでバインドします。お気に入り

if (visible) {
    //bind
}

コントロールを外しながら

  visible = false;

visible を session var に変更する必要があるかもしれません:)

于 2009-11-02T19:15:16.993 に答える