繁体   English   中英

动态列表值

[英]Dynamic List Values

Dictionary<string, EmployeeInfo> employeeInfoList = new Dictionary<string, EmployeeInfo>();

employeeInfoList = EmployeeInfoProxy.GetAllEmployeeInfo(TenantId);

if (employeeInfoList != null)
{
    List<EmployeeInfo> employee = new List<EmployeeInfo>(employeeInfoList.Values);

    ViewData["Name"] = employee[0].Name; 
    ViewData["Salary"] = employee[0].Salary;
    ViewData["Department"] = employee[0].Department;
    ViewData["Designation"] = employee[0].Designation;
    ViewData["Address"] = employee[0].Address;
    ViewData["Address1"] = employee[0].Address1;
}

上面的代码工作正常。如果员工只有一条记录,那么我已对employee[0]了硬编码。

如果还有更多行,如何将这些索引传递给员工(例如,员工[\\ i应该在此处动态获取值]。

如果我正确理解了您的问题,给定一个列表,您可以使用linq来雇佣一名员工。

EmployeeInfo singleEmployee = employee.Where( x => x.Id).SingleOrDefault();
if (singleEmployee != null)
{
   do something here
}

就是说,我不知道您是否有反对员工的“钥匙”,例如Id或类似的东西。

要获得索引,您需要进行更大的往返(将临时任务输出到网格或类似的东西,允许单击以传入想要的员工的索引,然后以这种方式访问​​单个雇员)。

除非您在'EmployeeInfoProxy.GetAllEmployeeInfo()'方法中大量使用缓存,否则我会说您想要一个'GetEmployeeInfoById()',我会再次强调您的EmployeeInfo必须具有唯一ID一些描述-您将使您的生活变得更加轻松。

希望这可以帮助。 干杯,特里

[此外]如果employeeListInfo具有3个条目,那么访问它们中的每一个,我会说最好的方法是创建一个视图模型(看起来像是MVC),但是最坏的情况下,您可以执行以下操作:

List<EmployeeInfo> employee = new List<EmployeeInfo>(employeeInfoList.Values);

ViewData["Employees"] = employee;

然后在您看来,只需执行以下操作:

<% foreach(EmployeeInfo employeeDetails in ViewData["Employees"] as List<EmployeeInfo>) { %>
   <!-- you will be looping through each employee here, so you can do as you wish
<% } %>

我不会说这是最佳实践-使用ViewModel可能代表一种更好的方法,尽管以上内容肯定会为您提供适合您情况的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM