2011-10-26 67 views
0

我在一個實例中使用ListView,我想在同一個LayoutTemplate中有兩個Item佔位符。這可能嗎?我的用例如下。我使用的是jQuery選項卡,並希望根據綁定中的數據輸出選項卡。因此,例如,這就是我想要的:兩個項目佔位符在同一個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

似乎更容易定義兩個ListView - 每個邏輯jQuery選項卡一個。 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是最輕的。

相關問題