2009-05-21 6 views
0

J'ai une table avec 3 colonnes ID, Name et shortname. Je lie ceci à un contrôle ASP.NET dropdonwlist. J'ai spécifié DataTextField comme ID, DataValueField comme Name.ASP.NET Liste déroulante: Liaison Plus de valeur pour l'option

Maintenant, la liste déroulante rend l'élément de liste correctement et je suis capable de sélectionner l'ID de l'option sélectionnée. Je veux avoir le nom court aussi avec l'ID. Est-ce qu'il y a un moyen de faire ça? C'est à dire. Je souhaite lire l'ID, le nom abrégé et le nom de l'option sélectionnée dans la liste déroulante ASP.NET

Des idées?

Répondre

1
public class SomeClass 
{ 
    public int Id { get; set; } 
    public string ShortName { get; set; } 
    public string Name { get; set; } 

    public string ShortNameWithId 
    { 
     get 
     { 
      return string.Format("{0} - {1}", Id, ShortName); 
     } 
    } 
} 

Utilisez maintenant ShortNameWithId, intead de Id. Donc, ce serait DataBound à la zone de liste comme une sorte de collection (de UneClasse) càd, IEnumerable

0
Protected Function Fld(ByVal pos As Integer, ByVal mfld As String) As String 
    Dim i, j, k As Integer 
    For i = 1 To pos 
     k = j + 1 
     j = InStr(k, mfld, Chr(13)) 
     j = IIf(j = 0, Len(mfld) + 1, j) 
    Next 
    Return Mid(mfld, k, j - k) 
End Function 

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) 
    Label1.Text = Fld(1, DropDownList1.SelectedItem.Value) 
    Label2.Text = Fld(2, DropDownList1.SelectedItem.Value) 
End Sub 

Ou vous pouvez utiliser:

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) 
    Dim Fld As Array 
    Fld = DropDownList1.SelectedItem.Value.Split(Chr(13)) 
    Label1.Text = Fld(0) 
    Label2.Text = Fld(1) 
End Sub 

Vous pouvez avoir plus de colonnes dans DataValueField aussi .

0
drp.Items.Clear(); 
    foreach (var item in sourceCollection) 
    { 
     drp.Items.Add(new ListItem(item.ID+ "," + item.Name + "," + item.ShortName, item.ID)); 
    } 

    //read selected text or value like this: 

    string txt = drp.SelectedItem.Text; 
    string val = drp.SelectedItem.Value; 
Questions connexes