在DataTextField中组合两个字段。这可能吗?
我有一个数据集,我绑定到一个列表框。但是,我想结合两个字段来组成DataTextField。这是可能的,还是我将不得不遍历数据行?在DataTextField中组合两个字段。这可能吗?
lstAddressDropdown.DataSource = dsAddress;
lstAddressDropdown.DataTextField = "StreetAddress" + "Place";
lstAddressDropdown.DataBind();
lstAddressDropdown.Items.Insert(0, new ListItem("Please select"));
值得注意的是,数据集从web服务返回,所以我不能更改任何存储过程来组合列。
可以额外列添加到这是一个计算列数据表,并用它作为你的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"
我会放弃这一点,谢谢 – 2010-11-19 10:12:04
令我惊讶的是,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,大多数时候只需要两个值。
我没有使用Linq来做到这一点(当天返回) 。必须使用数据集完成 – 2013-10-25 14:52:53
我知道这已被回答,但我认为有一个更简单的方法来解决这个问题。
修改您的选择命令并合并您要显示的2个DataTextField。
DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table";
RadioButtonList1.DataTextField = "Column1And2";
希望这会有所帮助,也许这不是最好的方式,但我认为它更容易理解。
难道你不能从数据源的一个字段中获取数据吗? – 2010-11-18 17:40:37