Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use Power Pages listas de API do Cliente para acessar e personalizar listas tradicionais e modernas. Essa referência explica como trabalhar com linhas, colunas, células, visibilidade e eventos de lista.
$pages.currentPage.lists
A coleção de listas fornece métodos para trabalhar com elementos de lista tradicionais e modernos na página.
Métodos $pages.currentPage.lists
Use esses métodos para enumerar todas as listas na página e obter uma lista específica pela ID do elemento HTML.
| Método | Returns | Descrição |
|---|---|---|
getAll |
Ilist[] |
Retorna todas as listas na página atual. |
getListById(id: string) |
IList | Obtém uma lista por sua ID de elemento HTML. |
exemplos de $pages.currentPage.lists
Esses exemplos mostram como enumerar todas as listas na página e obter uma lista específica por sua ID de elemento HTML.
Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
let lists = $pages.currentPage.lists.getAll();
let list = $pages.currentPage.lists.getListById('list_#1');
});
Interface IList
Uma lista representa um componente de dados tabular ou semelhante à grade.
Propriedades de IList
Essas propriedades identificam a lista e indicam se ela usa o modelo de renderização moderno.
| Propriedade | Tipo | Descrição |
|---|---|---|
id |
cadeia | O identificador exclusivo da lista. |
isModern |
booleano | Um valor booliano que é verdadeiro para listas modernas e false caso contrário. |
rows |
IRow[] |
As linhas que a lista publica atualmente. Cada vez que você lê essa propriedade, ela retorna os dados mais recentes, portanto, leia-os em um loaded manipulador de eventos para garantir que os dados estão disponíveis. |
columns |
IColumn[] |
As colunas no modo de exibição atual da lista. |
Note
As rows propriedades, columns os métodos e off os métodos e tudo o getColumnonque retornam têm suporte apenas em listas modernas, onde isModern é verdade. Em uma lista tradicional, eles são seguros para chamar, mas não fazem nada: rows e columns retornam matrizes vazias, getColumn retornam indefinidos e onoff não fazem nada. Verifique isModern antes de acessar os dados da lista ou use o loaded evento, que nunca ocorre para uma lista tradicional.
Métodos IList
Use esses métodos para verificar a visibilidade da lista, alternar se ela está visível, acessar o elemento HTML subjacente e trabalhar com colunas e eventos.
| Método | Returns | Descrição |
|---|---|---|
getVisible |
boolean |
Retornará true se a lista estiver visível. |
setVisible(isVisible: boolean) |
void |
Define a visibilidade da lista. |
getHtmlElement |
HTMLElement |
Retorna o elemento HTML subjacente para a lista. |
getColumn(logicalName: string) |
IColumn | undefined |
Retorna a coluna que tem o nome lógico (esquema) especificado. Retorna indefinido quando nenhuma coluna corresponde. |
on(event: string, handler: function) |
void |
Assina um manipulador em um evento de lista. Consulte os eventos de lista. Assinar o mesmo manipulador no mesmo evento mais de uma vez não tem efeito. |
off(event: string, handler: function) |
void |
Cancela a assinatura de um manipulador registrado com on. Passe a mesma referência de função para a onqual você passou. Uma referência diferente não cancela a assinatura do manipulador. |
Exemplo de IList
O exemplo a seguir recupera uma lista por ID, registra seu status de visibilidade e lê seus dados quando a grade é carregada.
Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
let list = $pages.currentPage.lists.getListById('list_#1');
console.log(`List id: ${list.id}`);
if (list.getVisible()) {
console.log('List is currently visible.');
}
// Modern list data is available only after the grid loads, so read it in a `loaded` handler.
if (list.isModern) {
list.on('loaded', () => {
console.log(`List has ${list.rows.length} rows and ${list.columns.length} columns.`);
});
}
});
Interface IRow
A IRow interface representa uma única linha em uma lista moderna. Obtenha uma linha da list.rows propriedade ou de uma carga de evento de lista .
Os métodos que começam com get retornam os dados que a grade publicou. Os outros métodos definem como a linha aparece, como seu estilo, nomes de classe e visibilidade. A grade aplica essas configurações quando renderiza a linha. Ocultar uma linha altera apenas como a linha é exibida; os dados subjacentes não são alterados.
Métodos IRow
Use esses métodos para ler os dados de uma linha e alterar a forma como a linha é exibida.
| Método | Returns | Descrição |
|---|---|---|
getId |
string |
Retorna a ID de registro do Dataverse da linha como uma cadeia de caracteres GUID. |
getValue(logicalName: string) |
string | number | boolean | Date | null |
Retorna uma cadeia de caracteres bruta, número, booliano, data válida ou valor de opção numérica para a coluna que tem o nome lógico (esquema) especificado. Retorna nulo quando a coluna não está na linha ou seu valor bruto é um valor complexo sem suporte, incluindo um objeto em forma de pesquisa. Use getDisplayValue quando o valor complexo bruto não estiver disponível. |
getDisplayValue(logicalName: string) |
string |
Retorna o valor da coluna formatada para a localidade atual. Retorna uma cadeia de caracteres vazia quando a coluna não está na linha. |
getPrivileges |
object | undefined |
Retorna os privilégios que o servidor avaliou para o registro: canRead, , canWrite, canDelete, e canAppendTocanAppend. Retorna indefinido quando o servidor não os fornece. Use esses valores para alterar a forma como os dados são exibidos, não para impor a segurança. |
getState |
object | undefined |
Retorna o e statusCode os stateCode valores do registro. Retorna indefinido quando o servidor não os fornece. |
setStyle(style: object) |
void |
Mescla estilos CSS embutidos na linha. Cada chamada adiciona aos estilos que já estão definidos. |
setClassName(className: string) |
void |
Substitui os nomes de classe CSS da linha pelos nomes de classe separados por espaço que você especificar. |
addClassName(className: string) |
void |
Adiciona um ou mais nomes de classe CSS separados por espaço à linha. |
removeClassName(className: string) |
void |
Remove um ou mais nomes de classe CSS separados por espaço da linha. |
setVisible(visible: boolean) |
void |
Mostra ou oculta a linha. Esse método altera apenas a forma como a linha é exibida. |
getCell(logicalName: string) |
ICell | Retorna um identificador que você usa para alterar a forma como uma das células da linha é exibida. |
Exemplo de IRow
Este exemplo realça registros cancelados e oculta registros inativos.
Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
const list = $pages.currentPage.lists.getListById('list_#1');
list.on('loaded', () => {
list.rows.forEach((row) => {
// Highlight canceled records where statuscode is 6.
if (row.getValue('statuscode') === 6) {
row.setStyle({ backgroundColor: '#fde7e9', color: '#a80000' });
}
// Hide inactive records where statecode is 1.
if (row.getValue('statecode') === 1) {
row.setVisible(false);
}
});
});
});
Interface IColumn
A IColumn interface representa uma única coluna em uma lista moderna. Obtenha uma coluna da list.columns propriedade ou do list.getColumn método. Você pode definir o cabeçalho, a visibilidade e a dica de ferramenta independentemente um do outro.
Os get métodos retornam os dados de origem, não os valores definidos. Por exemplo, getDisplayName retorna o nome de exibição configurado mesmo depois de você chamar setHeader, assim como row.getDisplayValue retorna o valor formatado pelo servidor mesmo após você chamar cell.setDisplayText. Esse comportamento torna seu código seguro para ser executado mais de uma vez, pois o loaded manipulador é executado novamente sempre que a lista busca, classifica, filtra ou páginas dados. Por exemplo, column.setHeader(column.getDisplayName() + ' *') produz o mesmo resultado todas as vezes em vez de adicionar outro asterisco. Leia o valor de origem e, em seguida, derive o valor definido.
Métodos IColumn
Use esses métodos para ler os nomes de uma coluna e alterar a forma como a coluna é exibida.
| Método | Returns | Descrição |
|---|---|---|
getLogicalName |
string |
Retorna o nome lógico (esquema) da coluna. |
getDisplayName |
string |
Retorna o nome de exibição configurado da coluna.
setHeader não altera esse valor. |
setHeader(header: string) |
void |
Substitui o texto no cabeçalho da coluna. |
setVisible(visible: boolean) |
void |
Mostra ou oculta a coluna inteira. |
setTooltip(tooltip: string) |
void |
Define a dica de ferramenta para o cabeçalho da coluna. A dica de ferramenta é exibida quando alguém passa o mouse sobre o cabeçalho e os leitores de tela a usam como o nome acessível do cabeçalho. |
Exemplo de IColumn
Este exemplo define o texto do cabeçalho e a dica de ferramenta para uma coluna.
Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
const list = $pages.currentPage.lists.getListById('list_#1');
list.on('loaded', () => {
const column = list.getColumn('name');
if (column) {
column.setHeader('Account name');
column.setTooltip('The primary name of the account');
}
});
});
Interface ICell
A ICell interface representa uma única célula, que é a interseção de uma linha e uma coluna. Obtenha uma célula do row.getCell método. Uma célula é somente gravação por design. Para ler o valor de uma célula, use o getValue método da getDisplayValuelinha que a contém.
Métodos ICell
Use esses métodos para alterar o texto e o estilo de uma célula.
| Método | Returns | Descrição |
|---|---|---|
setDisplayText(text: string) |
void |
Substitui o texto que aparece na célula. Use esse método para mostrar texto amigável em vez de um código, mascarar um valor ou mostrar um selo. |
setStyle(style: object) |
void |
Mescla estilos CSS embutidos na célula. Cada chamada adiciona aos estilos que já estão definidos. |
Exemplo de ICell
Este exemplo altera o texto e o estilo de uma célula em cada linha.
Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
const list = $pages.currentPage.lists.getListById('list_#1');
list.on('loaded', () => {
list.rows.forEach((row) => {
const cell = row.getCell('statuscode');
cell.setDisplayText('Active');
cell.setStyle({ fontWeight: 'bold', backgroundColor: '#fff4ce' });
});
});
});
Listar eventos
As listas modernas geram eventos aos quais você assina usando o list.on método e cancelam a assinatura usando o list.off método. Como esses eventos fornecem objetos de linha , eles também são o local recomendado para ler ou estilo de dados de linha. Os dados estão disponíveis após a ocorrência do loaded evento.
| Event | Quando ocorre | Carga útil |
|---|---|---|
loaded |
Depois que a lista busca e publica seus dados de linha. Esse evento ocorre novamente sempre que a lista atualiza ou páginas dados. | { rows: IRow[] } |
rowclick |
Alguém seleciona uma linha. | { row: IRow, event: MouseEvent } |
cellclick |
Alguém seleciona uma célula. Quando um cellclick manipulador é registrado, o rowclick evento não ocorre para essa seleção. |
{ row: IRow, columnName: string, event: MouseEvent } |
Importante
Se ambos rowclick e cellclick manipuladores forem registrados, selecionar uma célula invocará apenas o cellclick manipulador. O rowclick manipulador não é invocado para a mesma seleção.
Exemplo de eventos de lista
Este exemplo assina e rowclickcellclick eventos.
Microsoft.PowerPages.onPagesClientApiReady(async function ($pages) {
const list = $pages.currentPage.lists.getListById('list_#1');
const onRowClick = (e) => {
console.log('Selected row:', e.row.getId());
e.row.setStyle({ outline: '2px solid #0078d4' });
};
list.on('rowclick', onRowClick);
list.on('cellclick', (e) => {
console.log('Selected cell:', e.row.getId(), 'column:', e.columnName);
e.row.getCell(e.columnName).setStyle({ backgroundColor: '#e5f1fb' });
});
// Define a cleanup function, and call it when your code no longer needs
// the events. Pass the same handler reference that you passed to the on method.
const stopListening = () => {
list.off('rowclick', onRowClick);
};
});
Para cancelar a assinatura, passe a mesma referência de função para o off método que você passou para o on método. Uma referência diferente não cancela a assinatura do manipulador.