IViewMetadataCache
Le IViewMetadataCache service fournit un accès en cache aux métadonnées de la vue Dataverse (requête sauvegardée). Les vues sont récupérées depuis Dataverse lors du premier accès et mises en cache pour les requêtes suivantes.
Récupérer une vue par identifiant
Utilisez GetAsync avec le GUID de la vue pour récupérer les métadonnées d’une seule vue, y compris sa requête FetchXML, ses colonnes et sa configuration d’affichage.
// useViewMetadata récupère les métadonnées d’une vue sauvegardée Dataverse. Concurrent
// les appels déduppent sur une seule requête en vol par identifiant de vue ; Résolu
// les valeurs sont réutilisées pendant toute la durée de vie du PowerPortalsProClient.
import { useViewMetadata } from '@powerportalspro/react';
function MyComponent() {
const { data: viewMetadata, status } = useViewMetadata(viewId);
if (status !== 'success' || !viewMetadata) return null;
const { name, fetchXml, tableName, isDefault } = viewMetadata;
// ...
}[Inject]
private IViewMetadataCache _viewCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
var viewMetadata = await _viewCache.GetAsync(viewId);
if (viewMetadata != null)
{
var viewName = viewMetadata.Name;
var fetchXml = viewMetadata.FetchXml;
var tableName = viewMetadata.TableName;
var isDefault = viewMetadata.IsDefault;
}
}Récupérer toutes les vues pour une table
Utilisez GetAllViewsForTableAsync pour récupérer toutes les vues d’une table spécifique. Filtrez par ViewType vue pour ne voir que les vues publiques, les vues de recherche rapide ou les vues de recherche.
// useViewsForTable renvoie chaque vue définie sur la table donnée —
// Une requête mise en cache par tableau, tous les consommateurs partagent le résultat.
import { useViewsForTable } from '@powerportalspro/react';
import { ViewType } from '@powerportalspro/core';
function MyComponent() {
const { data: allViews } = useViewsForTable('contact');
// Obtenez uniquement des avis publics
const publicViews = allViews?.filter((v) => v.type === ViewType.Public) ?? [];
// Trouver la vue par défaut
const defaultView = allViews?.find((v) => v.isDefault);
}var allViews = await _viewCache.GetAllViewsForTableAsync("contact");
// Obtenez uniquement des avis publics
var publicViews = allViews
.Where(v => v.Type == ViewType.Public)
.ToList();
// Trouver la vue par défaut
var defaultView = allViews
.FirstOrDefault(v => v.IsDefault);Conseil
Préfère
IViewMetadataCacheplutôt queIPowerPortalsProService.RetrieveViewMetadataAsyncpour lire les métadonnées de la vue. Le cache évite les appels réseau redondants et est utilisé en interne par tous les composants réseau PowerPortalsPro.
IViewMetadataCache Interface
Méthodes
Nom | Paramètres | Type | Description |
|---|---|---|---|
GetAllViewsForTableAsync | string tableName | Task<IEnumerable<ViewMetadata>> | Retourne toutes les métadonnées de la vue mise en cache pour la table spécifiée, y compris les vues publiques, système et définies par l’utilisateur. |
GetAsync | Guid key CancellationToken token | Task<ViewMetadata> | Récupère un élément du cache par clé. Si l’élément n’est pas mis en cache, il est récupéré depuis la source sous-jacente, mis en cache, puis retourné. |
GetAllViewsForTableAsyncGetAsyncCancellationToken token
ViewMetadata Classe
Propriétés
Nom | Type | Par défaut | Description |
|---|---|---|---|
Columns | List<ViewColumn> | Les colonnes affichées dans la grille, y compris leurs noms logiques et leurs largeurs de pixels. | |
DisplayName | string? | Nom d’affichage optionnel pour cette vue. Une fois réglé, cela est utilisé comme étiquette par défaut dans le Menu déroulant du sélecteur de vision. Une entrée de localisation à | |
FetchXml | string | La requête FetchXML qui définit quels enregistrements et colonnes sont récupérés pour cette vue. | |
IsDefault | bool | False | Indique si c’est la vue par défaut pour la table. |
Name | string | Le nom affiché de la vue. | |
QuickFindCompatible | bool | False | Indique si cette vue supporte la recherche rapide. |
TableName | string | Le nom logique de la table Dataverse est cette requête. | |
Type | ViewType? | Le type de vue (Public, AdvancedFind, Associated, QuickFind, Lookup, etc.). | |
UserDefined | bool | False | Indique si cette vue a été créée par un utilisateur (vrai) ou s’agit d’une vue système (fausse). |
ColumnsDisplayNameFetchXmlIsDefaultNameQuickFindCompatibleTableNameTypeUserDefined