2015-11-22 3 views
2

Je suis nouveau sur Oracle APEX. Pouvez-vous s'il vous plaît m'aider avec le problème ci-dessous? J'utilise APEX 5.0Forme tabulaire Oracle APEX, besoin de faire une colonne Lecture seule. Sauf sur une nouvelle ligne lorsque l'on clique sur "Ajouter une ligne"

J'ai une page de détail principale où j'ai une forme tabulaire. L'une des colonnes utilise LOV de la liste de sélection.

Maintenant, je dois rendre les valeurs de cette colonne en lecture seule afin que les utilisateurs ne puissent pas le changer, sauf sur une nouvelle ligne lorsque l'on clique sur "Ajouter une ligne".

Merci beaucoup à l'avance :)

Gaurav

Répondre

3

Je suppose que vous savez comment utiliser la fonction de votre navigateur « Inspecter l'élément ». (Si non, voici comment): Exécutez votre page. Ensuite, faites un clic droit sur l'une des listes de sélection de la colonne que vous souhaitez définir en lecture seule. Une fenêtre apparaîtra au bas de votre page. Obtenez son attribut de nom. Cela devrait être quelque chose qui commence par "f0 .." (par exemple "f01"). ensuite sur votre "Exécuter sur la page Load" partie de votre page, entrez cette ligne de code: $("[name=the_name_you_just_copied]").css("pointer-events","none");

ligne exemple: $("[name=f01]").css("pointer-events","none");

+0

Salut Vance, Merci beaucoup. Depuis 3 jours, j'ai essayé. J'ai essayé avec la méthode d'action dynamique ainsi qu'en utilisant le script java ci-dessous. $ ('input [name = "f04"]'). attr ("readonly", true)); mais rien ne semblait fonctionner. Votre méthode a fonctionné comme un charme. :) Merci encore. Appréciez-le. – user3780030

1

Cela peut être fait en utilisant javascript. Lire la démonstration suivante avec la description de détail pour effectuer cette tâche Tabular Form's Column Read-Only and No Duplication et ce discussion

Exemple:

if ($x(field_id).value != "") { 
    $x(field_d).readOnly = "readonly"; 
} 
+0

Bonjour Muhammad, Merci pour votre réponse. J'avais déjà appliqué la même méthode mais ça ne fonctionnait pas. Peut-être parce que ma colonne utilise une liste de valeurs de la méthode de liste de sélection. mais je l'ai eu en utilisant la ligne ci-dessous $ ("[name = f04]"). css ("pointer-events", "none"); – user3780030

+0

Salut Muhammad, J'ai changé la propriété de "readonly" à "désactivé" et cela a fonctionné var curr_id = document.wwv_flow.f04 [i] .id; $ x (curr_id) .disabled = true; – user3780030

0

Merci Vance pour la solution. J'ai eu un problème similaire mais je voulais qu'il soit en lecture seule sur une action. Ainsi, le $("[name=f01]").css("pointer-events","none"); peut également être utilisé dans n'importe quelle fonction javascript.

function alerts_c(){ 

    var insno= $v('P14_SYSINSNO'); 
    var workDate = $v('P14_WORK_DATE'); 


    $('.t-Report-report tr').last().find('[name=f02]').val(insno) 
    $('.t-Report-report tr').last().find('[name=f03]').val(workDate) 
    $("[name=f02]").css("pointer-events","none"); 
    $("[name=f03]").css("pointer-events","none"); 

    apex.event.trigger(document,"alerts_d"); 


};