使用asp.net Web表单,我需要在每个列表项中存储其他数据(value
字段和text
字段除外)。
这是我的数据源:
class Person
{
public string Name {get;set;}
public string PersonId {get;set;}
public string PersonType {get;set;}
}
List<Person> lista = GetPersons();
ListBox1.DataTextField = "Name";
ListBox1.DataValueField = "PersonId";
ListBox1.DataSource = lista;
ListBox1.DataBind();
该DataTextField
是名称。该DataValueField
是PERSONID,但我也想给PersonType属性绑定,这样,当我检索的网页提交用户选择的项目:
ListItemCollection items = ListBox1.Items;
foreach (ListItem item in items)
{
if (item.Selected == true)
{
// Here I want to retrive also
// the PersonType attribute
string personType = item.????
}
}
我该如何实现?
如评论中所述,您的建议并不容易完成。ListItem仅轻松支持值和文本。
作为解决方法,我建议您仅通过存储在ListItem中的ID来检索此人:
List<Person> lista = GetPersons();
ListItemCollection items = ListBox1.Items;
foreach (ListItem item in items)
{
if (item.Selected == true)
{
// Here I retrieve the PersonType by matching the ID
var person = lista.FirstOrDefault( person => person.PersonId == item.value);
// You may want to check for null...
string personType = person.PersonType;
}
}
另外,您可能希望创建一个直接获取Person
by的函数PersonId
,因为这似乎是您经常需要的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句