Asp.net 具有Sitecore的ASP中继器中结果中的项目数

Asp.net 具有Sitecore的ASP中继器中结果中的项目数,asp.net,sitecore,repeater,Asp.net,Sitecore,Repeater,我正在使用Sitecoreascx文件,得到如下内容: <asp:Repeater ID="NavRepeater" runat="server"> <ItemTemplate> <div class="item"> <img src="<%# ((Sitecore.Data.Items.Item)Container.DataItem).Fields["I

我正在使用Sitecore
ascx
文件,得到如下内容:

<asp:Repeater ID="NavRepeater" runat="server">
    <ItemTemplate>
        <div class="item">                      
             <img src="<%# ((Sitecore.Data.Items.Item)Container.DataItem).Fields["Image Url"] %>" width="360" height="420" alt="">
    </div>
    </ItemTemplate>
    <SeparatorTemplate></SeparatorTemplate>
</asp:Repeater>         

“width=“360”height=“420”alt=”“>
无法计算如何从
Sitecore.Data.Items.Item
获取元素总数


我还想知道如何检索集合中的给定项,如第2项?

您可以从中继器绑定到的枚举中获取这些项。

您可以从中继器绑定到的枚举中获取这些项。

您可以有如下内容:

<asp:Repeater ID="NavRepeater" runat="server" OnItemDataBound="rptGallery_ItemDataBound">
<ItemTemplate>
    <div class="item">
     <sc:fieldrenderer id="fldGalleryItemImageThumbnail" runat="server" fieldname="ImageUrl" disablewebediting="true" />   
      </div>
     </ItemTemplate>
   <SeparatorTemplate></SeparatorTemplate>
 </asp:Repeater>          
在rptGallery_ItemDataBound事件中,您将拥有:

  protected void Page_Load(object sender, EventArgs e)
    {
          rptGallery.DataSource = listofitemyyouwanttoshow;
          rptGallery.DataBind();
    }
    protected void rptGallery_ItemDataBound(object sender, RepeaterItemEventArgs e)
     {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Item item = (Item)e.Item.DataItem;
              //you can check index here of item
            if (item != null)
            {
                var fldGalleryItemImageThumbnail = e.Item.FindControl("fldGalleryItemImageThumbnail") as FieldRenderer;
                if (fldGalleryItemImageThumbnail != null)
                {
                    fldGalleryItemImageThumbnail.DataSource = item.ID.ToString();
                    fldGalleryItemImageThumbnail.Parameters = String.Format("width={0}", 360);
                }
               }
            }
          }
    }

  I hope it helps you . 

您可以选择以下内容:

<asp:Repeater ID="NavRepeater" runat="server" OnItemDataBound="rptGallery_ItemDataBound">
<ItemTemplate>
    <div class="item">
     <sc:fieldrenderer id="fldGalleryItemImageThumbnail" runat="server" fieldname="ImageUrl" disablewebediting="true" />   
      </div>
     </ItemTemplate>
   <SeparatorTemplate></SeparatorTemplate>
 </asp:Repeater>          
在rptGallery_ItemDataBound事件中,您将拥有:

  protected void Page_Load(object sender, EventArgs e)
    {
          rptGallery.DataSource = listofitemyyouwanttoshow;
          rptGallery.DataBind();
    }
    protected void rptGallery_ItemDataBound(object sender, RepeaterItemEventArgs e)
     {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Item item = (Item)e.Item.DataItem;
              //you can check index here of item
            if (item != null)
            {
                var fldGalleryItemImageThumbnail = e.Item.FindControl("fldGalleryItemImageThumbnail") as FieldRenderer;
                if (fldGalleryItemImageThumbnail != null)
                {
                    fldGalleryItemImageThumbnail.DataSource = item.ID.ToString();
                    fldGalleryItemImageThumbnail.Parameters = String.Format("width={0}", 360);
                }
               }
            }
          }
    }

  I hope it helps you . 

它位于中继器的数据源上,使用C#:

因此,如果您的C#是:

然后根据其类型,长度为
someData.length
someData.Count()

要在某个位置获取特定项目,请执行以下操作:

Item second = someData[1]; // per 0-indexing
或基于类型,也可以是:

Item second = someData.ElementAt(1) // per 0-indexing

它位于中继器的数据源上,使用C#:

因此,如果您的C#是:

然后根据其类型,长度为
someData.length
someData.Count()

要在某个位置获取特定项目,请执行以下操作:

Item second = someData[1]; // per 0-indexing
或基于类型,也可以是:

Item second = someData.ElementAt(1) // per 0-indexing

Sitecore.Data.Items.Item它只是一个类,无法获取项目编号2。您到底想做什么?Sitecore.Data.Items.Items它只是一个类,无法获取项目编号2。您到底想做什么?