現在、コードベースに直接アクセスすることはできませんが、実際のコードを投稿せずに質問を適切に説明できることを願っています.
シーンを設定するために、MultiView を使用するかなり長くて見苦しい複数ページの「予約フォーム」コントロールを使用し、各ページに View を設定します。これを整理して読みやすくするために、これをリファクタリングしようとしています (ただし、1 つのコントロール内に保持する必要があります)。1 つの特定のビュー内に ListView があり、これを使用して任意の人数を予約に追加できます。ListView は、オブジェクト全体のメンバーである(およびイベントList<Person>
を介して) に手動でバインドされます。OnItemUpdating
OnItemInserting
Booking
私の ListView には EditItemTemplate と InsertItemTemplate があります。これらは、EditItemTemplate の上部に既存の項目に関する追加情報があるという事実を除いて、互いにほとんど同じです。
<EditItemTemplate>
<div class="ItemInfo">
<!-- Controls a & b -->
</div>
<div class="FormControls">
<!-- Controls c, d, & e -->
</div>
</EditItemTemplate>
<InsertItemTemplate>
<div class="FormControls">
<!-- Controls c, d, & e -->
</div>
</InsertItemTemplate>
私ができるようにしたいのは、これらのテンプレートの 1 つを別のテンプレートに基づいて作成することです。これにより、約 300 行の冗長なマークアップを削除できます。ただし、私はまだ 1 つのスタンドアロン コントロールの使用に制限されています。次のように対処された同様の状況の例を見てきました。
protected void lvPeople_Init(Object sender, EventArgs e)
{
lvPeople.InsertItemTemplate = lvPeople.EditItemTemplate;
}
ここでの問題は、これがコントロール 'a' と 'b' を InsertItemTemplate に入れることです。'a' と 'b' には、新しく追加されたアイテムのまだ存在しない情報が含まれています。デフォルト値を入力することもできますが、フォームが多言語になり、コンテンツ エディターにとって不要な余分な作業が発生するため、これは望ましくありません。これらのコントロールは EditItemTemplate 専用であることが望ましいです。
追加のコントロールを使用せずにこれを処理する適切な方法はありますか?
ありがとう。