ホームページ >バックエンド開発 >C#.Net チュートリアル >「ASP.NET」データバインディングの詳しい説明—DataList
DataList コントロールは .NET のコントロールです。 DataList コントロールは、テーブル (プロパティ ビルダーで編集可能) の形式でデータを表示します。このコントロールを通じて、さまざまなレイアウトを使用してデータ レコードを表示できます (テンプレートを使用して編集) 、たとえば、データ レコードを配置することができます列形式または行形式。あなたはできる DataList コントロールは、ユーザーがテーブル 内のレコードを編集または削除できるように構成されています (EditItemTemplate テンプレートと SelectedItemTemplate テンプレートを使用) 。 DataList コントロールは、データ ソース コントロールのデータ変更機能を使用しません。このコードは自分で提供する必要があります。
1. DataList には、Repeater より 2 つのテンプレート (SelectedItemTemplate と EditItemTemplate) があり、選択および編集機能をサポートします。
2. DataList には視覚的なテンプレート編集と属性編集がありますが、Repeater コントロールは組み込みのレイアウトを指定しません。DataList と比較すると、データ編集は面倒です。
3. DataList のコンテンツはデータをテーブルの形式で表示しますが、これによりデータの配置がより美しくなりますが、Repeater 自体がテーブルを追加する必要があります。
4. DataList は項目を HTML テーブルに明示的に配置しますが、Repeater はそうではありません。
1.ItemTemplate、AlternationgItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate、SelectedItemTemplate、EditItemTemplate。
1. バブリングイベント
「.NET」フレームワークには、イベントバブリングをサポートする 3 つの標準コントロール (Repeater、DataList、および DataGri) が含まれています。 d コントロール。これらのコントロールを使用すると、子コントロールからイベントをキャプチャできます。子コントロールがイベントを生成すると、そのイベントは子コントロールを含むコンテナ コントロールに「バブル」され、コンテナ コントロールはサブルーチンを実行してイベントを処理できます。
DataList コントロールはイベント バブリングをサポートしており、DataList に含まれるコントロールによって生成されたイベントをキャプチャし、通常のサブルーチンを通じてこれらのイベントを処理できます。この時点で、イベント バブリングのメリットをよく理解していない人もいるかもしれません。このように、逆に考えてみます。イベント バブリングがない場合は、各コントロールによって生成されるイベントごとに、対応する処理関数を定義する必要があります。 DataList に 10,000 個のコントロールが含まれている場合はどうなるでしょうか。以上?では、イベント ハンドラーはいくつ作成する必要があるのでしょうか?したがって、イベント バブリングでは、DataList に含まれるコントロールの数に関係なく、必要なハンドラーは 1 つだけです。 私の理解は、プログラムをカプセル化し、継承メカニズムを通じて問題を解決することです。
2. DataList によってサポートされるイベント:
EditCommand: CommandName="edit" の子コントロールによって生成されます。
CancelCommand: CommandName="cancel" の子コントロールによって生成されます。
UpdateCommand: CommandName="update" の子コントロールによって生成されます。
DeleteCommand: CommandName="delete" の子コントロールによって生成されます。
itemCommand: DataList のデフォルトのイベント。
3. イベントトリガープロセス: これら 5 つのイベントを使用して、DataList コントロールのボタンをクリックすると、どのイベントがトリガーされますか?それらはいつトリガーされますか?
「ASP Point NET」には、CommandName プロパティを持つ 3 つのコントロール (Button、LinkButton、ImageButton) があり、それらの CommandName プロパティは、コンテナ コントロールで生成された時間の種類を表すように設定できます。たとえば、DataList 内の LinkButton の CommandName プロパティを「update」に設定すると、このボタンがクリックされると、DataList の UpdateCommand イベントがトリガーされ、対応するイベント ハンドラーに関連する処理コードを書き込むことができます。
注:ItemCommand イベントは、DataList コントロールで delete/cancel/update/edit の CommandName を持つボタンがクリックされると、最初に EventCommand がトリガーされ、DataList コントロールによって生成されるデフォルトのイベントです。次に、対応するイベント。
1. DataList 内の項目の主キーを選択して編集し、 DataList コントロールの DataKeys コレクションを使用します。
DataList 内の項目を選択するときは、通常、この項目に関連付けられた主キーの値を取得する必要があります。 DataKeys コレクションを使用して、項目に関連付けられた主キーの値を取得できます。 DataKeys コレクションを作成した後、項目のインデックス値を DataKeys コレクションに渡すことによって、DataList 内の関連する項目に関連付けられた主キー値を取得できます。たとえば、DataList によって表示される 3 番目の項目の主キー値を取得するには、DataList1.DataKeys[2] を使用します。 DataList コントロール。DataList1.DataKeys[e.Item.ItemIndex] を使用します。
2. DataList 内の項目を編集する
実際、DataList コントロールを使用してデータ テーブル内のレコードを編集できます。このような操作を DataList 内で完了すると非常に便利です。 ASP とは異なり、複数のページ間を行き来する必要があります。 DataList コントロールには EditItemTemplate という名前のテンプレートがあり、DataList 内の特定の項目を編集できるようにフォーム コントロールが配置されます。 DataList の EditItemIndex プロパティの値が DataList 内の項目のインデックスである場合、対応する項目は EditItemTemplate テンプレートに表示されます。プロパティ値が -1 の場合は、EditItemTemplate テンプレートが表示されないことを意味します。 。
3. DataList 内の項目を選択します
データが DataList にバインドされると、DataList 内の各項目にはインデックス番号が付けられます。最初の項目のインデックスは 0 になります。 、など番号を下げます。インデックスを使用して、DataList 内の特定の項目を決定できます。 DataList は、デフォルトで、ItemTemplate または ItemsTemplate+AlternatingItemTemplate テンプレート内のデータ項目を表示します。 DataList の SelectedIndex プロパティの値が DataList 内の項目のインデックスである場合、対応する項目が SelectedItemTemplate テンプレートに表示されます。この属性の値が -1 の場合、SelectedItemTemplate テンプレートが表示されないことを意味します。
4. まとめ
ここまで言っておきますが、上記はすべて自分で使ってみて初めてその機能を深く理解できるものです。 DataList の実践に注目してください。 ! !
以上が「ASP.NET」データバインディングの詳しい説明—DataListの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。