RadTabStrip sembra non avere RadTab selezionato – Perché?

Fa un RadTabStrip lavoro in una MasterPage? Le schede non vengono visualizzati selezionato quando viene cliccato.

Seguente procedura:

  1. Creare un nuovo Progetto Applicazione Web. Per impostazione predefinita contiene l’Home e Sulle schede all’interno di una Pagina Master del Sito.Master). Le schede sono in asp:MenuItem controlli.

  2. Commento asp:Menu di controllo e trascinare un RadTabStrip al suo posto. Aggiungere due RadTabs. Quando si esegue l’applicazione ogni scheda funziona come previsto, sembra essere selezionato quando si fa clic.

  3. Ora aggiungere NavigateUrls per ogni RadTab riferimento al “~Default.aspx” e “~Circa.aspx” pagine. Quando l’applicazione viene eseguita schede non sembrano essere selezionato quando viene cliccato (anche se la pagina corretta visualizza).

    Cosa sta succedendo? Come posso fare questo lavoro?

Aggiornamento: Ecco come ho modificato il codice predefinito nel Sito.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>

La risposta…

Bojan Skrchevski s risposta mi ha portato a questo. Ho aggiunto questo codice alla Pagina principale dell’evento Page_Load e funziona:

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;
        }
    }
}
  • puoi postare del codice, in particolare il controllo TabStrip
  • Il RadTab causa di un postback…vedi la mia risposta qui sotto
InformationsquelleAutor DeveloperDan | 2012-03-09



2 Replies
  1. 1

    Penso che devi aggiungere anche runat="server" per il RadTab elemento se si desidera utilizzarlo come che. Per esempio:

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

    È inoltre possibile utilizzare ContentUrl nel corrispondente telerik:RadPageView per navigare sul lato client. Esempio:

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

    AGGIORNAMENTO(in aggiornamento):
    Quando si aggiunge runat="server" per il RadTab quindi provoca un postback. Postback il controllo è in grado di determinare quale scheda è selezionata, anche se torni alla pagina specificata. Ecco come si è risolto in Telerik esempio:

            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;
                }
            }
  2. 0

    L’unica differenza che posso vedere nel codice rispetto alla mia pagina master SelectedIndex=”0″ sul RadTabStrip e Selected=”true” su una delle Schede Rad:

    <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>
    • Con tali modifiche solo il primo, viene visualizzata la scheda selezionata anche dopo aver fatto clic sulla seconda scheda. Strano.

Lascia un commento