组合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和Place之间添加空格,请将上面显示的表达式字符串替换为"StreetAddress + ' ' + Place"
根据Oracle中的要求修改查询
SELECT ''||SHORTNAME||'
('||DEPARTMENT||')' AS USERNAME FROM TABLE
在上面的查询名称将以粗体显示,在下面它将显示如下部分:
Mr. Jagdeep Mankotia
(Web Application Development)
我知道这已经回答了,但我认为有一种更简单的方法可以解决这个问题。
修改select命令并组合要显示的2 DataTextField。
DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table"; RadioButtonList1.DataTextField = "Column1And2";
希望这会有所帮助,也许这不是最好的方式,但我认为它更容易理解。
你永远不需要用linq编写循环了。
-
创建一个类以返回两个字段。
public partial class EmployeeDropdownInfo {public int person_id {get; 组; public string 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 = new EmployeeDropdownInfo(){person_id = 0,employee_name =“ – 选择一个员工 – ”}; requestors.Insert(0,firstEntry2); ddlRequestor.DataSource =请求者; ddlRequestor.DataTextField =“employee_name”; ddlRequestor.DataValueField =“person_id”; ddlRequestor.DataBind();
这样您就不必更改proc和下拉列表,大多数时候只需要两个值。