2010-11-18 12 views
27

私はリストボックスにバインドするデータセットを持っています。しかし、私はDataTextFieldを構成するために2つのフィールドを結合したい。これは可能ですか、またはデータ行をループする必要がありますか?DataTextFieldで2つのフィールドを結合する。これは可能ですか?

lstAddressDropdown.DataSource = dsAddress; 
lstAddressDropdown.DataTextField = "StreetAddress" + "Place"; 
lstAddressDropdown.DataBind(); 
lstAddressDropdown.Items.Insert(0, new ListItem("Please select")); 

データセットがWebサービスから戻ってくるので、ストアドプロシージャを変更して列を結合することはできません。

+0

データソースから1つのフィールドのデータを取得できませんか? –

答えて

39

計算列であるデータテーブルに追加の列を追加し、datatextfield(docs: Multi-field Data Binding)として使用できます。

だからあなたの例のために、あなたはこのような何かを行うことができ、上記:

dsAddress.Tables[0].Columns.Add("StreetAndPlace",typeof(string),"StreetAddress + Place"); 
lstAddressDropdown.DataSource = dsAddress; 
lstAddressDropdown.DataTextField = "StreetAndPlace"; 
lstAddressDropdown.DataBind(); 
lstAddressDropdown.Items.Insert(0, new ListItem("Please select")); 

"StreetAddress + ' ' + Place"

+0

私はそれを行ってくれます。ありがとう –

+1

2002年に書かれたマルチフィールドデータバインディングの記事は、今日でも役に立つと思います... –

2

して上に示した式の文字列を置換StreetAddressと場所との間のスペースを追加するごとに、あなたのクエリを変更するには、あなたの上記のクエリ名でのOracle

SELECT 
'<B>'||SHORTNAME||'</B><br/>('||DEPARTMENT||')' AS USERNAME 
FROM TABLE 

における要件 は太字で、その部門の下に表示されます

<b>Mr. Jagdeep Mankotia</b><br> 
(Web Application Development) 
-1

linqでループを書き込む必要はもうありません。は次のように表示されます。

  • 2つのフィールドを返すようにクラスを作成します。

    パブリック部分クラスEmployeeDropdownInfo { public int person_id {get;セット; } パブリック・ストリングemployee_name {get;セット; } }

  • データを取得し、必要な情報をフィルタリングして返すためにlinqを使用します。

    リストリクエスタ=(dc.sp_GetEmployees(におけるTから)新しいEmployeeDropdownInfoを(){ PERSON_ID = t.person_id、 EMPLOYEE_NAME = t.first_name + "" + t.last_name }選択)。ToListメソッド( );

    EmployeeDropdownInfo firstEntry2 =新しいEmployeeDropdownInfo(){person_id = 0、employee_name = " - 従業員を選択 - "}; requestors.Insert(0、firstEntry2); ddlRequestor.DataSource =リクエスタ。 ddlRequestor.DataTextField = "employee_name"; ddlRequestor.DataValueField = "person_id"; ddlRequestor.DataBind();

このようにして、procとドロップダウンを変更する必要はなく、ほとんどの場合2つの値しか必要としません。

+0

私はLinqを使ってこれをやっていませんでした。 。データセットを使用して完了しなければならなかったか –

0

私はこれが既に答えられていることを知っていますが、私はこの問題を解決するより簡単な方法があると思います。

selectコマンドを変更し、表示する2つのDataTextFieldを結合します。

DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table"; 

RadioButtonList1.DataTextField = "Column1And2"; 

希望する場合は、これが最良の方法ではないかもしれませんが、理解しやすいと思います。

関連する問題