Validator-controls müssen immer mit Display="Dynamic"

ich habe dies für einige Zeit jetzt, aber ich kann nicht scheinen, um in der Lage sein, um die Antwort zu finden... Google nicht wirklich helfen mich heute!

Ich arbeite an einer C# - website, die verwendet eine Menge von Formen mit einer Menge von Validierung auf. Große Formen, die abgetippt werden müssen von hand (da auch keine Probleme obwohl).

Das problem das ich habe ist, dass ich immer will, dass meine ValidationControls haben die Eigenschaft Display auf dynamic gesetzt.

Ich gefunden habe, eine Arbeit um, aber ich bin nicht davon überzeugt, dass dies die beste Lösung.

Derzeit habe ich eine BaseValidatorControlAdapter, legt die Prüfungen display-Typ auf "Dynamic" wie folgt:

public class BaseValidatorControlAdapter : ControlAdapter
{
    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        System.Web.UI.WebControls.BaseValidator _control = (System.Web.UI.WebControls.BaseValidator)this.Control;
        _control.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
        base.Render(writer);
    }
}

Dies ist dann triggerd, indem ein App_Browser die wie folgt aussieht

<browsers>
    <browser refID="Default">
        <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.BaseValidator"
                     adapterType="BaseValidatorControlAdapter" />
        </controlAdapters>
    </browser>
</browsers>

Meine Frage für Sie ist. Ist es möglich für mich, um den Standard-Wert von Display für jede validator-Steuerung. Da meine aktuelle Lösung, nur überschreibt, was es jetzt ist richtig und es gibt keine Möglichkeit, dies zu ändern. Deshalb, wenn die situation arrises, dass ich etwas anderes brauchen, dann dynamisch in die Anzeige-option gibt es keine Lösung für Sie.

Ich bin fast überzeugt, dass es eine bessere Lösung für dieses.

Jede Beratung wird geschätzt!

Bearbeiten 2. august 2012:

Ich schließlich ließ sich mit der Lösung um die Standardeinstellung zu überschreiben asp.net Steuerelemente und fügen Sie den folgenden Konstruktor Ihnen

public controlname ()
  : base ()
{
    this.Display = "Dynamic";
}

Ich fügte hinzu, all diese Elemente zu einem Namensraum und jetzt kann ich mich

<validator:RequiredField ID="RqrdFld_x" runat="server" Display="Static" />

Im wesentlichen überschreiben der default-Wert in meinem control-definition und überschreiben der default-Anzeige Wert des Dynamischen in den Konstruktor.

InformationsquelleAutor bkwint | 2012-07-28
Schreibe einen Kommentar