3 Stimmen

Hinzufügen eines Validators für erforderliche Felder zu einem SharePoint-Webpart

Ich schreibe ein Webpart für MOSS 2007. Ich brauche, um ein Textfeld in diesem Webpart zu validieren, oder die ich bin mit th erforderlich Feld Validator.

Ich erstelle das erforderliche Feld Validator wie folgt:

vldProjectError = new RequiredFieldValidator();
vldProjectError.ForeColor = Color.Red;
vldProjectError.ErrorMessage = Resources.LABEL_PROJECT_ERROR;
vldProjectError.ControlToValidate = txtProjectName.ClientID;
vldProjectError.Display = ValidatorDisplay.Dynamic;
this.Controls.Add(vldProjectError);

Der obige Codeschnipsel befindet sich in der CreateChildControls()-Überschreibung. Wenn ich diese Webpart-Seite öffne, erhalte ich eine allgemeine Fehlermeldung in SharePoint. Ich kann den Fehler nicht durch Debugging abfangen.

Ich habe festgestellt, dass die Ausnahme nach CreateChildControls() und vor der Render()-Methode ausgelöst wird, da der Debugger nie in die Render()-Methode eintritt

Jede Idee, wie man Validatoren in Sharepoint Webparts verwenden? Gibt es etwas, das ich vermisse?

3voto

ashwnacharya Punkte 14091

Ich konnte das Problem lösen.

sollten wir

txtProjectName.ID = "txtProjectName";    
vldProjectError.ControlToValidate = txtProjectName.ID;

anstelle von

vldProjectError.ControlToValidate = txtProjectName.ClientID;

und dies sollte innerhalb der Methode CreateChidControls() geschehen.

2voto

dstetsenko Punkte 521

Ich würde zwei Dinge versuchen:

  1. Die Aktivierung der Fehlerausgabe ist definitiv hilfreich bei der Entwicklung für SharePoint, folgen Sie ce poste um sie zu aktivieren.
  2. Versuchen Sie, die ControlToValidate-Eigenschaft in der Render-Methode zuzuweisen, anstatt in CreateChildControls. Oder tun Sie es zumindest, nachdem txtProjectName zur Steuerelementsammlung hinzugefügt wurde.

0voto

strongopinions Punkte 3877

Haben Sie versucht, die Fehlerausgabe an den Browser in der web.config zu aktivieren? Vielleicht erhalten Sie dann eine detailliertere Meldung.

0voto

jaloplo Punkte 891

Ich hatte das gleiche Problem wie Sie mit den Validierungskontrollen. Die controlId Eigenschaft des geprüften Steuerelements ist null, bis Sie es zur Steuerelementsammlung des Webparts hinzugefügt haben. Der Validator muss also nach dieser Zeile konfiguriert werden:

this.Controls.Add(txtProjectName);

Überprüfen Sie dies beim Debuggen Ihres Webparts und sehen Sie sich die Eigenschaft ClientId des überprüften Steuerelements an.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X