2011-10-26 11 views
0

私は、同じLayoutTemplate内に2つのItemプレースホルダを持ちたい場合にListViewを使用しています。これは可能ですか?私のユースケースは次のとおりです。私はjQueryタブを使用しており、バインディングのデータに基づいてタブを出力したいと考えています。ので、私は推測している。このような何かだから、基本的に各タブが一つのアイテム私のデータバインディングになります2つのアイテムプレースホルダが同じListView LayoutTemplateにありますか?

<div id="tabcontainer"> 
    <ul> 
    <li>Tab 1 name</li> 
    <li>Tab 2 name</li> 
    .... 
    </ul> 
    <div> 
    Tab 1 contents 
    </div> 
    <div> 
    Tab 2 contents 
    </div> 
    ... 
</div> 

が、私はLayoutTemplateの内部に二つの異なる項目テンプレートを持っている必要があります:

だから、例えば、これは私が何をしたいです
<asp:ListView runat="server" ID="ForecastListView"> 
    <LayoutTemplate> 
    <div id="container"> 
     <ul> 
     <asp:Placeholder runat="server" ID="itemPlaceholder1" /> 
     </ul> 
    </div> 
    <asp:Placeholder runat="server" ID="itemPlaceholder2" /> 
    </LayoutTemplate> 
    <ItemTemplate1> 
    <%# Eval("TabName") %> 
    </ItemTemplate1> 
    <ItemTemplate2> 
    <div> 
     <%# Eval("TableContents") %> 
    </div> 
    </ItemTemplate2> 
</asp:ListView> 

明らかにそれは機能しませんが、これらの行に沿ったものは多分ですか?

答えて

1

論理的なjQueryタブごとに1つずつ、2つのリストビューを定義する方が簡単なようですね。 ListViewsには同じDataSourceが提供されますが、データは非常に異なる方法でレンダリングされます。

+0

これは機能します。ありがとう。 – Kyle

0

説明されているユースケースでは、同じデータソースを持つ2つのリピータがより良い決定になります。

<div id="tabcontainer"> 
    <ul> 
     <asp:Repeater runat="server" ID="ForecastListView"> 
      <ItemTemplate> 
       <li> 
        <%# Eval("TabName") %></li> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ul> 
    <asp:Repeater runat="server" ID="ListView1"> 
     <ItemTemplate> 
      <div> 
       <%# Eval("TableContents") %> 
      </div> 
     </ItemTemplate> 
    </asp:Repeater> 
</div> 

なぜListViewですか? ページングやヘッダーやフッターなどの高度な機能は必要ありません。 Reaterは最も軽いものです。

関連する問題