ich ein Usercontrol A haben dieJavascript Interaktion zwischen ASP.NET Web Controls
- ein Drop-Down enthält
- ein Platzhalter
Zur Laufzeit der Platzhalter wird mit einigen Usercontrol B. bestückt werden
Es gibt bestimmte Zeiten, die ich das Javascript onchange-Ereignis in der Dropdown-Liste abfangen muss, um eine javascript-Funktion in B aufzurufen (um eine Client-Aktualisierung von B zu tun). Was ist ein gutes Design/eine gute Vorgehensweise, um dies zu tun?
Die naive Art und Weise ist die asp zu machen: Dropdownlist ein öffentliches Mitglied dann in eine öffentliche Methode B senden:
// In controlling code
...
userControlB.Initialize(userControlA.TheDropDownList);
...
// In usercontrol B
public void Initialize(DropDownList dropdownFromA)
{
dropdownFromA.Attributes.Add("onchange", "myBfunction()");
}
Aber etwas riecht mit diesem Ansatz schlecht. Ich möchte A und B so locker wie möglich halten. Irgendwelche besseren Ideen?
+1 Ich denke, Ihre asp.net Steuerelemente entkoppelt zu halten ist von entscheidender Bedeutung, vor allem in Client-Skripten. Spart viel Zeit und Debugging (lesen Sie Geld: P), wenn Sie Ihre App aktualisieren. – Phil
Das sieht interessant aus! Einige Newbie-Fragen: Nehmen wir an, das Control A hat zwei Drop-Downs und so zwei mögliche Ereignisse, das heißt, dass wir zwei Beobachter brauchen, o1 und o2? Wie kennt die Kontrolle B die Namen der beiden Beobachtervariablen, so dass sie ein o1script() ausführen kann? – Ying