2010-11-27 80 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