我有一个RadTabStrip用作菜单(标签充当链接),点击一些标签打开相关链接的子菜单。
我有以下代码来突出显示当前正在访问的标签:
母版页代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
RadTabStrip tabControl = FindControl("radTabMenu"); //Pseudo
RadTab currentTab = tabControl.FindTabByUrl(Request.Url.PathAndQuery);
if (currentTab != null) currentTab.Selected = true;
}
母版页
<telerik:RadTabStrip ID="radTabMenu" runat="server">
<Tabs>
<telerik:RadTab Text="Home" NavigateUrl="~/" /> <!-- Loads Default.aspx -->
<telerik:RadTab Text="Menu Item" NavigateUrl="~/MenuItem.aspx" />
<telerik:RadTab Text="Top Level Nav">
<Tabs>
<telerik:RadTab Text="Lower Menu Item 1" />
<telerik:RadTab Text="Lower Menu Item 2" NavigateUrl="~/Location/Page.aspx" />
</Tabs>
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
在页面加载时,如果我单击“菜单项”选项卡以加载MenuItem页面,则RadTabs会正确突出显示该选项卡。但是,我不确定如何确保子标签正确突出显示。
我正在尝试这个,但我有点卡住了:
RadTabStrip tabControl = FindControl("radTabMenu"); //Pseudo
RadTab currentTab = tabControl.FindTabByUrl(Request.Url.PathAndQuery);
if (currentTab != null)
currentTab.Selected = true;
else
{
string dir = Request.Url.GetComponents(UriComponents.Path, UriFormat.SafeUnescaped);
currentTab = tabControl.FindTabByValue(dir);
if (currentTab != null)
//Trying to findByUrl isn't possible here because the parent tab doesn't have that method.
}
是否有一个很好的替代方法可以通过网址查找,或者更快的方法来到达父级和子级标签?
编辑:添加图片以阐明我在页面导航后想要实现的目标
答案 0 :(得分:0)
FindTabBy *方法可在RadTabStrip或RadTabCollection级别使用。 这就是为什么,一旦找到父选项卡,就无法在其上调用FindTabBy *方法,因为您需要在其.Tabs属性上调用该方法。
请参阅以下示例:
var parent = radTabMenu.FindTabByText("Top Level Nav");
parent.Selected = true;
var child = parent.Tabs.FindTabByText("Lower Menu Item 1");
child.Selected = true;
答案 1 :(得分:0)
重新审视这一点,在我的团队决定删除嵌套标签菜单之后,我发现这些标签会被网址选中。
我的问题是父标签不会被打开并被选中,但是通过文档挖掘使我使用tab.Select Parents()
,它在层次结构中选择所有导致当前所选标签的父母。< / p>
现在我发现它似乎非常明显。