2009-08-21 6 views
1

J'ai plusieurs DropDownLists sur un formulaire qui sont remplis dynamiquement pendant qu'ils descendent le formulaire tirant des données d'un DB. Les données sont toutes HTMLEncoded donc j'ai besoin de HTMLDecode les données pour afficher le texte.Aide avec une méthode pour HTMLDecode DropDownLists S'il vous plaît

J'ai créé une méthode pour le faire et de déclencher ce ondatabound 'pour chaque

ondatabound="SortHTMLModel" 
LDD

MAIS ce qui est ennuyeux, j'ai la même méthode changeant simplement le nom sur chacun DDL. Je veux une méthode unique générique que chaque DDL pourrait appeler. Voici celui du LDD appelé ddlfuel

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

Et un pour l'appelé ddlModel DDL

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

Vous voyez ma situation! Donc ennuyeux je ne peux juste pas comprendre la syntaxe pour une méthode

Répondre

1

IIRC, l'expéditeur d'un événement est le contrôle effectif, donc on peut dire aussi

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

et lier l'événement DataBound de chaque DropDownList à SortHTML

+0

Je vais essayer ça ... J'ai pensé la même chose, et j'ai essayé l'expéditeur.Items mais ça n'a pas marché - je vais le lancer comme une liste déroulante et voir si c'est travaux :) – leen3o

1

Pourquoi ne pouvez-vous pas sous-classer le contrôle DropDownList pour le faire avant qu'il rend le contrôle? Au lieu d'utiliser le stock DropDownList, vous utilisez votre liste déroulante sous-classée et la fonctionnalité se produit automatiquement.

+0

Pourriez-vous donner des exemples? Je suis toujours un intermédiaire .NET'er – leen3o

Questions connexes