2009-08-21 2 views
1

Ich habe mehrere Dropdownlists auf einer Form, die dynamisch aufgefüllt werden, da sie die Form zieht Daten aus einer DB nach unten zu verschieben. Die Daten sind alle HTMLEncodiert, also muss ich HTMLDecode die Daten, um den Text anzuzeigen.Hilfe mit einem Verfahren zur HTMLDecode Dropdownlists Bitte

ich eine Methode erstellt, dies zu tun und lösen es für jeden

DDL ‚OnDataBound‘
ondatabound="SortHTMLModel" 

aber was ist ärgerlich Ich habe das gleiche Verfahren nur auf jedem der DDL-Namen zu ändern. Ich möchte eine generische einzelne Methode, die jede DDL aufrufen kann. Hier ist die eine für die DDL genannt ddlfuel

protected void SortHTML(object sender, EventArgs e) 
{ 
    foreach (ListItem item in ddlFuel.Items) 
    { 
     item.Text = Server.HtmlDecode(item.Text); 
    } 
} 

und eine für die DDL genannt ddlModel

protected void SortHTMLModel(object sender, EventArgs e) 
{ 
    foreach (ListItem item in ddlModel.Items) 
    { 
     item.Text = Server.HtmlDecode(item.Text); 
    } 
} 

Sie sehen, meine missliche Lage! So ärgerlich ich einfach nicht die Syntax herauszufinden, kann für ein Verfahren

Antwort

1

IIRC, der Absender eines Ereignisses ist die tatsächliche Kontrolle, so dass Sie auch

protected void SortHTML(object sender, EventArgs e) 
{ 
    foreach (ListItem item in ((DropDownList)sender).Items) 
    { 
     item.Text = Server.HtmlDecode(item.Text); 
    } 
} 

und binden jedes Dropdownlist des Databound-Ereignis SortHTML

+0

werde ich geben, dass ein Versuch ... ich gleich dachte, und versuchten sender.Items aber es hat nicht funktioniert - ich es als einen Dropdownlist gegossen werden und sehen, ob es funktioniert :) – leen3o

1

Warum können Sie nicht die Dropdownlist Steuerelement Unterklasse, das zu tun, bevor er die Kontrolle macht? Anstatt die DropDownList-Aktie zu verwenden, verwenden Sie dann Ihre untergeordnete Dropdown-Liste und die Funktionalität wird automatisch ausgeführt.

+0

Könnten Sie keine Beispiele sagen könnte? Ich bin immer noch ein Zwischen .NET'er – leen3o