在DataTextField中组合两个字段。这可能吗?

问题描述:

我有一个数据集,我绑定到一个列表框。但是,我想结合两个字段来组成DataTextField。这是可能的,还是我将不得不遍历数据行?在DataTextField中组合两个字段。这可能吗?

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

值得注意的是,数据集从web服务返回,所以我不能更改任何存储过程来组合列。

+0

难道你不能从数据源的一个字段中获取数据吗? – 2010-11-18 17:40:37

可以额外列添加到这是一个计算列数据表,并用它作为你的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与地方之间的空间"StreetAddress + ' ' + Place"

+0

我会放弃这一点,谢谢 – 2010-11-19 10:12:04

+1

令我惊讶的是,2002年编写的多字段数据绑定文章今天仍然有帮助... – 2015-07-15 17:24:10

替换上面显示的表达式字符串修改您的查询,按您的要求 在甲骨文

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

在上面的查询名称将显示在大胆和它下面的部门将显示 像:

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

你再也不需要用linq编写循环了。

  • 创建一个类来返回你的两个字段。

    public partial class EmployeeDropdownInfo public int person_id {get;组; } public string employee_name {get;组; }}

  • 让您的数据,并使用LINQ筛选和返回你所需要的。

    列表请求者=(从吨dc.sp_GetEmployees() 选择新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 = requestors; ddlRequestor.DataTextField =“employee_name”; ddlRequestor.DataValueField =“person_id”; ddlRequestor.DataBind();

这样,您不必改变proc和dropdowns,大多数时候只需要两个值。

+0

我没有使用Linq来做到这一点(当天返回) 。必须使用数据集完成 – 2013-10-25 14:52:53

我知道这已被回答,但我认为有一个更简单的方法来解决这个问题。

修改您的选择命令并合并您要显示的2个DataTextField。

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

RadioButtonList1.DataTextField = "Column1And2"; 

希望这会有所帮助,也许这不是最好的方式,但我认为它更容易理解。