asp.net - examples - Parece que RadTabStrip no tiene RadTab seleccionado-¿Por qué?
telerik asp net c# (2)
Creo que también necesitas agregar runat="server"
al elemento RadTab si quieres usarlo así. Por ejemplo:
<telerik:RadTab Text="Home" NavigateUrl="Default.aspx" runat="server">
</telerik:RadTab>
También puede usar ContentUrl
en el telerik:RadPageView
correspondiente telerik:RadPageView
para navegar en el lado del cliente. Ejemplo:
<telerik:RadPageView ID="RadPageView1" runat="server" ContentUrl="Default.aspx">
ACTUALIZACIÓN (en su actualización): cuando agrega runat="server"
a RadTab, genera una devolución de datos. En la devolución de datos, el control no puede determinar qué pestaña se selecciona aunque navegue a la página especificada. Así es cómo se resuelve en el ejemplo de Telerik:
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;
}
}
¿Funciona un RadTabStrip en una página maestra? Las pestañas no aparecen seleccionadas cuando se hace clic.
Pasos:
Crear un nuevo proyecto de aplicación web. Por defecto, contiene pestañas de Inicio y Acerca de dentro de una Página Maestra (Site.Master). Las pestañas son asp: controles de MenuItem.
Comente el asp: control de menú y arrastre un RadTabStrip en su lugar. Agregue dos RadTabs. Cuando ejecuta la aplicación, cada pestaña funciona como se esperaba: parece que se selecciona cuando se hace clic.
Ahora agregue NavigateUrls a cada RadTab que apunta a las páginas "~ Default.aspx" y "~ About.aspx". Cuando se ejecuta la aplicación, las pestañas no parecen estar seleccionadas cuando se hace clic (aunque se muestra la página correcta).
¿Que esta pasando? ¿Cómo puedo hacer que esto funcione?
Actualización: Así es cómo modifiqué el código predeterminado en 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>
La respuesta...
La respuesta de Bojan Skrchevski me llevó a esto . Agregué este código al evento Page_Load de la página maestra y funciona:
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;
}
}
}
La única diferencia que puedo ver en su código en comparación con mi página maestra es SelectedIndex = "0" en RadTabStrip y Selected = "true" en una de las pestañas 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>