Pour obtenir le nombre d'enregistrements des soumissions stockées, injectez ou résolvez un IRepository<Submission>
et utilisez la méthode Count()
pour compter tous les éléments. Notez que la méthode Count()
accepte une expression, ce qui vous permet de filtrer par nom de formulaire par exemple. Pour référence, c'est ce que la classe Submission
ressemble:
namespace Orchard.DynamicForms.Models {
public class Submission {
public virtual int Id { get; set; }
public virtual string FormName { get; set; }
[StringLengthMax]
public virtual string FormData { get; set; }
public virtual DateTime CreatedUtc { get; set; }
}
}
Lorsque vous avez un IRepository<Submission>
, c'est comment vous comptez toutes les soumissions sous une forme appelée « MyForm »:
var count = submissionRepository.Count(x => x.FormName == "MyForm");
Si vous ne pas avoir un contrôleur ou d'une partie personnalisée ou quoi que ce soit d'injecter cette IRepository dans, alors vous pouvez résoudre le référentiel forme directement votre point de vue comme celui-ci:
@{
var submissionRepository = WorkContext.Resolve<IRepository<Submission>>();
var submissionCount = submissionRepository.Count(x => x.FormName == "MyForm");
}
Assurez-vous d'importer les espaces de noms propres:
Orchard.DynamicForms.Models
pour Submission
Orchard.Data
pour IRepository<T>
Cependant, si vous avez besoin d'afficher ce numéro dans plusieurs endroits, il est préférable de créer une forme si que vous pouvez le réutiliser. Mieux encore serait de ne pas résoudre le référentiel à partir du modèle de forme directement, mais via un IShapeTableProvider
. La principale raison qui devient clair lorsque vous démarrez votre modèle de remplaçant forme ou commencez à fournir alterne forme, aussi bien dans quels cas vous aurez une logique double dans tous vos modèles de forme, ce qui est pas très sec bien sûr. Et il y a le problème plus philosophique de la séparation des préoccupations: vous ne voulez pas de code d'accès aux données dans vos vues. Au contraire, utilisez ce code à partir d'un contrôleur, d'un pilote ou d'un fournisseur de table de formes.
Un grand merci Spike, vous avez sauvé ma journée! –
Vous devez accorder la réponse alors;) –
Je suis désolé que je cliqué sur le bouton utile jusqu'à mais sans réputation assez. –