Discussion:
Validator findet Control nicht
(zu alt für eine Antwort)
Benjamin Bittner
2004-05-26 11:39:08 UTC
Permalink
Hallo NG,
ich habe in meiner aspx Seite eine input type=hidden Feld, welches validiert
werden soll.
Dazu habe ich einen CustomValidator drangehängt:

<td colspan="2">
<input type="hidden" value="off" ID="status" Runat="server">&nbsp;Ich habe
die <a class="red" href="">AGB's</a> gelesen und diese anerkannt.
<br>
<asp:CustomValidator ID="cvAGB" ClientValidationFunction="checkAGB"
ControlToValidate="status" OnServerValidate="CheckAGB" Runat="server">
AGB's müssen akzeptiert werden!
</asp:CustomValidator>
</td>

Wenn ich das nun aufrufe bekomme ich eine System.Web.HttpException:

"Das Steuerelement 'status', auf das durch die ControlToValidate-Eigenschaft
von 'cvAGB' verwiesen wird, kann nicht bestätigt werden."

Die komplette Tabelle, in der das hidden-Feld sich befindet, wird
umschlossen von einem Panel. Also habe ich gedacht, das ich die ClientID
brauch. Im Page_Load habe ich dann das hinzugefügt:

cvAGB.ControlToValidate = status.ClientID

Dann ändert sich die Fehlermeldung zu:

"Steuerelement-ID '_ctl4__ctl0_status', auf die durch die
ControlToValidate-Eigenschaft von cvAGB verwiesen wird, wurde nicht
gefunden."

Bin nun etwas überfragt, hoffe Ihr nicht :).
MfG Benjamin
Karsten Samaschke [MVP]
2004-05-26 15:33:01 UTC
Permalink
Post by Benjamin Bittner
<input type="hidden" value="off" ID="status" Runat="server">
Serverseitige Steuerelemente müssen immer wohlgeformt sein. Demnach
sollze es so aussehen:

<input type="hidden" value="off" ID="status" Runat="server" />
--
Karsten Samaschke - MS MVP ASP.NET, Germany
http://www.aspextra.de - German ASP / ASP.NET Portal
http://www.ksamaschke.de - Development, Training, Coaching, Me
http://books.ksamaschke.de - ASP / ASP.NET Codebook
http://www.j2net.de - ASP .NET J2EE PHP T-SQL PL/SQL XML
Benjamin Bittner
2004-05-27 08:20:26 UTC
Permalink
Hallo Karsten
Post by Karsten Samaschke [MVP]
Post by Benjamin Bittner
<input type="hidden" value="off" ID="status" Runat="server">
Serverseitige Steuerelemente müssen immer wohlgeformt sein. Demnach
<input type="hidden" value="off" ID="status" Runat="server" />
Jo stimmt da hast du recht. Allerdings löst das mein Problem leider nicht.
Ich kriege immernoch die Meldung das das Steuerelement nicht bestätigt
werden kann. Die Code-Zeile die mir als Fehler angezeigt wird, ist aber
nicht das hidden-Feld sondern das öffnende Tag meines umschliessenden Panels
(das komplette Formular ist innerhalb eines Panels). Ich hab auch versucht
in der CodeBehind im PageLoad:
cvAGB.ControlToValidate = status.ClientID

Wenn ich es so schreibe, findet der Validator das Control garnicht mehr.

MfG Benjamin

Pascal Schmitt
2004-05-26 15:58:57 UTC
Permalink
Hallo!
Post by Benjamin Bittner
ich habe in meiner aspx Seite eine input type=hidden Feld, welches validiert
werden soll.
Wieso machst du das? Ich kann mir keinen Anwendungsfall vorstellen, in dem
man ein verstecktes Feld validieren müsste...

--pascal
Benjamin Bittner
2004-05-27 06:58:44 UTC
Permalink
Hallo Pascal
Post by Pascal Schmitt
Hallo!
Post by Benjamin Bittner
ich habe in meiner aspx Seite eine input type=hidden Feld, welches
validiert
Post by Benjamin Bittner
werden soll.
Wieso machst du das? Ich kann mir keinen Anwendungsfall vorstellen, in dem
man ein verstecktes Feld validieren müsste...
Da mir die normalen CheckBoxen nicht genug formatierungen bieten, habe ich
mir ein JavaScript gebaut, welches beim klicken 2 Bilder austauscht.die
aussehen wie eine CheckBox (einmal mit und einmal ohne Häkchen). Den Status
dieser Bilder habe ich in ein hidden-Feld gepackt. Man könnte sicherlich
auch einfach das Bild überprüfen, aber das habe ich aus einer alten
asp-Seite von mir genommen, und da hatte ich es so geregelt.
MfG Benjamin
Loading...