Usercontrol, PlaceHolder et ajaxToolkit:TabPanel
Bonjour,
tout d'abord une petite présentation rapide de ce que fait mon interface :
Elle présente 4 onglets.
Dans chaque onglet un formulaire de recherche et une zone d'affichage des résultats (à chaque fois le même design)
J'ai donc créée une page principale contenant des panel avec l'ajaxcontroltoolkit. Jusque là rien d'extraordinaire.
J'ai déporté le code de chaque onglet dans un user control afin d'améliorer la lisibilité et la maintenance du code (et aussi car un des composants est réutilisable)
Mes affichages se présentant de la même manière (un entête avec un titre puis le contenu encadré) j'ai décidé de créer un user control générant cette structure.
Voici sa tête :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SectionPanel.ascx.cs"
Inherits="Component.SectionPanel" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:UpdatePanel ID="UpdatePanelSectionPanel" runat="server">
<ContentTemplate>
<asp:Panel ID="PnlTitle" runat="server">
<div class="dataTitle">
<asp:Label ID="TitleValue" Text="Titre" runat="server" />
<asp:Label ID="LblState" Text="" runat="server" CssClass="GrayItalic" />
</div>
</asp:Panel>
<asp:Panel ID="PnlContent" runat="server">
<div style="display: block;" class="dataContent">
<asp:PlaceHolder ID="PghContent" runat="server" />
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| namespace Component
{
[ParseChildren(true)]
[PersistChildren(true)]
public partial class SectionPanel : System.Web.UI.UserControl
{
private List<Control> _content;
[Browsable(true),
Category("Appearance"),
Description("Content of the CollapsePanel")]
[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<Control> Content { get { return _content; } set { _content = value; } }
public string Title
{
get { return TitleValue.Text; }
set { TitleValue.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (_content != null)
foreach (var ctrl in _content)
{
PghContent.Controls.Add((Control)ctrl);
}
}
}
} |
Je réalise donc mes différents user control sans souci.
Je réalise une recherche dans mon premier onglet et elle s'affiche comme attendue.
Je réalise une recherche dans mon deuxième onglet et elle s'affiche comme attendue.
Je réalise une nouvelle recherche dans mon premier onglet, elle s'exécute correctement mais affiche le résultat du deuxième onglet !
Je réalise une nouvelle recherche dans mon deuxième onglet et elle s'affiche correctement.
Je retourne sur mon premier onglet et le résultat de la recherche est de nouveau bon à l'affichage.
J'ai l'impression qu'à un moment il s'emmêle les pinceaux mais je n'arrive pas trop à savoir où.
Si dans mon premier onglet, je vire mon sectionpanel, je n'ai plus aucun souci...
Auriez-vous déjà rencontré un problème du genre ? Une idée sur ce qu'il peut arriver ?
C'est peut être un brin brouillon mais je reste à votre disposition pour de plus amples renseignements
Merci d'avance