我将下拉列表绑定到数据源,并在代码隐藏上定义了text和value列。
DropDownList1.DataTextField = "Product_Name"
DropDownList1.DataValueField = "Product_ID"
工作正常。但我想再向DataTextField
,Order_Date
分配一列。我尝试了这个机会:
DropDownList1.DataTextField = "Product_Name"+"Order_Date"
DropDownList1.DataValueField = "Product_ID"
但它没有用。是否可以在DataTextField
上显示多个值?
答案 0 :(得分:4)
是的,可以通过以下代码尝试:
var datasource = from x in products
select new {
x.Id,
x.Code,
x.Description,
DisplayField = String.Format("{0} ({1})", x.Code, x.Description)
};
DropDownList1.DataSource = datasource;
DropDownList1.DataValueField = "Id";
DropDownList1.DataTextField = "DisplayField";
DropDownList1.DataBind();
答案 1 :(得分:1)
我使用对象datasource
来填充dropdownlist
并在模型中创建了一个新属性
public string Datatextfield
{
get
{
return Name + " - Date: " + Date.ToShortDateString();
}
set { Datatextfield = value; }
}
在aspx
中我使用了这样的属性:
<asp:DropDownList ID="ddlList" DataSourceID="obj" runat="server" DataTextField="Datatextfield" DataValueField="ID">
答案 2 :(得分:0)
事实证明,最好的方法是直接从数据库中获取价值,因为Freak_Droid建议我跟着他的方式。