検証が必要な ajaxToolkit:TabContainer にネストされた一連のユーザー コントロールがあります。ユーザー コントロールには txtFlightFrom と txtFlightTo コントロールがあり、txtFlightFrom にデータがある場合は、それが txtFlightTo のデータであることを確認する必要があります (目的地の空港がなければ 1 つの空港から飛び出すことはできません)。asp:CompareValidator コントロールを初めて試していますが、本当の問題は、次のタブに進むときにバリデーターをトリガーする方法です。aspx ページから実行してみましたが、問題が発生するだけで、論理的に意味がありません。
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";
}
ascx.csでこのコードのバリエーションも試しましたが、イベントがaspx.csで発生しているため、それも意味がありません
何かご意見は?