5

对于第一项我想使用以下内容<div>

<div class="six columns">
  <a href="">
    <img src="" />
      <h3>Israeli Embassy Promotes Peace</h3>
      <h4>At a time when Israel is facing threats of...</h4>
  </a>
</div>

而这休息我想使用以下<div>

<div class="six columns">
    <ul>
         <li><a href="">
             <h3>This is the first alskdjlak s</h3>
             </a></li>
         <li><a href="">
             <h3>asd sad asd asd asdasdasdas d</h3>
             </a></li>
         <li><a href="">
             <h3>dsad asd asd asd asd asd asd</h3>
             </a></li>
    </ul>
</div>

我该怎么做?

4

4 回答 4

2

您首先在后面的代码中使用一个整数,即从 1 开始。然后在中继器上检查该值,然后您会像这样:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <% if (iCounter == 1) { %>
            <br />First line id: <%# GetID(Container.DataItem) %>
        <% } else { %>
            <br />Next lines id: <%# GetID(Container.DataItem) %>
        <% }
            iCounter++;
        %>
    </ItemTemplate>
</asp:Repeater>

和后面的代码:

public int iCounter = 1;

List<int> oMainIds = new List<int>();

protected void Page_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 10; i++)
    {
        oMainIds.Add(i);
    }

    Repeater1.DataSource = oMainIds;
    Repeater1.DataBind();
}

public int GetID(object oItem)
{
    return (int)oItem;
}

请注意,为了测试,我在这里放置了 10 根数据线。此示例呈现:

First line id: 0 
Next lines id: 1 
Next lines id: 2 
Next lines id: 3 
Next lines id: 4 
Next lines id: 5 
Next lines id: 6 
Next lines id: 7 
Next lines id: 8 
Next lines id: 9
于 2012-12-27T20:03:28.407 回答
2

只是对 Aristos 答案的更新,没有获取 ID 的代码隐藏方法。

<asp:Repeater ID="Repeater1" runat="server">
  <ItemTemplate>
   <asp:Panel ID="pnlFirst" runat="server" Visible="<%# (Repeater1.DataSource as List<int>).IndexOf((int)Container.DataItem) ==0 %>">
     <br />First Item
   </asp:Panel>
   <asp:Panel ID="pnlRest" runat="server" Visible="<%# (Repeater1.DataSource as List<int>).IndexOf((int)Container.DataItem) !=0 %>">
     <br />
     Item:  <%# (Repeater1.DataSource as List<int>).IndexOf((int)Container.DataItem) %>
   </asp:Panel>
 </ItemTemplate>
</asp:Repeater>

在后面的代码中

List<int> oMainIds = new List<int>();

protected void Page_Load(object sender, EventArgs e)
{
   for (int i = 0; i < 10; i++)
   {
     oMainIds.Add(i);
   }

   Repeater1.DataSource = oMainIds;
   Repeater1.DataBind();
}
于 2014-04-18T14:23:00.020 回答
0

将您的 div 包装在 PlaceHolder 控件中,并使用 e.Item.ItemIndex 在转发器的 OnItemCreated 事件中设置 PlaceHolders 的可见性,以确定当前项目是否为第一个。

或者使它们成为服务器端 div(使用 runat=server)并直接以 sme 方式设置 div 的可见性

于 2012-12-27T19:59:02.847 回答
0

使用 CSS。

.six_columns ul li
{
    /* Item style */
}

.six_columns ul li:first-child 
{
    /* First item style */
}

还有一些通过 CSS 编辑内容的方法。

于 2012-12-27T20:34:52.653 回答