2009-05-15 11 views
0

Ich habe eine Seite mit drei Optionsfeldern, abhängig davon, welche Schaltfläche ausgewählt ist Ich muss einige Kontrollen validieren (mit erforderlichen Feldgültigkeiten). Gibt es außer der Verwendung von benutzerdefinierten Prüfprogrammen noch eine Möglichkeit, dies zu tun?Optionale Validierung in ASP.NET

Dank

Antwort

1

eine OnSelectedIndexChanged an die Radiobuttonlist (oder CheckedChanged wenn sie einzelne Radio-Button-Steuerelemente sind) hinzufügen

In der Code-behind, .Enable & .Disable die spezifischen erforderlichen Feldvalidatoren.

+0

... die einen merklichen Postback erfordern, außer Ajax-ified! – Cerebrus

+0

Danke für Ihre Antwort, aber eigentlich möchte ich, dass dies Client-Seite auch funktioniert, scheint wie benutzerdefinierte Validatoren die einzige Möglichkeit sind –

+1

Sie können Validator-Steuerelemente mit Client-Seite Javascript auch aktivieren/deaktivieren ... http://msdn.microsoft.com /en-us/library/aa479045.aspx#aspplusvalid_clientside - Suche diese Seite für die 'ValidatorEnable' Funktion –

2

ASP.NET Validatoren bieten eine client-side API, die Ihnen ermöglicht: Seite

  • Validate Client
  • Schalte Validatoren Client-Seite.
  • Aktivieren oder deaktivieren Sie clientseitige Validatoren.

Die Syntax der ValidatorEnable Funktion ist:

ValidatorEnable(rfvMyValidator, boolState); 
+0

Vielen Dank, ich werde versuchen, dass –

1

Ich habe versucht, dies auf ein kleines Beispiel und es funktionierte für mich:

Ich habe

-2textboxes: TextBox1 und TextBox2

-RequiredFieldValidator: RequiredFieldValidator1 mit ControlToValidate = "TextBox1"

-RadioButton: RequiredFieldValidator1

Dieser Code wird von der RequiredFiledValidator generiert:

<script type="text/javascript"> 
//<![CDATA[ 
var RequiredFieldValidator1 = document.all ? document.all["RequiredFieldValidator1"] : document.getElementById("RequiredFieldValidator1"); 
RequiredFieldValidator1.controltovalidate = "TextBox1"; 
RequiredFieldValidator1.errormessage = "RequiredFieldValidator"; 
RequiredFieldValidator1.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; 
RequiredFieldValidator1.initialvalue = ""; 
//]]> 
</script> 

Ich möchte, wenn der Benutzer klicken Sie auf den RadioButton1 die Validierung zu TextBox2 wechseln.

Dies ist, wie ich es tat:

protected void Page_Load(object sender, EventArgs e) 
     { 
      RadioButton1.Attributes.Add("onclick", "RequiredFieldValidator1.controltovalidate=\"TextBox2\""); 
     } 
+0

Danke, dass Sie sich die Zeit nehmen zu antworten meine Frage, wie ich in der Frage erwähnt habe Ich habe 3 Radiobuttons, mit drei Abschnitten (ein Abschnitt für jeden Radiobutton), jeder Abschnitt enthält ein Steuerelement, das ich validieren muss, genau in dem ersten Abschnitt habe ich ein Textfeld, a Fileupload in der zweiten und Dropdown-Liste in der dritten. Ich zeige einen erforderlichen Feldvalidator neben jedem Steuerelement an. Das Problem, wie Sie sehen können, ist, dass ich mehrere RequiredFieldValidators habe. Ich werde ValidatorEnable versuchen, wie in einer der Antworten erwähnt. –

0

Waleed, Sie nicht angeben, ob Sie ASP.Net Formen oder ASP.Net MVC verwenden.

Wenn Sie ASP.Net MVC verwenden, die Antwort ist ganz einfach ...

Zunächst sollten Sie eine Klasse erstellen, die Modelview die Booleschen Attributen entsprechen mit Ihrem Radiobuttons enthalten sollte.

Verwenden Sie einfach die harmlose Validierung Bibliothek, die auf Codeplex verfügbar und sollte funktionieren out-of-the-box für Ihr Problem: https://foolproof.codeplex.com/

Es unterstützt unter anderem die folgenden "requiredif" Validierung Attribute/Dekorationen:

[RequiredIf] 
[RequiredIfNot] 
[RequiredIfTrue] 
[RequiredIfFalse] 
[RequiredIfEmpty] 
[RequiredIfNotEmpty] 
[RequiredIfRegExMatch] 
[RequiredIfNotRegExMatch] 

begann zu bekommen, ist einfach:

  • das Paket herunterladen aus dem bereitgestellten Link
  • ein Verweis auf die enthalten hinzufügen .dll
  • Import die enthaltenen Javascript-Dateien
  • Stellen Sie sicher, dass Ihre Ansichten verweist auf die enthaltenen Javascript-Dateien von im HTML für unaufdringliche Javascript und Jquery Validierung einreichen.

Alles, was dann noch zu tun, ist Ihre Felder zu dekorieren, die bedingt mit dem [RequiredIfTrue] Attribute validiert werden soll, die auf den entsprechenden Radiobutton Wert in Ihrem Ansichtsmodell zeigen sollen.