Format DropDownList.TextValue
Ma procédure stockée est comme ça
SELECT Id, StudentName
FROM xyz
J'ai une liste déroulante dans asp.net qui, j'en suis de chargement :
ddlA.DataSource = //Some source
ddlA.DataTextField = "Id" + " -" + "StudentName";
ddlA.DataValueField = "Id";
ddlA.DataBind();
ddlA.Items.Insert(0, new ListItem(" Select one", "0"));
Mais à la Databind()
déclaration, j'obtiens cette erreur:
Système.Web.HttpException: Liaison De Données: 'Système.Les données.DataRowView' ne contient pas une propriété avec le nom "Id-StudentName'.
Dans la partie texte de la liste déroulante, je veux afficher la concaténation de la valeur de Id - StudentName
.
Comment puis-je le faire?
source d'informationauteur Zerotoinfinity
Vous devez vous connecter pour publier un commentaire.
Il semble que ce n'est pas réalisable automatiquement, par exemple, voir cette connexion MS billet.
Donc le faire par programmation:
ou
Vous pouvez utiliser LINQ pour en faire une nouvelle source de données contenant un displayfield qui est mis en forme, la façon dont vous voulez qu'il soit, comme:
Vous pouvez l'obtenir par le code suivant
Pour plus de compréhension reportez-vous ici.
Si la source de données est une Table de données, vous pouvez ajouter une "expression" (colonne calculée) à la table. L'expression de la nouvelle colonne devrait ressembler à ceci:
Vous pouvez modifier votre procédure stockée:
Et de modifier la liaison:
Si vous avez liste de classe pour remplir la liste déroulante, c'est probablement mieux à faire;
c'est très simple, il suffit de vous concat champs dans la requête
alors vous construire une liste déroulante