2009-03-30 12 views
1

Ich habe mehrere sich wiederholende Tabellen in einem InfoPath-Formular. Im Wesentlichen listet jede eine Ladung von Strings mit Kontrollkästchen daneben auf. Wenn der Benutzer auf "Senden" klickt, möchte ich sicherstellen, dass mindestens ein Kontrollkästchen pro wiederholter Tabelle aktiviert wurde.InfoPath wiederholte Tabellenüberprüfung

Ich war gerade dabei, einen validierenden Event-Handler für die Tabelle zu schreiben, der eine Validierungsvariable entweder auf true oder false setzen würde, aber ich erkannte, dass die Hauptdatenquelle bei validierenden und geänderten Ereignissen schreibgeschützt ist.

Wie würde ich überprüfen, ob etwas in der wiederholenden Tabelle angekreuzt wurde, bevor das Formular gesendet wird?

[HINWEIS] Ich verwende wiederholte Tabellen anstelle des Multiselection-Steuerelements, da das Formular Browser-kompatibel sein muss.

Vielen Dank im Voraus

Antwort

0

Ich glaube, Sie haben zwei Möglichkeiten (und das sind nur aus der Spitze von meinem Kopf/nicht eigentlich eine ähnliche Form Lösung Aufbau).

1) Erstellen Sie einen XPath-Ausdruck, der auswertet, ob eines Ihrer Kontrollkästchen ausgewählt wurde oder nicht. Dann fügen Sie Ihrem Formular einen versteckten Knoten hinzu (einer, der in der Ansicht nicht an ein Steuerelement gebunden ist) und fügen Sie diese Validierungseigenschaft hinzu.

2) Fahren Sie mit dem Schreiben des Ereignishandlers fort, um das Sendeereignis abzubrechen, nachdem Sie Ihre benutzerdefinierte Validierungslogik im Code ausgeführt haben.

http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.formevents.submit(VS.80).aspx