2009-08-04 5 views
0

Wie zeigen Sie verschiedene Formularfelder für verschiedene Benutzer in ASP.NET am besten an?Wie zeigen Sie verschiedene Formularfelder für verschiedene Benutzer in ASP.NET am besten an?

Hier ist ein Beispiel: Ich habe ein Formular, das TextBox1, TextBox2 und TextBox3 hat. Benutzer A kann nur TextBox1 und TextBox3 sehen. Benutzer B kann nur TextBox2 und TextBox3 sehen. ...

Wenn es viele Benutzer oder Formularfelder gibt. Es wird zu mühsam sein, die ganze Logik zu kodieren. Gibt es eine elegante Möglichkeit, dies ohne handcodierte Logik zu erreichen?

Antwort

0

Ich mag gruppieren verwandte Steuerelemente mit Panels, aber wenn die Unterschiede zwischen Gruppen von Benutzern klein sind, kann Drehen Sichtbarkeit Sichtbarkeit ein oder aus gut genug sein.

Stellen Sie sicher, dass Sie jedes unterschiedliche Szenario testen, da dies häufig der Fall ist, wenn Tests fehlschlagen.

Wenn es viele Steuerelemente gibt, kann es sich lohnen, sie dynamisch zu erstellen.

0

Wenn Sie eine rollenbasierte Autorisierung verwenden, könnten Sie in CSLA etwas Ähnliches wie ReadWriteAuthorization schreiben.
Dies ist ein Extender-Steuerelement, das schreibgeschützte oder leere Steuerelemente aktiviert/deaktiviert/festlegt, basierend darauf, dass der Benutzer die spezifische Eigenschaft lesen oder schreiben kann, an die das Steuerelement gebunden ist.
Dies könnte verbessert werden, um auch Steuerelemente ein-/auszublenden. Dies bedeutet natürlich auch, dass Ihre Geschäftsobjekte wissen müssen, welche Eigenschaften von welchen Rollen angezeigt werden können (oder nicht).

0

Eine andere Möglichkeit besteht darin, Profil in ASP zu verwenden und Steuerelementeigenschaften für jeden Benutzer in Profil zu speichern. Auf diese Weise können Steuerelementeigenschaften beim Laden der Seite geladen werden. Wie,

labelPostalCode.Text = Profile.PostalCode; 

Referenz: http://msdn.microsoft.com/en-us/library/taab950e.aspx

Verwandte Themen