如何解决LINQ执行针对对应/相关项目的操作,还是databindg技术?
| 我有一个从数据库视图填充的ListBox,然后想向每个ListItem添加一个属性。想象一下,如果用户可以在页面上选择城市,然后运行一些JavaScript来过滤列表框,使其仅过滤该城市中的员工。 javascript没问题,但是我需要向每个列表项添加一个属性,以指示该员工所属的城市。当然,我可以有几个循环,其中employeeID匹配添加城市。有没有更好的方法使用数据绑定或某种LINQ查询来完成此任务?employeesListBox.DataSource = (from p in dwEntitiesContext.Employees
orderby p.name
select p).ToList();
employeesListBox.DataTextField = \"Full Name\";
employeesListBox.DataValueField = \"EmployeeID\";
employeesListBox.DataBind();
//this gives you the idea of what I want to do,//but obviously I can\'t access p.City here
//Was wondering if there was some technique of doing a join,//or some way to databind the attribute
employeesListBox.Items.Cast<ListItem>().Select(eachItem =>
eachItem.Attributes.Add(\"CityID\",p.City
/*set City attribute of the employee this listitem represents*/));
通过添加CityID属性,我的javascript / jquery将可以在用户选择其他城市时过滤列表框。请注意,我并不是要您预先过滤列表,因为每次用户选择城市时,这都需要回发。我只是向您提供这些额外的信息,因为人们经常想知道更多的背景知识,而不仅仅是手头的任务。
解决方法
您可以尝试类似的方法:
foreach(var employee in dwEntitiesContext.Employees.OrderBy(e => e.name))
{
var listItem = new ListItem
{
Text = employee.FullName,Value = employee.EmployeeID
};
listItem.Attributes.Add(\"CityID\",employee.City);
employeesListBox.Items.Add(listItem);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。