2011-01-26 4 views
0

私はasp.netの初心者です。vb asp.net:ItemTemplateとEditItemTemplateで共通のコードを繰り返さないようにする方法

FormViewを使用する場合、ItemTemplate、EditItemTemplate、およびInsertItemTemplateにはほぼ同じコードがあります。

<asp:ListBox ID="ListBox2" runat="server" Rows="1" CssClass="field" 
    DataSourceID="StatusList" DataTextField="DESCRIPTION" 
DataValueField="STAT_ID" SelectedValue='<%# Bind("STAT_ID") %>'> 
</asp:ListBox> 

(注:ItemTemplateに中evalは()バインド(の代わりに使用されることを除いて)で)例えば

私はこのコードを繰り返さないようにしようとしてきたが、期待結果なし:

  • ListViewコントロールは、LayoutTemplateを使用することができます - しかし、私はLayoutTemplateにおけるこの種のコードを挿入する任意の例を見ていません。このコードをLayoutTemplateに挿入すると、エラーが発生します。

  • DetailViewではコードを自動的に生成できますが、一部のフィールドを含む "fieldset"を使用して特定のデザインを使用したいと考えています。

この種のコードを繰り返さないようにするにはどうすればよいでしょうか?

+0

コピー&ペースト。 FormViewModeごとに異なるテンプレートを使用する目的は、* different *テンプレートを使用できることです。必要がない場合は、常にFormViewを使用して終了し、UserControlまたはページを直接使用することができます。 –

答えて

1

バインド/エバール部分を別々に指定する必要はありませんが、他の部分を何らかの方法で制御できます。レイアウトを含むカスタムのUserControlを作成できます。

通常、このUserControlには「編集」または「表示」に設定したプロパティが含まれています。このプロパティを基に、コントロールの有効/無効のプロパティを変更します。また、ユーザコントロールにバインド/表示する各値のプロパティを含める必要があります。

あなたのデザイナーにいくつかのラベルやテキストボックスなどを入れ、コード内のプロパティにフックアップして、あなたのページにあなたのアイテムを置いてください/テンプレートを編集し、さまざまなプロパティ(右に表示されるようにモードを設定してください)。

+0

ありがとうございました。それは素晴らしい作品です。 UserControlを知らなかったので、どのように役立つのか理解できました。 – user183772

関連する問題