2009-03-03 8 views
2

J'ai un contrôle DropDownList qui est rempli via le côté serveur.asp.net - Comment rendre les balises html dans une propriété de texte ListItem?

J'utilise un pour chaque [datarow] boucle et créer une nouvelle ListItem

Dans DataRow est une colonne avec l'ID « titre »; ce champ peut contenir soit < B> soit < I> tags. (Ex. "[Titre] dans < i> [Titre parent] </i>")

Le problème que je suis confronté est quand je [DropDownList] .Controls.Add ([ListItem]), il rend le texte littéralement ... donc il affiche littéralement les balises I> < B> ou < et ne met pas en gras/en italique la police.

J'ai essayé de trouver une réponse, quelqu'un peut-il me diriger dans la bonne direction?

Répondre

4

Un contrôle DropDownList est rendu en tant qu'élément select dans le code hhtml et les contrôles ListItem sont rendus en tant qu'éléments option. Un élément option ne prend pas en charge le formatage HTML dans le texte. Certains navigateurs peuvent prendre en charge le style de l'ensemble du texte option, mais aucun navigateur ne prend en charge le style d'une partie du texte. Si vous avez besoin de la mise en forme html dans la liste déroulante, vous devez soit créer votre propre liste déroulante de remplacement en utilisant DHTML, soit trouver quelqu'un qui l'a déjà fait.

2

Vous pouvez essayer d'ajouter des attributs de style à chaque liste, mais je ne suis pas sûr de la façon dont cela est universellement supporté par les différents navigateurs. Relecture de votre question J'ai remarqué que vous vouliez mélanger du texte normal et gras dans un seul élément de la liste. Je suis presque certain que ce n'est pas pris en charge en utilisant la liste déroulante standard. Je pense que vous aurez besoin d'un coup d'oeil à l'aide d'un contrôle basé sur CSS qui simule une liste déroulante.

+0

Si vous avez lu ma question, je dis que je suis préoccupé par le formatage police avec des balises HTML à l'intérieur de la propriété Text, le formatage pas * entier * ListItem. S'il vous plaît lire plus attentivement à l'avenir avant de répondre. –

+1

Dûment noté. À l'avenir, si je devais décider de vous aider à nouveau, je serais * sûr * de lire plus attentivement. –

+0

Merci pour la mise à jour Mike; J'avais peur de ça... –

0

Si vous avez besoin de la mise en forme en gras et en italique, je vous recommande d'utiliser un contrôle .net Literal pour servir d'espace réservé pour votre liste déroulante. Ensuite, lors de la publication ou de la liaison de données, vous pouvez parcourir votre ensemble de résultats, générer le code HTML manuellement (car ce n'est pas si complexe), puis insérer le code HTML généré dans le contrôle Literal.

+0

qui ne fonctionne pas :( un test simple pour vérifier vous-même: Merci d'avoir essayé si :) –

+0

Essayez d'utiliser une feuille de style CSS/code pour les ListItems dans la liste. Malheureusement, la plupart des choses que je vois indique que vous ne pouvez l'appliquer qu'à l'ensemble de l'entrée, et cela ne fonctionne pas dans IE. –

0

En effet, cela n'est pas possible.

Vous avez quelques alternatives bien qu'elles présentent quelques inconvénients mineurs, car elles ne se comportent pas exactement comme une liste déroulante. Dans la plupart des solutions, vous ne pouvez choisir une option qu'avec la souris au lieu de taper quelques caractères. Bien sûr, il est possible de programmer ce comportement, mais cela prend du temps et des efforts.

Alternatives J'ai trouvé sont:

jquery solution from marghoob suleman

jquery solution from sanchez salvador

Questions connexes