0
votes

Afficher le nombre de tâches pour chaque identifiant

J'ai la page où j'affiche la liste des tâches (avec jQuery DataTable) et je souhaite un nom d'employé d'affichage avec le nombre de tâches de Thire. Par exemple:

Smith (2) | John (1) | Thomas (1) P>

Tables: P>

attribuName: p>

attribuer nom p>

tâches (assignade ): P>

 tâches p>

ici ce que j'ai fait: p>

Ici, je reçois la liste des tâches et sélectionnez des propriétés: p> xxx pré>

elle itérant sur les résultats pour obtenir compter chaque identifiant: p> xxx pré>

mettre tout le code ensemble (pour la simplicité, je supprime le code inutilisé ): P>

public List<ItemGroup> ItemGroups { get; set; }
public class ItemGroup
{

    public ItemGroup()
    {

    }

    public int OpgaveServicesId { get; set; }
    public string Opgaver { get; set; }
    public string Opretteaf { get; set; }
    public DateTime? OpretteDato { get; set; }
    public int Opgaveid { get; set; }
    public int OpgaveSmartid { get; set; }
    public string Opgavestatus { get; set; }
    public int? Assingid { get; set; }
    public string EmployeeNames { get; set; }
}


3 commentaires

J'ai une suggestion ici. Supprimer opretteafe de la table des tâches, c'est redondant


var assigncount = ... - il semble que vous créiez simplement une variable à l'intérieur de votre boucle de Foreach qui sera jetée.


Vous pouvez également vous s'il vous plaît ajouter les classes d'entités?


3 Réponses :


0
votes

Portée de ASSIFCOUNT CODE> La variable est limitée à la boucle de Foreach, c'est-à-dire que vous obtenez assingID code> et EMBALINES code> comme une null à la fin de programme.

Pour résoudre ce problème, stockez chaque attribucount code> dans la liste, de sorte que vous puissiez accéder à tous les comptes de foreach p>

...
//Define list of List of ItemGroup, as AssignCount is of type List<ItemGroup>
List<List<ServicetasksVM.ItemGroup>> itemGroups = new List<List<ServicetasksVM.ItemGroup>>();   
foreach (var item in result)
{
    var AssignCount = db.AssignName.Where(c => c.Id == item.Assingid)
          .GroupBy(x => x.Name)
          .Select(b => new ServicetasksVM.ItemGroup { Assingid = b.Count(), EmployeeNames= b.Key })
          .ToList(); //Convert To List
   
    itemGroups.Add(AssignCount);  //Add each `AssignCount` to itemGroups
}

//Now list of AssignCount(s) is(are) accessible outside foreach loop
...


4 commentaires

Oui, je l'ai fait mais j'ai eu une erreur: impossible de convertir des collections.Generic.List to ServiceTasksvm.itemgroup


var itemgroups = nouvelle liste (); foreach (Var Résultat) {var assigncount = db.assignName.Où (c => c.id == item.assingid) .groupby (x => x.name) .Sélectionnez (b => nouveau serviceTasksvm.itemgroup { Assingidid = b.count (), Emporteename = B.Key}); itemGroups.add (itemgroups); <- Ici, je reçois une erreur,}


Pas de problème :) erreur disparaît. Mais il y a un problème d'espoir que vous pourrez m'aider :) quand j'ai cette ligne JSONRESULT JSON JSON = JSON (Nouvelle {Data = Résultat}, JSONRQUESTBEHAVORT.AXIALT) - ASSINDID et EMBALIALES sont NULL, mais lorsque je change cette ligne à JSONRESULT JSON = JSON (Nouveau {Data = itemGroups} - AssingID et les noms d'emploi ne sont pas nuls, mais je n'ai pas de propriétés d'autres que cela va simplement revenir à la convivialité et à l'emploi et non les autres.


Laissez-nous Continuer cette discussion dans le chat .



0
votes

Votre pour La boucle est en train de compter et de l'attribuer à la variable attribue qui n'existe que dans la portée de la boucle . Vous devez capturer ce résultat dans une variable située en dehors de la portée de la boucle pour réussir celle de votre vue.

quelque chose comme: xxx


0 commentaires

0
votes

variable assigncompt est local dans la forecheche boucle. mieux créer une collection en dehors de la boucle et continuer à y ajouter à l'intérieur de la boucle.


0 commentaires