1 つのリンクを持つ Sitecore.Web.UI.WebControls.Link として 2 つのタブがあります。ページが開いたら、最初のページに注目したいと思います。私はこのコードを書きましたが、0 番目のインデックスに 2 回しかヒットしていないようです。したがって、両方のタブを選択したアイテムとして取得しています。コードは次のとおりです。
protected void rptTab_ItemBound(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Item i = e.Item.DataItem as Item;
Link hlTabLink;
HtmlControl liHTML;
liHTML = e.Item.FindControl("liTabTest") as HtmlControl;
hlTabLink = e.Item.FindControl("hlTabLink") as Link;
hlTabLink.Target = Sitecore.Links.LinkManager.GetItemUrl(i);
hlTabLink.DataSource = i.Paths.FullPath;
hlTabLink.Field = "Title";
String liContainerId;
switch (hlTabLink.TabIndex) //Switch case statements for the tab navigation.
{
case 0:
liContainerId = "tab-label TabbedPanelsTabSelected";
liHTML.Attributes.Add("class", liContainerId);
break;
case 1:
liContainerId = "tab-label TabbedPanelsTabSelected";
hlTabLink.CssClass = "tab-label TabbedPanelsTabSelected";
break;
case 2:
liContainerId = "tab-label last";
hlTabLink.Attributes.Add("class", liContainerId);
break;
}
}
ケース 0 は 2 回ヒットしています。ご覧のとおり、タブはリピーターにあります。そのためのマークアップは次のとおりです。
<asp:Repeater ID="rptTab" runat="server" OnItemDataBound="rptTab_ItemBound">
<ItemTemplate>
<li id= "liTabTest" runat = "server">
<a>
<sc:Link ID = "hlTabLink" Field = "scTabLink" runat ="server"></sc:Link>
</a>
</li>
</ItemTemplate>
</asp:Repeater>