Ich verwende eine DataList als TabStrip Navigation. Das funktioniert mittlerweile auch ganz gut. Allerdings wird der aktive Tab erst beim 2. Click korrekt initialisiert. Beim 2. Click wird auch der Handler ItemCommand nicht mehr aufgerufen. Woran kann das liegen?
Das ganze kann man unter http://193.254.238.70/test-it/config sehen. Hier der Code: <%@ Page language="c#" Codebehind="index.aspx.cs" AutoEventWireup="false" Inherits="itetb.config.index" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>CMx Administration</title> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <link rel="stylesheet" href="config.css" type="text/css"> </HEAD> <body> <form id="index" method="post" runat="server"> <TABLE id="TableMain" cellSpacing="0" cellPadding="5" width="910" align="center" border="0" class="TableMain" runat="server"> <TR> <TD align="middle"> <TABLE id="TableHeader" cellSpacing="0" cellPadding="0" width="100%" border="0" runat="server"> <TR> <TD> <asp:DataList id="DataListNavigation" runat="server" RepeatDirection="Horizontal" EnableViewState="True"> <SelectedItemStyle CssClass="NavTabActive"></SelectedItemStyle> <SelectedItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Name") %> </SelectedItemTemplate> <SeparatorStyle CssClass="NavSeperator"></SeparatorStyle> <ItemStyle CssClass="NavTab"></ItemStyle> <ItemTemplate> <asp:LinkButton runat='server' Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>'> </asp:LinkButton> </ItemTemplate> <SeparatorTemplate> </SeparatorTemplate> </asp:DataList></TD> </TR> </TABLE> <TABLE id="TableContent" cellSpacing="0" cellPadding="0" width="100%" border="0" class="TableContent"> <TR> <TD></TD> </TR> </TABLE> </TD> </TR> </TABLE> </form> </body> </HTML> using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace itetb.config { /// <summary> /// Zusammendfassende Beschreibung f�r _default. /// </summary> public class index : System.Web.UI.Page { protected System.Web.UI.WebControls.DataList DataListNavigation; protected System.Web.UI.HtmlControls.HtmlTable TableMain; protected System.Web.UI.HtmlControls.HtmlTable TableHeader; protected itetb.config.modules.Modules Navigation; private void Page_Load(object sender, System.EventArgs e) { this.GetNavigationData(); if(!Page.IsPostBack) { this.DataListNavigation.SelectedIndex = 0; } } private void GetNavigationData() { if(Session["Navigation"] == null) { string file = Server.MapPath("modules/modules.xml"); this.Navigation = new itetb.config.modules.Modules(); this.Navigation.ReadXml(file); Session["Navigation"] = this.Navigation; } else { this.Navigation = (itetb.config.modules.Modules)Session["Navigation"]; } this.DataListNavigation.DataSource = this.Navigation.Module; this.DataListNavigation.DataMember = "Name"; this.DataListNavigation.DataBind(); } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: Dieser Aufruf ist f�r den ASP.NET Web Form-Designer erforderlich. // InitializeComponent(); base.OnInit(e); } /// <summary> /// Erforderliche Methode f�r die Designerunterst�tzung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor ge�ndert werden. /// </summary> private void InitializeComponent() { this.DataListNavigation.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataListNavig ation_ItemCommand); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void DataListNavigation_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e) { this.GetNavigationData(); this.DataListNavigation.SelectedIndex = e.Item.ItemIndex; } } } | [aspdedotnet] als [email protected] subscribed | http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.dotnetgerman.com/listen/aspDEdotnet.asp
