我正在使用VB.Net和ASP.net,但是也欢迎使用C#代码。
我有一个客户端列表,客户端属性是:
-ClientID-
全名
样本数据:
-ClientID:1-
全名:John Binder
-ClientID:2-
全名:Leah Brown
我有一个协议列表“ lstAgreements”,它们的属性是:
-AgreementID
-clientid
-日期
样本数据:
协议ID :5客户ID
:2
日期:12/30/16
协议ID :7客户ID
:1
日期:12/29/16
“客户”和“协议”是具有现有关系的实体类:一个客户可以拥有许多协议。
我可以通过以下方式检索所有协议:
Dim lstAgreements As List(Of Agreement) =GetAllAgreements()
协议类具有获取客户端对象的属性:
lstAgreements(0).ClientObject.FullName
然后,我可以使用“ lstAgreements”填充下拉列表
myDropDownList.DataSource = lstAgreements
myDropDownList.DataValueField = "AgreementID"
myDropDownList.DataTextField = "ClientID"
myDropDownList.DataBind()
我的问题是,如何在下拉列表中显示“ ClientFullName”而不是“ ClientID”?
我正在尝试此代码,但它不起作用:
myDropDownList.DataSource = lstAgreements
myDropDownList.DataValueField = "AgreementID"
myDropDownList.DataTextField = "ClientObject.FullName"
myDropDownList.DataBind()
我注意到在DataList控件中使用“ ClientObject.FullName”可以正常工作,但在“下拉列表”中则不能。
有什么建议吗?
提前致谢
您可以遍历第一协议,而不是使用数据源/数据绑定并自己创建列表项?
就像是
foreach (Agreement a in lstAgreements)
{
myDropDownList.Items.Add(new ListItem(a.ClientObject.FullName, a.AgreementId))
}
或使用linq从客户端列表中设置您的全名(如果您没有全名方法来按协议返回全名)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句