2012-03-09 37 views
2

RadTabStrip是否在MasterPage中工作?單擊時不會顯示選項卡。RadTabStrip似乎沒有選擇RadTab - 爲什麼?

步驟:

  1. 創建一個新的Web應用程序項目。默認情況下,它包含主頁(Site.Master)內的主頁和關於選項卡。這些選項卡是asp:MenuItem控件。

  2. 註釋掉a​​sp:Menu控件,並將RadTabStrip拖動到它的位置。添加兩個RadTabs。運行應用程序時,每個選項卡按預期工作 - 單擊時似乎選中。

  3. 現在將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's答案led me to this。我將此代碼添加到母版頁的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; 
     } 
    } 
} 
+0

你可以張貼一些代碼的具體的TabStrip控件 – 2012-03-09 20:19:28

+0

的RadTab導致回發...見下文 – TheBoyan 2012-03-09 20:44:14

回答

1

我認爲你還需要添加runat="server"到RadTab元素,如果你想使用它這樣。例如:

<telerik:RadTab Text="Home" NavigateUrl="Default.aspx" runat="server"> 
</telerik:RadTab> 

您還可以使用ContentUrl在相應telerik:RadPageView在客戶端瀏覽。例如:

<telerik:RadPageView ID="RadPageView1" runat="server" ContentUrl="Default.aspx"> 

UPDATE(您的更新): 當您添加runat="server"到RadTab然後它會導致回發。回發時,控件無法確定哪個選項卡被選中,即使它導航到指定的頁面。下面是它是如何在Telerik的example解決:

 protected void Page_Load(object sender, System.EventArgs e) 
     { 
      string urlWithSessionID = Response.ApplyAppPathModifier(Request.Url.PathAndQuery); 
      RadTab tab = RadTabStrip1.FindTabByUrl(urlWithSessionID); 
      if (tab != null) 
      { 
       tab.SelectParents(); 
       tab.PageView.Selected = true; 
      } 
     } 
+0

我的回答就是它了!你的回答讓我想到:http://www.telerik.com/community/forums/aspnet-ajax/tabstrip/selected-tab-not-highlighted.aspx – DeveloperDan 2012-03-09 20:52:48

+0

@DeveloperDan - 很高興我能幫忙;) – TheBoyan 2012-03-09 20:53:34

0

我可以在你的代碼中看到的相比,我的母版頁唯一的區別是的SelectedIndex =「0」的RadTabStrip和選定=「真實」上的一個拉德標籤:

<telerik:RadTabStrip ID="RadTabStrip1" runat="server" SelectedIndex="0"> 
    <Tabs> 
     <telerik:RadTab runat="server" Text="Root RadTab1" NavigateUrl="~/Default.aspx" Selected="true"> 
     </telerik:RadTab> 
     <telerik:RadTab runat="server" Text="Root RadTab2" NavigateUrl="~/About.aspx" > 
     </telerik:RadTab> 
    </Tabs> 
</telerik:RadTabStrip> 
+0

隨着這些變化即使在單擊第二個選項卡後,也只會顯示第一個選項卡。奇。 – DeveloperDan 2012-03-09 20:43:39

相關問題