2011-06-23 39 views
4

我有一個asp.net應用程序,因爲我使用ado.net實體框架,我想在該下拉列表中綁定兩列。例如:如何使用單獨的逗號(,)在下拉列表中綁定兩列值

在數據庫中它們的兩列First_name,Last_name。我希望這兩列值使用C#進入單個下拉列表。

如何做到這一點?

public void BindClients() 
{ 
    //To Bind the Client Names for Searching Option 
    var ddlclientnames = (from ddl in mortgageentity.Clients select ddl).ToList(); 
    if (ddlclientnames.Count() > 0) 
    { 
     ddlsearchclient.DataSource = ddlclientnames; 
     ddlsearchclient.DataValueField = "Client_ID"; 
     ddlsearchclient.DataTextField = "LastName"; 
     ddlsearchclient.DataBind(); 
    } 
} 
+0

您使用的是哪個版本的實體框架? .NET的哪個版本? – msarchet

+0

發佈你到目前爲止。 – Hogan

+0

我使用4.0版本 –

回答

0

除非您使用全名很多,否則我會建議您在選擇中使用匿名類型。

這也限制了將在您的選擇和其他開銷中完成的數據量。

var ddlclientnames = (from ddl in mortgageentity.Clients 
       select new { id = ..., FullName = FirstName + Lastname}.ToList(); 
+0

嗨,感謝你給它的代碼工作很好.. –

0

試試這個

ddl.Items.Clear(); 
    foreach (var item in myCollection) 
    { 
     ddl.Items.Add(new ListItem(item.FirstName + "," + item.LastName, item.ID)); 
    } 
+0

嗨,感謝您給予回覆,我如何才能找到datatextfiled和datavaluefiled請tellme。 –

+0

「ListItem」承包商的第一個參數是項目文本,第二個參數是項目值,所以你不需要DataTextFiled和DataValueFiled屬性在你的aspx –

2

你可以做的是,這是否適合你的對象定義自定義屬性:

編輯的清晰度與你的對象

你會寫如

public partial class Clients 
{ 
    public string FullName 
    { 
     get { return String.Format("{0}, {1}", LastName, FirstName); } 
    } 

} 

這將給你Clients實體上的只讀屬性FullName

然後,你可以做以下

public void BindClients() 
{ 
    //To Bind the Client Names for Searching Option 
    var ddlclientnames = (from ddl in mortgageentity.Clients select ddl).ToList(); 
    if (ddlclientnames.Any) 
    { 
     ddlsearchclient.DataSource = ddlclientnames; 
     ddlsearchclient.DataValueField = "Client_ID"; 
     ddlsearchclient.DataTextField = "FullName"; 
     ddlsearchclient.DataBind(); 
    } 

} 

我也建議使用Any方法,而不是ddlclientname.Count > 0的,因爲它不要求枚舉整個集合。

0

DataSet ds = MyDataSet();

 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 

      dropLojas.Items.Add(ds.Tables[0].Rows[i]["COLUNA1"].ToString() + ds.Tables[0].Rows[i]["COLUNA2"].ToString() + ds.Tables[0].Rows[i]["COLUNA3"].ToString()); 
      dropLojas.DataValueField = ds.Tables[0].Rows[i]["COLUNA1"].ToString(); 

     } 

你可以用這個做的最好。