2009-04-08 13 views
0
<asp:DropDownList ID="ddl1" runat="server"> 
    <asp:ListItem Text="First" Value="1"></asp:ListItem> 
    <asp:ListItem Text="Second" Value="2"></asp:ListItem> 
</asp:DropDownList> 

<asp:TextBox ID="tb1" runat="server"/> 

<asp:Button ID="btn1" text="Go!" OnClick="btn1_Click" runat="server" /> 



public void btn1_Click(object sender, EventArgs e) 
{ 


} 

Wenn der Benutzer die Dropdown-Liste mit dem Text "First" auswählt, müssen die Daten in der Textbox eine Zahl sein. Wenn sie 'Second' ausgewählt haben, müssen es nur Buchstaben sein.Dynamische Änderung des Typs des Validators in einer Textbox

Wie kann ich dynamisch ein Validierungssteuerelement erstellen und dessen Verhalten ändern?

Ich habe versucht, das Validierungsobjekt zu erstellen, das Steuerelement zum Überprüfen auf das Textfeld zu setzen und seine Validate-Methode im btn1_click-Ereignis aufzurufen, aber es hat nicht funktioniert.

Update

hier ist der Code, den ich versucht:

public void btn1_Click(object sender, EventArgs e) 
    { 
     RequiredFieldValidator rfv1 = new RequiredFieldValidator(); 

     rfv1.ID = "rfv1"; 
     rfv1.ControlToValidate = tb1.ID; 
     rfv1.Text = "please enter a value for tb1"; 


     rfv1.Validate(); 

     Response.Write("<br>Page.IsValid: " + Page.IsValid); 

    } 
+0

Können Sie mehr Code posten? Speziell der Code, den Sie in Ihrem letzten Satz erwähnt haben? – Anders

Antwort

2
  • Option 1:
    beide Validatoren In das Textfeld und legen Sie sie aktiviert/deaktiviert basierend auf der Benutzerauswahl.

  • Option 2:
    Verwenden Sie einen benutzerdefinierten Validator, der das Dropdownlist berücksichtigt (und vielleicht ist es wickeln alle in eine individuelle Steuerung).

Davon glaube, ich ziehe ich die Option 1, aber ich würde es versuchen müssen, um zu sehen, wie gut es funktioniert im Browser wirklich (wie einfach oder ist es möglich, die aktivierte Validator in Javascript zu tauschen) .

Sie wollen nicht den Validator dynamisch hinzufügen/entfernen, weil die Server-Seite getan werden muss, und das bedeutet, einen Beitrag zurück zu tun, wenn der Benutzer die Auswahl ändert Dropdownlist Sie den richtigen Validator vor einstellen validieren das Textfeld. Beide vorgeschlagenen Lösungen vermeiden dies.

+0

danke, eine einfache Lösung! – Blankman

Verwandte Themen