2010-11-27 3 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; 
} 

Le code ci-dessus fonctionne correctement.Si l'employé n'a qu'un seul enregistrement, j'ai codé en dur employee[0].Dynamic List Values ​​

s'il y a plus de lignes, comment passer les index à l'employé (par employé, par exemple [\ i doit obtenir la valeur dynamique ici].

+1

Il est toujours mieux pour entourer votre morceau de code avec étiquette de code par highligthing le code et en appuyant sur 101010. Maintenant, en ce qui concerne votre question, vous pouvez par le biais de votre employeeInfoList. si vous ne savez pas comment faire s'il vous plaît suivre cette http://dotnetperls.com/dictionary-keys – Waqas

Répondre

0

Si je comprends bien votre question, étant donné une liste que vous pouvez utiliser LINQ de saisir un seul employé.

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

cela dit, je ne sais pas si vous avez une « clé » contre l'employé comme Id ou similaire.

pour obtenir par index, vous avez un plus grand rond trip (sortie des emploees sur une grille ou quelque chose de similaire, permettant un clic k qui passe dans l'index de l'employé que vous voulez, et accéder au éployée unique de cette façon). Sauf si vous employez beaucoup la mise en cache dans la méthode 'EmployeeInfoProxy.GetAllEmployeeInfo()', je dirais que vous voulez un 'GetEmployeeInfoById()' et encore une fois, je vais revenir à la nécessité de votre EmployeeInfo à avoir un identifiant unique de quelque description - vous rendrez votre vie tellement plus facile.

Espérons que cela aide. Vive, Terry

[en plus] si employeeListInfo dispose de 3 entrées, puis d'accéder à chacun d'eux, je dirais que la meilleure façon serait de créer un viewmodel (il ressemble à ceci est MVC), mais le pire scénario que vous pourriez faire:

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

ViewData["Employees"] = employee; 

alors à votre avis, juste faire:

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

Je ne dirais pas que cela est la meilleure pratique - en utilisant un ViewModel représenterait probablement une meilleure façon de faire , bien que ce qui précède vous donnera certainement une solution qui fonctionnera dans votre cas.

+0

dans ce employeeInfoList je retourne trois employeeInfoList nombre = EmployeeInfoProxy.GetAllEmployeeInfo (TenantID); mais il affiche seulement le premier enregistrement comment faire dyanamic? –

+0

ont mis à jour ma réponse en fonction de vos besoins. –