MainGrid

O MainGrid componente é uma grade independente para exibir registros do Dataverse. Diferente de , ele não requer um pai RecordContext — ele carrega SubGridregistros diretamente de uma tabela ou vista especificada.

Demo ao vivo

Um over-table standalone MainGrid contact conectado por cabo a duas visualizações personalizadas — Contatos Ativos e Meus Contatos. Use o menu suspenso do view-picker para alternar entre eles, digite na caixa de busca para filtrar, clique em um cabeçalho de coluna para ordenar e use o rodapé para folhear os resultados. Não é necessário um pai RecordContext — a grade carrega seus registros diretamente a partir das visualizações fornecidas.

Exemplo de reação
Exemplo de Blazor
Qualquer pessoa pode ver os contatos na grade abaixo. Faça login para criar, visualizar e atualizar seus próprios contatos.
Meus ContatosTodos os Contatos
Meus ContatosTodos os Contatos

Tamanho da página

102050100
Nome completo
Telefone Celular
E-mail
Nome da empresa
Idade
Abagail Miller(501) 801-9303Abagail_Miller30@yahoo.comLowe Inc52
Abdul Pollich(319) 579-4439Abdul73@yahoo.comWiza, Bradtke and Hintz54
Abel Parisian(631) 444-9854Abel84@gmail.comRaynor - Lakin32
Abigale Kuvalis(369) 810-9954Abigale71@gmail.comMurazik Group65
Adell Paucek(260) 615-0566Adell99@yahoo.comWindler, Toy and D'Amore40
Adella Roob(535) 638-9390Adella.Roob88@hotmail.comPollich - Kling39
Adolf Weber(978) 300-6533Adolf.Weber10@gmail.comWest Group20
Adonis Torphy(842) 804-9308Adonis_Torphy35@hotmail.comMohr and Sons58
Agustin Goyette(374) 932-0000Agustin_Goyette@gmail.comLebsack, Homenick and Carter25
Agustin Rau(986) 867-9045Agustin_Rau@gmail.comLehner Group22
React TypeScript
Razor

Carregando por nome da tabela

Defina o TableName parâmetro para carregar automaticamente todas as visualizações públicas dessa tabela. A primeira visualização padrão é selecionada inicialmente.

React
Blazor

Carregamento por IDs de Visualização

Use ViewIds e DefaultViewId controle exatamente quais visualizações estão disponíveis e qual é selecionada ao carregar. Você também pode fornecer CustomViewDefinitions FetchXML inline para definir views diretamente no código.

React
Blazor

Visualizações Personalizadas com FetchXML

Use CustomViewDefinitions para definir views com consultas personalizadas em FetchXML. Isso é útil para visualizações que incluem filtros baseados no usuário atual, entidades vinculadas ou outros critérios dinâmicos.

Nota

O Id para um costume GridViewDefinition deve ser um GUID aleatório único que não corresponde a uma visualização existente do Dataverse. Se corresponder a um ID de vista existente, a visualização do Dataverse terá prioridade e a definição personalizada será ignorada.

React
Blazor

DisplayName

Defina DisplayName em a GridViewDefinition para fornecer um rótulo padrão para a visualização no seletor suspenso sem exigir uma entrada de arquivo de localização. Se existe uma chave de localização em tables.{TableName}.views.{Id}.label, ela tem precedência sobre DisplayName. Isso é útil para visualizações personalizadas onde você quer um nome legível imediatamente, sem adicionar uma entrada de localização.

Botões da Barra de Ferramentas

Ele MainGrid suporta os mesmos botões da barra de ferramentas que SubGrido . Para grades independentes, NavigateNewRecordGridButton e NavigateOpenRecordGridButton são comumente usados para navegar até páginas de formulário separadas. Consulte a documentação dos Botões da Grade para uma referência completa de todos os botões disponíveis e suas opções de configuração.

React
Blazor

Comportamento na Caixa de Busca

Quando o usuário digita na caixa de busca da grade, a visualização configurada é automaticamente reconsultada com condições adicionais de filtro aplicadas a cada coluna elegível para busca mostrada na visualização. As condições são unidas à OR lógica, de modo que um registro é incluído se alguma de suas colunas visíveis corresponder ao termo de busca. A semântica padrão de correspondência varia dependendo do tipo de coluna.

Colunas de Texto e Pesquisa

Colunas de texto (campos de string) e colunas de consulta (comparadas com o nome principal do registro alvo) usam por padrão um início com busca. A digitação joh corresponde a valores que começam com joh — por exemplo John , ou Johnson. A correspondência é delegada ao operador do like FetchXML, que é insensível a maiúsculas minúsculas no Dataverse.

Use * como coringa para um emparelhamento mais flexível. Digitar *hn executa uma correspondência no estilo contains (por exemplo, John), Johnsondigitação j*n corresponde a valores onde quaisquer caracteres podem aparecer entre o j e o n (por exemplo, John). Joneson O coringa é convertido para o coringa do % FetchXML no momento da consulta.

Colunas de Escolha

Colunas de escolha (conjuntos de opções / listas de seleção) e colunas de seleção múltipla são comparadas com o rótulo de exibição localizado de cada opção, em vez do valor inteiro subjacente. Rótulos são comparados de forma insensível a maiúsculas e minúsculas e acentuadas na cultura do usuário atual, então digitar cafe corresponderá a uma opção rotulada Café. Quando um ou mais rótulos de opção coincidem, a consulta emite uma condição FetchXML contra os valores correspondentes — uma in condição para colunas de escolha de seleção única, ou contain-values uma condição para colunas de escolha de múltiplas seleções. Quando nenhuma etiqueta corresponde, a coluna não contribui com nenhuma condição (mantendo o OR filtro compacto).

Colunas de escolha honram o mesmo * coringa que as colunas de texto: por padrão, a correspondência começa com (digitando act correspondências Active), e um início * muda para contains (digitando *act correspondências Inactiveadicionais). As linhas correspondentes têm a substring correspondente destacada na grade, exatamente como as correspondências de coluna de texto.

Colunas Numérica e Monetária

Colunas numéricas — int, big int, decimal, double e money — suportam operadores de comparação no termo de busca. A caixa de busca analisa um operador inicial opcional e aplica o correspondente operador de condição FetchXML:

  • = 100 ou apenas 100  —  igual (o padrão quando nenhum operador é especificado)
  • > 100  —  maior que
  • < 100  —  menos que
  • >= 100  —  maior que igual ou maior que
  • <= 100  —  menor que ou igual

Nota

As condições de busca para cada tipo de coluna são adicionadas ao mesmo OR grupo de filtros, de modo que o mesmo termo de busca é avaliado simultaneamente contra colunas de texto, colunas de pesquisa, colunas de escolha e colunas numéricas. Digitar 100 uma grade que tenha tanto uma coluna de nome quanto uma coluna de valor irá corresponder a registros cujo nome começa com 100 ou cujo valor é igual a 100. O filtro de busca é sobreposto ao filtro existente da visualização, então as restrições em nível de visualização (como um statecode = 0 filtro) são sempre preservadas.

Desativando a busca

Configurado AllowSearch="false" na grade para esconder completamente a caixa de busca. Isso é útil para grades que contêm apenas um pequeno conjunto fixo de registros, ou onde o filtragem é gerenciada externamente (por exemplo, via uma barra de ferramentas personalizada).

React
Blazor

Modo de paginação

A grade suporta duas estratégias de paginação via o PagingMode parâmetro (Blazor) / pagingMode prop (React). Ambos os modos usam a mesma visualização subjacente, FetchXML, ordenação e busca — apenas a forma como as linhas são reveladas ao usuário difere.

  • Paged (padrão) — um rodapé clássico Pré-Anterior/Próximo com seletor de página. Ideal para conjuntos de resultados mais curtos e para casos em que o usuário quer pular por número de página ou compartilhar uma página com links profundos na URL.
  • Virtualizepergaminho infinito. O rodapé do pager fica oculto, as linhas se acumulam à medida que o usuário passa pela parte inferior renderizada, e a próxima página é buscada automaticamente. Um contador somente leitura "Mostrando 1-N de M" substitui o pager assim que o total estiver disponível. Ideal para listas longas onde o usuário escaneia em vez de navegar por página.

Opte definindo o modo de paginação na grade:

React
Blazor

Demonstração ao Vivo — Modo Virtualização

A mesma contact grade da demo principal, mas com PagingMode="GridPagingMode.Virtualize" (Blazor) / pagingMode={PagingMode.Virtualize} (React) e um tamanho menor do bloco, então rolar exerce o acumulador. O rodapé do pager desapareceu — role para baixo para puxar mais páginas e observe o contador no topo da grade se atualizar conforme mais linhas aparecem.

Exemplo de reação
Exemplo de Blazor
Qualquer pessoa pode ver os contatos na grade abaixo. Faça login para criar, visualizar e atualizar seus próprios contatos.
Meus ContatosTodos os Contatos
Meus ContatosTodos os Contatos

Tamanho da página

102050100
Nome completo
Telefone Celular
E-mail
Nome da empresa
Idade
React TypeScript
Razor

Concessões

  • Nada de ir direto para a página. O modo virtualização sempre começa na primeira página e avança; os consumidores não podem mais pular para a página N. Se você precisa de navegação explícita na página, fique em Paged.
  • A página não é mantida. Como a posição de rolagem do usuário não é um conceito de página discreta, PersistedStateQueryParameter a chave é p omitida no modo virtualizar. A busca selecionada para visualizar, ordenar e (opt-in) ainda percorreu a URL.
  • Busca e ordenação ainda funcionam, mas eles resetam o acumulador rolado — mudar a visualização ativa, aplicar uma nova ordenação ou digitar na caixa de busca elimina as linhas carregadas e rebusca do topo.
  • Oculta o pager / seletor de tamanho de página. O seletor de tamanho de página é substituído por um tamanho fixo de bloco; defina o valor inicial via DefaultItemsPerPage (Blazor) / pageSize (React) para controlar quantas linhas são buscadas por página ativada pelo rolamento.

Modo de Tamanho Completo

Definido FullSize="true" para fazer a grade expandir e preencher toda a altura do seu recipiente pai. Isso é útil quando a grade é o conteúdo principal de uma página.

React
Blazor

Estado persistente da grade

Definido PersistedStateQueryParameter para um nome de parâmetro de consulta (por exemplo, "gridState") e a grade refletirá seu estado interativo em um único parâmetro de URL sob esse nome. Cada alteração conduzida pelo usuário — trocar a visualização selecionada, paginar, redimensionar o tamanho da página, clicar em cabeçalhos de coluna para ordenar ou digitar (opt-in) digitar na caixa de busca — recodifica o estado e substitui o parâmetro URL no lugar. Quando a página é aberta com o parâmetro presente (favorito, link compartilhado, atualização), a grade lê o parâmetro na primeira carga e restaura todo o estado capturado antes de buscar os dados.

React
Blazor

O que Persiste

O parâmetro de consulta codifica um objeto JSON compacto com uma chave curta por pedaço de estado. As chaves são propositalmente abreviadas para manter URLs favoritas curtas. Campos que correspondem aos seus padrões naturais são omitidos, então uma grade na página 1 sem ordenação e sem busca produz uma mancha muito menor do que uma com todos os cinco campos preenchidos.

  • v — o GUID da vista selecionada (minúscula, hifenizada, sem aparelhos). Corresponde a uma das ViewIds / CustomViewDefinitions entradas com as quais a grade foi configurada.
  • p — o número de página baseado em 1. Omitido quando o usuário está na página 1 (o padrão).
  • ps — o número de linhas por página. Reflete a última seleção do usuário no menu suspenso do tamanho da página; omitido quando corresponde à grade DefaultItemsPerPage.
  • s — um conjunto ordenado de diretivas de ordenação. Cada entrada tem c (nome lógico da coluna) e uma opcional d (definida para true decrescente; ascendente é o padrão não marcado, então d é omitida nesse caso). O estado vazio / não ordenado omite completamente o campo. A ordenação multi-coluna é preservada em ordem de precedência.
  • q — o texto atual da caixa de busca. Só incluído quando a grade foi configurada com IncludeSearchInPersistedState="true" E a caixa tem um valor não vazio. Está desregulado por padrão, já que os termos de busca podem ser sensíveis (por exemplo, nomes de clientes em um contexto de CRM).

Codificação de URL

O estado é serializado como JSON compacto (sem espaço em branco) e codificado por URL no parâmetro de consulta. Uma grade mostrando a página 3 de uma visualização de contato, ordenada por sobrenome, ascendente e depois criada descendente, com a busca "smith" ativada, faria a seguinte carga útil de ida e volta:

Após a codificação de URLs, o valor real da barra de endereços fica assim (o framework chama encodeURIComponent a string JSON antes de escrevê-la):

Strip por valor padrão

O codificador remove qualquer campo que corresponda ao seu padrão natural antes da serialização. A página 1 descarta p, uma lista de ordenação vazia cai s, uma ordenação ascendente não marcada cai d, e uma busca vazia descarta q. Uma grade recém-carregada, sem interação do usuário, codifica para um blob contendo apenas v e ps — impedindo que URLs favoritos cresçam para o estado que o consumidor não tocou.

Comportamento do Histórico do Navegador

Mudanças de estado atualizam a URL com history.replaceState — elas não enviam novas entradas para a pilha traseira. Isso significa que ao clicar Voltar de uma página de grade, retorna à página distinta anterior (a origem de navegação do usuário), e não à combinação de ordenação/página anterior. A troca é intencional: uma única sessão de grade pode gerar dezenas de mudanças de estado, e pressionar cada uma como uma entrada de navegação tornaria o botão Voltar praticamente inútil no restante do app.

Ativando a persistência da busca

Por padrão, o texto de busca é excluído da URL, então o parâmetro é seguro para compartilhamento mesmo quando a grade está filtrando por um termo sensível. Definido IncludeSearchInPersistedState="true" para incluir o valor atual da caixa de busca na carga útil codificada (adicionado como o q campo acima). Uma vez ativada, a busca passa a fazer parte do estado de marcador — o usuário pode copiar a URL e o destinatário fica na mesma combinação de visualização, página, ordenação E filtro.

React
Blazor

Compatibilidade entre stacks

A forma JSON codificada é idêntica entre as implementações de Blazor e React grid — mesmo nome de parâmetro, mesmas chaves (v / p / ps / s / ), qmesma semântica de valores. Um link produzido por uma pilha é consumível pela outra, então uma organização que executa ambas as superfícies (por exemplo, um portal público do React junto com um app interno de administração do Blazor) pode compartilhar URLs de grade entre elas sem qualquer camada de tradução por pilha.

Múltiplas grades em uma página

Duas grades na mesma página devem usar nomes diferentesPersistedStateQueryParameter. Cada grade apenas lê e escreve seu próprio parâmetro, então reutilizar o mesmo nome faria com que ambas as grades disputassem o mesmo slot de URL — a última gravação vence e a outra grade perde seu estado a cada alteração. Uma convenção típica é nomear o parâmetro com base no papel da grade (por exemplo, contactsState + accountsState).

Grades Multi-Tabela

A MainGrid pode exibir visualizações de diferentes tabelas incluindo IDs de visualização de múltiplas tabelas na ViewIds coleção. Quando o usuário troca de vista, a grade carrega automaticamente os dados da tabela correta. Use o OnClick callback nos botões de navegação para definir dinamicamente a URL com base no nome da tabela da visualização selecionada.

React
Blazor
React Blazor

MainGrid Classe

Parâmetros

Nome
Tipo
Padrão
Descrição
AllowChangingPageSizebool
True
Quando verdade, o usuário pode alterar o número de itens exibidos por página.
AllowDownloadForFileColumnsbool
True
Quando é verdadeiro (o padrão), a grade exibe um ícone de download por linha no borda traseira das células da coluna de arquivo e imagem. Ao clicar nele, o arquivo é transmitido para o navegador do usuário. Defina como false para suprimir o ícone — por exemplo, em modo somente leitura Grades de auditoria onde a exportação de arquivos não é permitida.
AllowEditbool
False
A opção deve estar disponível para o usuário ativar a edição em linha para a grade.
AllowNavigateOnPrimaryNameClickbool
True
Quando é verdadeiro (o padrão) e a grade tem um botão 'editar' registrado (um GridButton com IsOpenRecordButton=true), a célula que renderiza a coluna de nome primário da tabela se torna um hiperlink. Clicar nele, despacha o mesmo invocação por linha que um duplo clique na linha faria — para que o usuário possa pular para a edição form (ou a URL de edição navegada, dependendo do botão registrado) sem antes Selecionando a fileira. Defina como false para suprimir o hiperlink e renderizar o célula de nome primário como texto simples. Não tem efeito quando nenhum botão de edição está registrado.
AllowNavigateOnRowDoubleClickbool
True
Quando é verdadeiro (o padrão) e a grade tem um botão 'editar' registrado (um GridButton com IsOpenRecordButton=true), cliqueando duas vezes em uma linha invoca o OnClick desse botão para o registro da linha — abertura a janela de diálogo de edição ou navegar até a URL de editar, o que o botão usar. Definir para false para suprimir o manipulador de duplo clique. Não tem efeito quando não há botão de editar está registrada.
AllowPreviewForFileColumnsbool
True
Quando verdadeiro (o padrão), a grade exibe um ícone de pré-visualização 'olho' por linha no borda traseira de células de colunas de arquivos e imagens cujo conteúdo pode ser renderizado em linha (imagens, PDFs, texto simples). Defina como false para suprimir o ícone — por exemplo, em grades onde as colunas não deveriam servir como ponto de entrada de pré-visualização.
AllowSearchbool
True
O usuário deveria ter permissão para pesquisar na grade.
BorderVisiblebool
True
Controle se uma borda visível é renderizada ao redor da grade.
ButtonsRenderFragment?
Fragmento de renderização opcional usado para definir a barra de ferramentas de botões exibida acima da grade.
ColumnsRenderFragment?
Fragmento opcional Components.GridColumns carregando declarado pelo consumidor Components.GridColumn crianças. Quando fornecida, a grade muda para modo substituir: apenas as colunas declaradas renderizam (em declarado ordem), a projeção FetchXML é reescrita para corresponder, e o A lista de colunas do Underlying View é ignorada. null deixa a grade em seu comportamento padrão (gerar colunas automaticamente a partir de o conjunto de colunas resolvidas da vista).
CustomViewDefinitionsList<GridViewDefinition>?
Visualizações personalizadas para exibir no menu suspenso.
DataSourceViewDataSource?
Opcional compartilhado Data.ViewDataSource. Quando definido, a grade lê suas linhas + contagem total da fonte de dados em vez de emitindo seus próprios RetrieveRecordsAsync(System.String) chamada — a mesma fonte de dados pode impulsionar um irmão <DataverseChart> ou uma segunda grade para que todos eles Paginar / filtrar / pesquisar juntos em uma única ida e volta. Uso independente (não GridBase.DataSource) mantém o máquina de estados internos existente — a grade compõe FetchXML e busca diretamente via IPowerPortalsProService . O que a fonte de dados NÃO possui: interface por grade estado (linhas selecionadas, linha pendente criada / atualizada / deleta, larguras das colunas). Esses permanecem em grade local — dois grades compartilhando um A fonte de dados ainda pode ter seleção independente e por grade Pendentes de edições. Quando ViewDataSource.Highlight é definido (por exemplo, via um clique de fatia de gráfico no modo 'destaque' de filtro cruzado), linhas cuja valor na coluna destacada não corresponde visualmente silenciado por uma classe CSS; os dados da linha + seleção são não afetado (o filtro cruzado suave é puramente de estilo).
DefaultItemsPerPageint
50
Número padrão de registros para carregar em uma página.
DefaultViewIdGuid?
ID da visão que a grade deve exibir no carregamento inicial.
Editablebool
False
A edição em linha está ativada para a grade?
FiltersIReadOnlyList<GridFilterBase>?
Filtros adicionais do lado do servidor AND foram incorporados na visualização resolvida FetchXML antes de paginar/ordenar/pesquisar é ativado. Encaminhado para Query.IFetchXmlQueryComposer's FetchXmlQueryOptions.Filters, Assim, cada entrada é despachada por tipo de runtime (por exemplo, Models.RelationshipFilter AND-funde uma relação link-entidade). Uso típico: o seletor LinkExistingRecordGridGridButton passa um Models.RelationshipFilter com RelationshipFilterMode.ExcludeExistingRecords Então já- registros vinculados são ocultos do diálogo de consulta M2M. Combina aditivamente com o próprio sistema interno do SubGrid filtro de relacionamento (que está embutido diretamente no FetchXML em vez de passar pelo slot Filtros do compositor) — ambos terminam Na mesma consulta.
FullSizebool
False
Quando é verdade, a grade se expande para preencher todo o espaço vertical disponível em vez de usar uma altura mínima fixa.
HidePagingbool
False
Forçar o tamanho da página e os componentes de paginação a serem ocultados. Só faça isso quando o número de itens for conhecido e o tamanho da página estiver definido para algo maior que a contagem de itens.
IncludeSearchInPersistedStatebool
False
Quando verdadeiro, o texto ativo da busca é incluído no persistente parâmetro de URL de estado (sob o campo q ). Padrão para falso — os termos de busca podem ser sensíveis, acumular no histórico do navegador, e vazam para os referentes HTTP, então a grade os mantém fora da URL, a menos que O consumidor opta explicitamente por participar. Não tem efeito quando GridBase.PersistedStateQueryParameter não está definido.
IsDirtybool
False
Indica se a grade tem operações de criação, atualização ou exclusão não salvas pendentes.
LoadedRecordsIEnumerable<TableRecord>
Registros atualmente renderizados na grade (a página mais recente de resultados). Destinado a comandos de barra de ferramentas que precisam agir sobre 'tudo que é exibido' — por exemplo, um bulk botão de download. Não se estende por páginas; Operações de bloco de páginas devem rodar seus Em vez disso, buscar a própria busca não paginada.
MaxHeightstring?
Altura máxima que o controle da grade deve alcançar.
MinHeightstring?
300px
Altura mínima que o controle da grade deve ocupar.
ModeGridMode
RecordSelection
Define o modo comportamental da grade, como interação padrão ou modo de seleção de registros.
PageSizesIEnumerable<int>
Coleção dos tamanhos de página disponíveis para a grade.
PagingModeGridPagingMode
Paged
Determina se a grade usa paginação tradicional ou virtualização de rolagem infinita.
PersistedRowsSnapshotPersistedGridRowsSnapshot?
Pré-renderização do servidor → handoff interativo para a página renderizada de linhas. A estrutura Essa propriedade persiste automaticamente no final do pré-renderizado e a reidrata antes GridBase.OnInitializedAsync no lado interativo, então a busca de dados pode ser Pulei a primeira renderização interativa. Keyed pela posição da árvore de renderização pelo framework; O PersistedGridRowsSnapshot.ViewId campo é verificado no consumo tempo, então uma rerenderização contra uma vista diferente descarta as linhas obsoletas. Público segundo o requisito do framework — [PersistentState] só vê propriedades públicas via reflexão — mas não destinada a ser colocada externamente.
PersistedStateQueryParameterstring?
Nome do parâmetro de sequência de consulta URL para persistir a interatividade da grade Estade para. Quando definido, a grade lê esse parâmetro na carga inicial e seeds a visualização ativa, número da página, tamanho da página e ordenação a partir dela; Ações subsequentes do usuário (visualizar escolha, mudança de página, ordenação de cabeçalho, etc.) Escreva o novo estado de volta via Components.NavigationManager's Caminho de substituição de estado. Persistência sobrevive à atualização de página e aos favoritos.
SelectedRecordsIEnumerable<TableRecord>
Registros que estão atualmente selecionados na Grade.
SelectFromEntireRowbool
True
Quando certo, clicar em qualquer lugar de uma linha seleciona; quando falso, apenas a caixa de seleção seleciona a linha.
SelectModeDataGridSelectMode
Multiple
Determina se a grade permite seleção de uma ou múltiplas linhas.
TableNamestring?
O nome lógico da tabela cujas opiniões públicas deveriam ser carregadas. Aplicável somente quando nenhum valor é especificado para GridBase.DefaultViewId ou GridBase.ViewIds.
Titlestring?
Nome para exibir quando o menu suspenso da visualização não estiver exibido.
TransformViewAsyncFunc<GridViewDefinition, Task<GridViewDefinition>>?
Retorno opcional que roda imediatamente após o carregamento de uma visualização e antes da grade ser usada É para construir colunas ou consultas. Retorne um modificado Models.GridViewDefinition para transforme o que a grade renderiza — por exemplo, para garantir uma coluna específica está sempre presente independentemente da configuração da própria visão. Assíncrono para que os chamadores possam consulte caches de metadados, serviços ou outros recursos assíncronos ao decidir o que fazer incluir.
ViewIdsIEnumerable<Guid>?
Lista de ids das visualizações às quais a grade deve se limitar no menu suspenso da visualização.
ViewSortViewSort
NameAscending
Ordene as visualizações no menu suspenso.
Nome: AllowChangingPageSize
Tipo: bool
Padrão: True
Descrição: Quando verdade, o usuário pode alterar o número de itens exibidos por página.
Nome: AllowDownloadForFileColumns
Tipo: bool
Padrão: True
Descrição: Quando é verdadeiro (o padrão), a grade exibe um ícone de download por linha no borda traseira das células da coluna de arquivo e imagem. Ao clicar nele, o arquivo é transmitido para o navegador do usuário. Defina como false para suprimir o ícone — por exemplo, em modo somente leitura Grades de auditoria onde a exportação de arquivos não é permitida.
Nome: AllowEdit
Tipo: bool
Padrão: False
Descrição: A opção deve estar disponível para o usuário ativar a edição em linha para a grade.
Nome: AllowNavigateOnPrimaryNameClick
Tipo: bool
Padrão: True
Descrição: Quando é verdadeiro (o padrão) e a grade tem um botão 'editar' registrado (um GridButton com IsOpenRecordButton=true), a célula que renderiza a coluna de nome primário da tabela se torna um hiperlink. Clicar nele, despacha o mesmo invocação por linha que um duplo clique na linha faria — para que o usuário possa pular para a edição form (ou a URL de edição navegada, dependendo do botão registrado) sem antes Selecionando a fileira. Defina como false para suprimir o hiperlink e renderizar o célula de nome primário como texto simples. Não tem efeito quando nenhum botão de edição está registrado.
Nome: AllowNavigateOnRowDoubleClick
Tipo: bool
Padrão: True
Descrição: Quando é verdadeiro (o padrão) e a grade tem um botão 'editar' registrado (um GridButton com IsOpenRecordButton=true), cliqueando duas vezes em uma linha invoca o OnClick desse botão para o registro da linha — abertura a janela de diálogo de edição ou navegar até a URL de editar, o que o botão usar. Definir para false para suprimir o manipulador de duplo clique. Não tem efeito quando não há botão de editar está registrada.
Nome: AllowPreviewForFileColumns
Tipo: bool
Padrão: True
Descrição: Quando verdadeiro (o padrão), a grade exibe um ícone de pré-visualização 'olho' por linha no borda traseira de células de colunas de arquivos e imagens cujo conteúdo pode ser renderizado em linha (imagens, PDFs, texto simples). Defina como false para suprimir o ícone — por exemplo, em grades onde as colunas não deveriam servir como ponto de entrada de pré-visualização.
Nome: AllowSearch
Tipo: bool
Padrão: True
Descrição: O usuário deveria ter permissão para pesquisar na grade.
Nome: BorderVisible
Tipo: bool
Padrão: True
Descrição: Controle se uma borda visível é renderizada ao redor da grade.
Nome: Buttons
Tipo: RenderFragment?
Descrição: Fragmento de renderização opcional usado para definir a barra de ferramentas de botões exibida acima da grade.
Nome: Columns
Tipo: RenderFragment?
Descrição: Fragmento opcional Components.GridColumns carregando declarado pelo consumidor Components.GridColumn crianças. Quando fornecida, a grade muda para modo substituir: apenas as colunas declaradas renderizam (em declarado ordem), a projeção FetchXML é reescrita para corresponder, e o A lista de colunas do Underlying View é ignorada. null deixa a grade em seu comportamento padrão (gerar colunas automaticamente a partir de o conjunto de colunas resolvidas da vista).
Nome: CustomViewDefinitions
Tipo: List<GridViewDefinition>?
Descrição: Visualizações personalizadas para exibir no menu suspenso.
Nome: DataSource
Tipo: ViewDataSource?
Descrição: Opcional compartilhado Data.ViewDataSource. Quando definido, a grade lê suas linhas + contagem total da fonte de dados em vez de emitindo seus próprios RetrieveRecordsAsync(System.String) chamada — a mesma fonte de dados pode impulsionar um irmão <DataverseChart> ou uma segunda grade para que todos eles Paginar / filtrar / pesquisar juntos em uma única ida e volta. Uso independente (não GridBase.DataSource) mantém o máquina de estados internos existente — a grade compõe FetchXML e busca diretamente via IPowerPortalsProService . O que a fonte de dados NÃO possui: interface por grade estado (linhas selecionadas, linha pendente criada / atualizada / deleta, larguras das colunas). Esses permanecem em grade local — dois grades compartilhando um A fonte de dados ainda pode ter seleção independente e por grade Pendentes de edições. Quando ViewDataSource.Highlight é definido (por exemplo, via um clique de fatia de gráfico no modo 'destaque' de filtro cruzado), linhas cuja valor na coluna destacada não corresponde visualmente silenciado por uma classe CSS; os dados da linha + seleção são não afetado (o filtro cruzado suave é puramente de estilo).
Nome: DefaultItemsPerPage
Tipo: int
Padrão: 50
Descrição: Número padrão de registros para carregar em uma página.
Nome: DefaultViewId
Tipo: Guid?
Descrição: ID da visão que a grade deve exibir no carregamento inicial.
Nome: Editable
Tipo: bool
Padrão: False
Descrição: A edição em linha está ativada para a grade?
Nome: Filters
Tipo: IReadOnlyList<GridFilterBase>?
Descrição: Filtros adicionais do lado do servidor AND foram incorporados na visualização resolvida FetchXML antes de paginar/ordenar/pesquisar é ativado. Encaminhado para Query.IFetchXmlQueryComposer's FetchXmlQueryOptions.Filters, Assim, cada entrada é despachada por tipo de runtime (por exemplo, Models.RelationshipFilter AND-funde uma relação link-entidade). Uso típico: o seletor LinkExistingRecordGridGridButton passa um Models.RelationshipFilter com RelationshipFilterMode.ExcludeExistingRecords Então já- registros vinculados são ocultos do diálogo de consulta M2M. Combina aditivamente com o próprio sistema interno do SubGrid filtro de relacionamento (que está embutido diretamente no FetchXML em vez de passar pelo slot Filtros do compositor) — ambos terminam Na mesma consulta.
Nome: FullSize
Tipo: bool
Padrão: False
Descrição: Quando é verdade, a grade se expande para preencher todo o espaço vertical disponível em vez de usar uma altura mínima fixa.
Nome: HidePaging
Tipo: bool
Padrão: False
Descrição: Forçar o tamanho da página e os componentes de paginação a serem ocultados. Só faça isso quando o número de itens for conhecido e o tamanho da página estiver definido para algo maior que a contagem de itens.
Nome: IncludeSearchInPersistedState
Tipo: bool
Padrão: False
Descrição: Quando verdadeiro, o texto ativo da busca é incluído no persistente parâmetro de URL de estado (sob o campo q ). Padrão para falso — os termos de busca podem ser sensíveis, acumular no histórico do navegador, e vazam para os referentes HTTP, então a grade os mantém fora da URL, a menos que O consumidor opta explicitamente por participar. Não tem efeito quando GridBase.PersistedStateQueryParameter não está definido.
Nome: IsDirty
Tipo: bool
Padrão: False
Descrição: Indica se a grade tem operações de criação, atualização ou exclusão não salvas pendentes.
Nome: LoadedRecords
Tipo: IEnumerable<TableRecord>
Descrição: Registros atualmente renderizados na grade (a página mais recente de resultados). Destinado a comandos de barra de ferramentas que precisam agir sobre 'tudo que é exibido' — por exemplo, um bulk botão de download. Não se estende por páginas; Operações de bloco de páginas devem rodar seus Em vez disso, buscar a própria busca não paginada.
Nome: MaxHeight
Tipo: string?
Descrição: Altura máxima que o controle da grade deve alcançar.
Nome: MinHeight
Tipo: string?
Padrão: 300px
Descrição: Altura mínima que o controle da grade deve ocupar.
Nome: Mode
Tipo: GridMode
Padrão: RecordSelection
Descrição: Define o modo comportamental da grade, como interação padrão ou modo de seleção de registros.
Nome: PageSizes
Tipo: IEnumerable<int>
Descrição: Coleção dos tamanhos de página disponíveis para a grade.
Nome: PagingMode
Tipo: GridPagingMode
Padrão: Paged
Descrição: Determina se a grade usa paginação tradicional ou virtualização de rolagem infinita.
Nome: PersistedRowsSnapshot
Tipo: PersistedGridRowsSnapshot?
Descrição: Pré-renderização do servidor → handoff interativo para a página renderizada de linhas. A estrutura Essa propriedade persiste automaticamente no final do pré-renderizado e a reidrata antes GridBase.OnInitializedAsync no lado interativo, então a busca de dados pode ser Pulei a primeira renderização interativa. Keyed pela posição da árvore de renderização pelo framework; O PersistedGridRowsSnapshot.ViewId campo é verificado no consumo tempo, então uma rerenderização contra uma vista diferente descarta as linhas obsoletas. Público segundo o requisito do framework — [PersistentState] só vê propriedades públicas via reflexão — mas não destinada a ser colocada externamente.
Nome: PersistedStateQueryParameter
Tipo: string?
Descrição: Nome do parâmetro de sequência de consulta URL para persistir a interatividade da grade Estade para. Quando definido, a grade lê esse parâmetro na carga inicial e seeds a visualização ativa, número da página, tamanho da página e ordenação a partir dela; Ações subsequentes do usuário (visualizar escolha, mudança de página, ordenação de cabeçalho, etc.) Escreva o novo estado de volta via Components.NavigationManager's Caminho de substituição de estado. Persistência sobrevive à atualização de página e aos favoritos.
Nome: SelectedRecords
Tipo: IEnumerable<TableRecord>
Descrição: Registros que estão atualmente selecionados na Grade.
Nome: SelectFromEntireRow
Tipo: bool
Padrão: True
Descrição: Quando certo, clicar em qualquer lugar de uma linha seleciona; quando falso, apenas a caixa de seleção seleciona a linha.
Nome: SelectMode
Tipo: DataGridSelectMode
Padrão: Multiple
Descrição: Determina se a grade permite seleção de uma ou múltiplas linhas.
Nome: TableName
Tipo: string?
Descrição: O nome lógico da tabela cujas opiniões públicas deveriam ser carregadas. Aplicável somente quando nenhum valor é especificado para GridBase.DefaultViewId ou GridBase.ViewIds.
Nome: Title
Tipo: string?
Descrição: Nome para exibir quando o menu suspenso da visualização não estiver exibido.
Nome: TransformViewAsync
Tipo: Func<GridViewDefinition, Task<GridViewDefinition>>?
Descrição: Retorno opcional que roda imediatamente após o carregamento de uma visualização e antes da grade ser usada É para construir colunas ou consultas. Retorne um modificado Models.GridViewDefinition para transforme o que a grade renderiza — por exemplo, para garantir uma coluna específica está sempre presente independentemente da configuração da própria visão. Assíncrono para que os chamadores possam consulte caches de metadados, serviços ou outros recursos assíncronos ao decidir o que fazer incluir.
Nome: ViewIds
Tipo: IEnumerable<Guid>?
Descrição: Lista de ids das visualizações às quais a grade deve se limitar no menu suspenso da visualização.
Nome: ViewSort
Tipo: ViewSort
Padrão: NameAscending
Descrição: Ordene as visualizações no menu suspenso.

Eventos

Nome
Tipo
Descrição
EditableChangedEventCallback<bool>
O callback é invocado quando o estado da edição inline muda.
SelectedRecordsChangedEventCallback<IEnumerable<TableRecord>>
O callback é invocado quando a coleção de registros selecionados muda.
Nome: EditableChanged
Tipo: EventCallback<bool>
Descrição: O callback é invocado quando o estado da edição inline muda.
Nome: SelectedRecordsChanged
Tipo: EventCallback<IEnumerable<TableRecord>>
Descrição: O callback é invocado quando a coleção de registros selecionados muda.

Métodos

Nome
Parâmetros
Tipo
Descrição
ClearSelectionAsyncTask
Limpa todas as linhas selecionadas no momento.
OpenFileDownloadAsyncTableRecord record
string columnName
Task
Ele busca os bytes da coluna do arquivo/imagem e record os transmite em streaming para o navegador do usuário como download. Invocado pelo ícone de download por linha no arquivo e células de imagem.
OpenFilePreviewAsyncTableRecord record
string columnName
Task
Abre o diálogo de pré-visualização inline para a coluna columnName de arquivo/imagem em record. Invocado pelo ícone de pré-visualização por linha nas células de arquivo/imagem e também disponível para compor componentes (por exemplo, um botão de barra de ferramentas em um wrapping Grid) que querem um ponto de entrada programático.
RefreshAsyncbool forceRefresh
Task
Instrui a grade a buscar novamente e renderizar os dados atuais da fonte de dados fornecida.
Validatebool
Valida todas as linhas editáveis na grade.
Nome: ClearSelectionAsync
Tipo: Task
Descrição: Limpa todas as linhas selecionadas no momento.
Nome: OpenFileDownloadAsync
Parâmetros: TableRecord record
string columnName
Tipo: Task
Descrição: Ele busca os bytes da coluna do arquivo/imagem e record os transmite em streaming para o navegador do usuário como download. Invocado pelo ícone de download por linha no arquivo e células de imagem.
Nome: OpenFilePreviewAsync
Parâmetros: TableRecord record
string columnName
Tipo: Task
Descrição: Abre o diálogo de pré-visualização inline para a coluna columnName de arquivo/imagem em record. Invocado pelo ícone de pré-visualização por linha nas células de arquivo/imagem e também disponível para compor componentes (por exemplo, um botão de barra de ferramentas em um wrapping Grid) que querem um ponto de entrada programático.
Nome: RefreshAsync
Parâmetros: bool forceRefresh
Tipo: Task
Descrição: Instrui a grade a buscar novamente e renderizar os dados atuais da fonte de dados fornecida.
Nome: Validate
Tipo: bool
Descrição: Valida todas as linhas editáveis na grade.

GridViewDefinition Classe

Propriedades

Nome
Tipo
Padrão
Descrição
ColumnsList<ViewColumn>
As colunas exibidas na grade, incluindo seus nomes lógicos e larguras de pixels.
DisplayNamestring?
Nome de exibição opcional para esta visualização. Quando definido, este é usado como o rótulo padrão no Visualizar o seletor suspenso. Uma entrada de localização em mesas. {NomeTabla}.visualizações. {Id}.label tem precedência se existir.
FetchXmlstring
A consulta FetchXML que define quais registros e colunas são recuperados para essa visão.
TableNamestring
O nome lógico da tabela Dataverse é essa consulta de visão.
Nome: Columns
Tipo: List<ViewColumn>
Descrição: As colunas exibidas na grade, incluindo seus nomes lógicos e larguras de pixels.
Nome: DisplayName
Tipo: string?
Descrição: Nome de exibição opcional para esta visualização. Quando definido, este é usado como o rótulo padrão no Visualizar o seletor suspenso. Uma entrada de localização em mesas. {NomeTabla}.visualizações. {Id}.label tem precedência se existir.
Nome: FetchXml
Tipo: string
Descrição: A consulta FetchXML que define quais registros e colunas são recuperados para essa visão.
Nome: TableName
Tipo: string
Descrição: O nome lógico da tabela Dataverse é essa consulta de visão.