Garantindo IDs do Elemento Exclusivo para Mapas da Interface do Usuário

Os itens a seguir descrevem como modificar o código JavaScript para garantir a renderização adequada de IDs de elemento exclusivo para Mapas da Interface do Usuário.

A modificação é necessária somente para o código que apresenta HTML usando uma função getElementById() (ou semelhante) para gerar IDs da lista e evitar verificação da conta ou erros relacionados.

O seguinte fragmento de amostra contém as modificações necessárias:


...
function getElementsFromList(namePrefix) {
    var ret = [];
    var elements = document.getElementsByTagName("INPUT");
    for(var i=0;i<elements.length;i++) {
        var elemID = elements[i].id;
        if((id) && (id.startsWith(namePrefix + '_')) {
            ret.push(elements[i]);
        }
    }
...
return ret;

Como os IDs não são necessariamente exclusivos nos IDs de Mapa da Interface do Usuário gerados, o código mostrado acima garante exclusividade no tempo de execução, incluindo um sublinhado e número de linha (por exemplo, myField_​1, myField_​2) para controle adequado por Framework no HTML apresentado, permitindo ainda fazer referência aos IDs não modificados contidos no Mapa da Interface do Usuário gerado.

Uma chave no arquivo spl.properties também permite desativar a geração de IDs exclusivos para elementos em uma grade (conforme descrito abaixo), embora, por motivos de conformidade de padrões, seja altamente recomendado que esta chave fique com o valor padrão.

 
Property Name: spl.runtime.compatibility.uiMapDisableGenerateUniqueHtmlIDs
File Name: spl.properties (under web project in FW)
Default Value: false
Accepted Values: true or false
Description: This property controls the generation of unique IDs for all input elements inside 
a list. When this value is set to true it disables the generation of unique IDs, thus 
replicating the old behavior. When this property is set to false or this property is missing 
it enables the generation of unique IDs, thus enabling the list to be standards-compliant.