45 messaggi dal 16 aprile 2008
Ho una funzione js che scatena l'evento click di un pulsante,ma mi sono accorta che l'id del pulsante viene modificato in esecuzione e quindi la funzione non può essere chiamata, generando un errore.

il nome pulsante è: cmm_help

rinominato in ctl00_cmm_help

Questo valore="ctl00_" è fisso o è casuale e quindi cambia? c'è un modo per interpretare questo valore, salvarlo ed aggiungerlo all'id dell'oggetto in modo che sono sicura che l'assegnazione del nome oggetto rimanga invariato?

Se ci sono anche dei suggerimenti nel percorrere strade migliori, ben vengano.

Saluti Diana
il valore ctl00 ecc ecc non è casuale, ma generato in base alla gerarchia dei controlli.

puoi ovviare a questo problemi includendo nel tuo javascrip:

<%= cmm_help.ClientID %> nei punti salienti.


la proprietà ClientID ti restituisce l'id che asp.net genera automaticamente

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
38 messaggi dal 20 ottobre 2009
Diana, la best practice - fino ad asp.net 3.5 - è usare come già detto da nostromo la proprietà ClientID del controllo che intendi referenziare nel tuo codice client-side con la sintassi <%= Control.ClientID %>. In asp.net 4.0 si avrà la possibilità di stabilire se l'id del controllo client-side dovrà essere modificato o meno dal runtime di asp.net. Alternativamente puoi usare un metodo un pò più "bruto" per referenziare un id client-side nello scenario discusso:

function GetElementByTagAndPartialID(tagname, partialID) {

var elementsWithTag = document.getElementsByTagName(tagname);
var elementFound = null;

if (elementsWithTag != null) {
for (i = 0; i < elementsWithTag.length; i++) {
if (elementsWithTag[i].id.indexOf(partialID) > -1) {
elementFound = elementsWithTag[i];
break;
}
}
}

return elementFound;
}


Spero possa esserti utile,

See ya.

Ci sono solo 10 categorie di persone al mondo: quelle che non conoscono il binario e quelle che lo conoscono.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.