RadTabStrip 在 MasterPage 中是否工作?单击时选项卡不会显示为选中状态。
脚步:
创建一个新的 Web 应用程序项目。默认情况下,它在母版页 (Site.Master) 中包含主页和关于选项卡。选项卡是 asp:MenuItem 控件。
注释掉 asp:Menu 控件并在其位置拖动一个 RadTabStrip。添加两个 RadTab。当您运行应用程序时,每个选项卡都按预期工作——单击时它似乎被选中。
现在将 NavigateUrls 添加到指向“~Default.aspx”和“~About.aspx”页面的每个 RadTab。当应用程序运行时,单击时似乎未选择选项卡(尽管显示了正确的页面)。
这是怎么回事?我怎样才能使这项工作?
更新:这是我更改 Site.Master 中的默认代码的方式...
<div>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
</div>
<%--<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
</Items>
</asp:Menu>
</div>--%>
<div>
<telerik:RadTabStrip ID="RadTabStrip1" runat="server">
<Tabs>
<telerik:RadTab runat="server" Text="Root RadTab1" NavigateUrl="~/Default.aspx">
</telerik:RadTab>
<telerik:RadTab runat="server" Text="Root RadTab2" NavigateUrl="~/About.aspx" >
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
</div>
答案...
Bojan Skrchevski 的回答让我想到了这个。我将此代码添加到母版页的 Page_Load 事件中,它可以工作:
using Telerik.Web.UI;
namespace WebApplication1
{
public partial class SiteMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
RadTab currentTab = RadTabStrip1.FindTabByUrl(Request.Url.PathAndQuery);
if (currentTab != null) currentTab.Selected = true;
}
}
}