2010-11-27 75 views
0
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]动态列表值

,如果有更多的行,如何通过这些指标对员工(对于如员工,[\我应该动态地获得的价值在这里。

+1

它总是更好地通过代码和101010按代码标记包围代码段。现在关于您的问题,您可以通过您的employeeInfoList。如果你不知道如何做到这一点,请按照这个http://dotnetperls.com/dictionary-keys – Waqas 2010-11-27 08:28:52

回答

0

如果我正确理解你的问题给出你可以使用LINQ列表抢一个员工。

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

这么说,我不知道你是否有一个“钥匙”对像Id或类似的员工。

要通过索引获得,你有一个更大的圆旅行(输出雇员到电网或类似的地方,允许一个点k通过你想要的员工的索引,并以这种方式访问​​单个员工)。

除非你在'EmployeeInfoProxy.GetAllEmployeeInfo()'方法中大量使用缓存,否则我会说你想要一个'GetEmployeeInfoById()',并且再次回到需要你的EmployeeInfo有一些独特的描述 - 你会让你的生活变得如此简单。

希望这会有所帮助。 干杯, 特里

[除了] 如果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 
<% } %> 

我不会说这是最好的做法 - 使用视图模型很可能代表了一种更好的方式来做到这一点,但是以上将肯定会给你一个解决方案,将在你的情况下工作。

+0

在该employeeInfoList我要返回三计数employeeInfoList = EmployeeInfoProxy.GetAllEmployeeInfo(TenantId);但它只显示第一个记录如何做浮动? – 2010-11-27 09:02:25