3 Stimmen

Benutzerdefiniertes Javascript ausführen, wenn ein clientseitiger ASP.NET-Validator ausgelöst wird?

Gibt es eine Möglichkeit, einige benutzerdefinierte Javascript ausführen, wenn ein Client-seitigen ASP.NET Validator ( RequiredFieldValidator , RangeValidator usw.) ausgelöst wird?

Im Grunde habe ich ein kompliziertes Layout, das erfordert, dass ich ein benutzerdefiniertes Skript ausführen, wenn ein DOM-Element angezeigt oder ausgeblendet wird. Ich bin auf der Suche nach einer Möglichkeit, dieses Skript automatisch auszuführen, wenn ein Prüfer angezeigt wird. (Ich verwende Validatoren mit Display="dynamic" )

2voto

Geoff Punkte 3699

Voir dieser Kommentar wie es mir gelungen ist, die ASP.Net-Client-Validierung zu erweitern. Andere haben es geschafft, sie mit serverseitigen Techniken zu erweitern.

0voto

Seth Petry-Johnson Punkte 11555

Die beste Lösung, die ich für meine spezielle Situation gefunden habe, ist diese:

  1. Erstellen Sie eine globale JS-Datenstruktur, die Kontroll-IDs einem Sichtbarkeitsstatus zuordnet.
  2. Registrieren Sie die Client-IDs der Validatoren (oder auch alles andere) in dieser Datenstruktur.
  3. Alle 250 Millisekunden wird eine Schleife durch die globale Datenstruktur gezogen und der zwischengespeicherte Sichtbarkeitsstatus mit dem aktuellen Status des Elements verglichen. Wenn die Zustände unterschiedlich sind, aktualisieren Sie den Cache und führen das benutzerdefinierte Skript zur Größenänderung aus.

Das ist in vielerlei Hinsicht hässlich, und es ist nur eine Lösung für mein spezielles Szenario, nicht für den abstrakten Fall, in dem wir beliebigen Code auf das Ein-/Ausblenden eines Validators huckepack nehmen wollen. Ich würde mich über einen besseren Vorschlag freuen!

0voto

Leon Tayson Punkte 4407

Ich bin nicht sicher, ob Ihre Frage richtig, aber hier geht ... Sie können einen benutzerdefinierten Validator hinzufügen (oder vielleicht das onblur-Ereignis behandeln), in Ihrem Javascript benutzerdefinierte Validierung, können Sie Page_ClientValidate() aufrufen und für Page_IsValid für Fehler überprüfen. Etwas wie der Code unten:

function customValidation()
{
    Page_ClientValidate();
    if(!Page_IsValid)
    { //run your resize script }
}

HTH,

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