2011-06-23 3 views
4

私はそのdropdown.forの2つの列をバインドしたいado.netエンティティフレームワークを使用しているという点でasp.netアプリケーションがあります。2つの列の値を別々のコンマ(、)でドロップダウンする方法

データベース内First_name、Last_nameの2つの列。これらの2つの列の値をC#を使用して1つのドロップダウンにします。

どうすればよいですか?

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'請負業者の最初のパラメータはアイテムテキストで、2番目のパラメータはアイテム値ですので、aspxに' DataTextFiled'と 'DataValueFiled'属性は不要です –

2

があなたのためにこれを行い、オブジェクトのカスタムプロパティを定義で試してみてください。

あなたのオブジェクトとの明快

のために編集あなたは何かを書くだろう

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

} 

Clientsエンティティの読み取り専用プロパティFullNameが表示されます。

その後、あなたはそれがコレクション全体を列挙する必要がないように私が代わりddlclientname.Count > 0Any方法を使用することをお勧めしたい、次の

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(); 
    } 

} 

を行うことができます。

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(); 

     } 

これで最も効果的です。

関連する問題