J'ai une série de paramètres userc imbriqués dans un ajaxToolkit: TabContainer qui doit être validé. Le contrôle utilisateur a un contrôle txtFlightFrom et un contrôle txtFlightTo et je dois m'assurer que leurs données sont dans le txtFlightTo s'il y a des données dans txtFlightFrom (vous ne pouvez pas quitter un aéroport sans aéroport de destination). J'essaye le contrôle de l'Asp: CompareValidator pour la première fois mais mon vrai problème est comment je déclenche le validateur quand je passe à l'onglet suivant. J'ai essayé de le faire à partir de ma page ASPX, mais cela ne fait que causer des problèmes et n'a pas de sens logique pour moi.Validation sur usercontrol dans le contrôle de l'onglet ajax
ascx:
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtFlightFrom" ControlToCompare="txtFlightTo" Type="String" ErrorMessage="CompareValidator" />
<asp:Label ID="lblCompareTOFROM" runat="server" />
<asp:TextBox ID="txtFlightFrom" runat="server" />
<asp:TextBox ID="txtFlightTo" runat="server" />
aspx:
<ajaxToolkit:TabContainer ID="TabContainer1" runat="server" AutoPostBack="true" OnActiveTabChanged="TabContainer1_ActiveTabChanged">
<ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="Flights">
<ContentTemplate>
<ucFlight:FlightControl id="FlightControl1" Runat="server" />
<ucFlight:FlightControl id="FlightControl2" Runat="server" />
</ContentTemplate>
</ajaxToolkit:TabPanel>
<ajaxToolkit:TabPanel ID="TabPanel2" runat="server" HeaderText="Cars">
stuff
</ajaxToolkit:TabPanel>
ascx.cs
public string ValidateToFrom
{
get { return lblCompareTOFROM.Text; }
set { lblCompareTOFROM.Text = value; }
}
aspx.cs
if (Page.IsValid)
{
FlightControl1.ValidateToFrom = "Not Valid";
}
J'ai également essayé des variations de ce code dans le ascx.cs mais cela n'a pas de sens car l'événement se passe dans le aspx.cs
Des pensées?
Vous mettriez le script sur la page ASPX et non le usercontrol lui-même? (Ce qui, je suppose, serait logique vu que l'événement se passe là-bas.) – Jeremy
Les contrôles de validation seront toujours dans vos contrôles Web internes. Sur la page (c'est-à-dire à l'intérieur du contrôle tabcontainer), vous allez simplement déclencher la fonction de validation de page. – Ghidello