Conta
Contato Primário
O LookupRecordContext componente carrega e fornece acesso de edição ao registro referenciado por um campo de consulta no pai RecordContext. Ele herda de BaseColumnEdit, então ele se vincula a uma coluna via parâmetro ColumnName , assim como qualquer outro editor.
Quando você coloca um LookupRecordContext dentro de um RecordContext e especifica um ColumnName que mapeia para um campo de pesquisa, o componente lê automaticamente o valor da consulta do registro pai, recupera o registro referenciado do Dataverse e o expõe como um campo aninhado RecordContext. Qualquer editor colocado dentro do LookupRecordContext bind para os campos do registro consultado.
O ColumnName parâmetro deve se referir a uma coluna de consulta no registro pai. O componente usa isso para resolver a tabela de destino e o ID do registro.
{/* Edições <LookupRecordContext> internas vinculam a colunas no</LookupRecordContext>
Tabela do registro do LOOKED-UP — o contato vinculado, não a conta. */}
<RecordContext table="account" queryParameterName="id">
<LookupRecordContext columnName="primarycontactid">
<TextEdit columnName="firstname" />
<TextEdit columnName="lastname" />
<TextEdit columnName="emailaddress1" />
</LookupRecordContext>
</RecordContext><RecordContext TableName="account" QueryParameterName="id">
<LookupRecordContext ColumnName="primarycontactid">
<ColumnEdit ColumnName="firstname" />
<ColumnEdit ColumnName="lastname" />
<ColumnEdit ColumnName="emailaddress1" />
</LookupRecordContext>
</RecordContext>Por exemplo RecordContext, você pode usar o ContextTemplate parâmetro em vez de ChildContent acessar diretamente o objeto consultado TableRecord na sua marcação.
{/* O React não tem <ContextTemplate> — leia o registro LOOKED-UP</ContextTemplate>
dentro de um componente filho via 'useRecordContext' (a consulta gera seu
seu próprio RecordContext aninhado, então esse gancho retorna o contato, não o
relato). */}
function PrimaryContactHeading() {
const { record } = useRecordContext();
const first = String(record?.['firstname']?.value ?? '');
const last = String(record?.['lastname']?.value ?? '');
return <h3>Contato Principal: {first} {last}</h3>;
}
<RecordContext table="account" queryParameterName="id">
<LookupRecordContext columnName="primarycontactid">
<PrimaryContactHeading />
<TextEdit columnName="emailaddress1" />
</LookupRecordContext>
</RecordContext><RecordContext TableName="account" QueryParameterName="id">
<LookupRecordContext ColumnName="primarycontactid">
<ContextTemplate>
<h3>Contato Principal: @context["firstname"] @context["lastname"]</h3>
<ColumnEdit ColumnName="emailaddress1" />
</ContextTemplate>
</LookupRecordContext>
</RecordContext>Alterações feitas nos campos dentro de um LookupRecordContext são salvas como parte da operação de salvamento pai MainContext . O OnBeforeSave callback pode ser usado para rodar lógica personalizada ou cancelar o save.
function MyPage() {
const onBeforeSave = async () => {
// Lógica personalizada antes de salvar o registro consultado.
// Arremesse para cancelar o save.
};
return (
<MainContext>
<MenuBar>
<SaveContextButton />
<RefreshContextButton />
</MenuBar>
<RecordContext table="account" queryParameterName="id">
<TextEdit columnName="name" />
<LookupRecordContext
columnName="primarycontactid"
onBeforeSave={onBeforeSave}
>
<TextEdit columnName="firstname" />
<TextEdit columnName="lastname" />
</LookupRecordContext>
</RecordContext>
</MainContext>
);
}<MainContext>
<MenuBar>
<SaveContextButton />
<RefreshContextButton />
</MenuBar>
<RecordContext TableName="account" QueryParameterName="id">
<ColumnEdit ColumnName="name" />
<LookupRecordContext ColumnName="primarycontactid"
OnBeforeSave="OnBeforeSave">
<ColumnEdit ColumnName="firstname" />
<ColumnEdit ColumnName="lastname" />
</LookupRecordContext>
</RecordContext>
</MainContext>
@code {
private async Task OnBeforeSave(CancelEventArgs eventArgs)
{
// Lógica personalizada antes de salvar o registro consultado
}
}A RecordContext propriedade oferece acesso ao interno RecordContext para operações programáticas, como atualizar ou verificar o estado sujo.
{/* Sem alça de referência externa — o idioma React é uma criança que lê
o contexto aninhado via 'useRecordContext' e expõe o que for necessário
(aqui, um botão de atualizar). O gancho retorna o disco LOOKED-UP
Contexto, então 'atualizar()' recarrega o contato, não a conta principal. */}
function RefreshContactButton() {
const { refresh } = useRecordContext();
return <button onClick={() => refresh()}>Atualizar contato</button>;
}
<LookupRecordContext columnName="primarycontactid">
<RefreshContactButton />
<TextEdit columnName="firstname" />
</LookupRecordContext><LookupRecordContext @ref="_lookupContext" ColumnName="primarycontactid">
<ColumnEdit ColumnName="firstname" />
</LookupRecordContext>
@code {
private LookupRecordContext _lookupContext;
private async Task RefreshContact()
{
await _lookupContext.RecordContext.RefreshAsync();
}
}O exemplo a seguir mostra um formulário de conta que exibe os dados do contato principal em linha usando um LookupRecordContext limite ao primarycontactid campo de consulta.
Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
ChildContent | RenderFragment? | Conteúdo filho do componente | |
ColumnName* | string | Nome lógico da coluna para vincular o editor a partir do registro da tabela. | |
ContextTemplate | RenderFragment<TableRecord> | Renderizar o fragmento que recebe o registro carregado para exibição ou edição. | |
Description | string? | Descrição será exibida na dica de ferramenta. | |
Disabled | bool? | Caso o editor esteja desativado. | |
DisplayLabelWhenAvailable | bool | True | Especifica se deve exibir uma lable, se disponível. |
DisplayTooltipWhenAvailable | bool | True | Especifica se deve exibir uma dica de ferramenta, se disponível. |
DisplayValidationErrorMessage | bool | True | Uma mensagem de erro de validação deve ser exibida quando o componente falha na validação? |
IsVisible | bool | True | O editor é visível? |
Label | string? | Texto para ser exibido como um rótulo para o editor. | |
ReadOnly | bool? | O editor deve ser somente leitura. | |
RecordContext | RecordContext | Fornece acesso ao interno LookupRecordContext.RecordContext para operações programáticas. | |
Required | bool? | Se o valor for necessário. | |
Value | LookupValue? | O valor atual de consulta (referência) gerenciado por esse contexto. |
ChildContentColumnName*ContextTemplateDescriptionDisabledDisplayLabelWhenAvailableDisplayTooltipWhenAvailableDisplayValidationErrorMessageIsVisibleLabelReadOnlyRecordContextLookupRecordContext.RecordContext para operações programáticas.RequiredValueNome | Tipo | Descrição |
|---|---|---|
OnBeforeSave | EventCallback<CancelEventArgs> | O retorno chamou antes de salvar. Permite cancelar a operação de salvamento. |
ValueChanged | EventCallback<ColumnValueBase> | Recebe ou define um callback que atualiza o valor vinculado. |
OnBeforeSaveValueChangedNome | Parâmetros | Tipo | Descrição |
|---|---|---|---|
GetValidationErrors | List<string> | Retorna uma coleção dos erros de validação atuais. |
GetValidationErrors