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我应该在这里动态获取值]。
答案 0 :(得分:0)
如果我理解你的问题,给定一个List你可以使用linq来抓住一个雇员。
EmployeeInfo singleEmployee = employee.Where( x => x.Id).SingleOrDefault();
if (singleEmployee != null)
{
do something here
}
说,我不知道你是否有像'Id或类似的人那样对员工有“钥匙”。
为了获得索引,您有一个更大的往返(将员工输出到网格或类似的东西,允许点击通过您想要的员工的索引,并以这种方式访问单个eployee)。
除非你在'EmployeeInfoProxy.GetAllEmployeeInfo()'方法中大量使用缓存,否则我会说你想要一个'GetEmployeeInfoById()',我会再次回到你的EmployeeInfo的需要一些描述的独特ID - 您将使您的生活变得更加轻松。
希望这会有所帮助。 干杯, 特里
[另外] 如果employeeListInfo有3个条目,那么为了访问它们中的每一个我会说最好的方法是创建一个viewmodel(看起来这是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可能代表了一种更好的方法,但上述内容肯定会为您提供适用于您的解决方案。