Rating Control che non funziona dentro una masterpage

lunedì 07 maggio 2012 - 17.24
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows XP  |  Visual Studio Express  |  MySQL 5.1  |  Firefox

ravalon Profilo | Expert

Salve a tutti

ho un progetto in cui ho inserito un RATING CONTROL (Ultima versione del AJAXControlToolkit) che mi funziona perfettamente in una pagina senza Masterpage ma non in una con Masterpage...

Ho testato lo stesso codice su due pagine diverse (entrambe con UpdatePanel) e in quella con la Masterpage noto che nemmeno si illuminano le stelline quindi non posso proprio votare....inoltre non mi scatena nessun evento ....mettendo un blocco sul codice "OnChanged" non lo esegue per niente...quindi è come se il controllo fosse bloccato...

Non è la prima volta che le MasterPage mi creano problemi ma in tal caso, dato che il controllo è proprio bloccato, non so come agire...

...avete qualche idea ???

P.S. non ho postato il codice perchè funzionante senza masterpage e perchè copiato pari pari da quello del sito madre di asp.net

slavishdany Profilo | Newbie

Se interagisci con delle text o delle label. prova a controllare gli id perchè quando hai una master diventano tipo ctl00_body_label1 . Stessa cosa vale per i button o altri elementi che hanno un id

ravalon Profilo | Expert

Ciao e grazie per la risposta...

in effetti poco prima che vedessi la tua replica, per puro caso ho cliccato un bottone che sta sotto il RatingControl....dopo questo click che per altro attualmente non fa niente(non ho messo nessun codice), tutto funzionava perfettamente....

Quindi sta li il problema secondo te ? cosa devo fare, devo agire sul ControlIdMode ?

Gluck74 Profilo | Guru

si, il problema potrebbe essere proprio la masterpage.
Non avendo sotto mano il codice, non riesco a capire quale potrebbe essere l'errore, ma se, come ti suggerisce ravalon, fissi gli ID sul client (ovvero non permetti la classica decodifica ctl00_xxx_yyy_idcontrollo, dovrebbe risolversi.

metti ClientIDMode="static" nelle direttive della pagina

magari se non risci posta il codice o dacci il riferimento alla pagina da dove hai copiato l'esempio.

ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

ravalon Profilo | Expert

ho prova a mettere ClientIDMode="static" nella direttiva della page ma non cambia niente...

quindi mi suggerisci di mettere un clientID diverso per ogni controllo ? comunque mi pareva che nonostante la strana nomenclatura (CTL00_ etc etc) nessun controllo potesse avere uguali ID...io gli ID dei controlli li ho messi diversi....forse non ho capito eh...

Di che codice hai bisogno ? solo del pezzo dove sta dentro il RatingControl, puo' andare bene ? perchè sennò tra un'inclusione e l'altra viene un mare di righe....

Gluck74 Profilo | Guru

mmm, se ancora non va c'è proprio bisogno del codice.
cominciamo proprio con la parte dove metti il rating control

ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

ravalon Profilo | Expert

Ok eccolo quà...e intanto grazie !

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

slavishdany Profilo | Newbie

Mah a parer mio non è questo il codice che serve, ma quello in cui interagisci con i controlli. Questo è quello dove metti il controllo nella pagina. Gli ho dato un'occhiata veloce, però prova a postare il codice in cui tu interagisci con il controllo.

Gluck74 Profilo | Guru

ok, il codice mi sembra abbastanza pulito, però farei una modifica:
togli l'updateprogress da dentro l'updatePanel.

inoltre una domanda: che controllo è ucSplitTableBarra:SplitTableBarra ? per caso un telerik?
altra domanda, su che browser stai provando questi rating?

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

ravalon Profilo | Expert

Ciao e grazie ad entrambi...

il controllo di cui parli non è un telerik ma un semplice controllino banale che mi sono creato (più che altro per scopi di auto-istruzione) che mi fa da spaziatore particolare....ritorna semplicissimo codice html....

Sto usando Firefox aggiornatissimo...

Ho tolto l'updateprogress che peraltro c'è ovunque nel sito e non da problemi, però la situazione non è migliorata....cosa ne pensate ?

...e del fatto che se clicco su un qualsiasi bottone dopo funziona ?? Da cosa dipende ? Può indicare forse la soluzione al problema ?

slavishdany Profilo | Newbie

questo progetto cel'hai pubblicato da qualche parte? o comunque riesci a pubblicarlo ? perchè io sono strano, se non lo vedo mi è difficile fornire spiegazioni :)

Gluck74 Profilo | Guru

il fatto che cliccando su un bottone poi il rating si mette a funzionare.... mi puzza di problema javascript.
I bottoni fanno postback vero?

Hai controllato che non ci siano errori javascript al primo load della pagina?
hai provato su IE 7 o 8?

P.S.:
l'updateProgress in genere non si mette dentro un updatePanel, perché nel mentre che il pannello si aggiorna, potresti non vedere l'effetto che invece si richiede ad un progress. quindi
<asp:UpdatePanel ... ...> <ContentTemplate> </ContentTemplate> </asp:UpdatePanel> <asp:UpdateProgress ... ...> <ProgressTemplate> </ProgressTemplate> </asp:UpdateProgress>

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

ravalon Profilo | Expert

Non ce l'ho pubblicato con queste modifiche altrimenti ti passavo il link...

I bottono fanno postback perchè dovranno scrivere su DB ma attualmente non hanno codice.... c'è solamente il codice ASPX che già ho postato se non erro...

Errori JS sulla pagina non mi venivano segnalati come di consueto ma analizzando il tutto con la console errori di Firefox ne ho trovati ben 3 che riporto:

Data e ora: 08/05/2012 17.13.41
Avviso: Errore durante l'interpretazione di 'width'. Dichiarazione tralasciata.
File sorgente: http://localhost:11445/xxx/Catalogo/StatoOrdiniDettaglio.aspx?IdOrdine=2
Riga: 0

Data e ora: 08/05/2012 17.13.41
Avviso: Errore durante l'interpretazione di 'height'. Dichiarazione tralasciata.
File sorgente: http://localhost:11445/xxx/Catalogo/StatoOrdiniDettaglio.aspx?IdOrdine=2
Riga: 0

Data e ora: 08/05/2012 17.13.41
Errore: missing ; before statement
File sorgente: http://localhost:11445/xxx/Catalogo/StatoOrdiniDettaglio.aspx?IdOrdine=2
Riga: 1237, Colonna: 87
Codice sorgente:
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') '.google-analytics.com/ga.js';

I primi due dovrebbero essere delle stupidaggini ed il terzo che mi pare più sostanzioso e che ha a che fare con JAVASCRIPT credo dipenda da un codice di Google Analytics mal renderizzato....
....Quindi ora passo a risolvere questi che probabilmente sono la causa del malfunzionamento.... vi faccio sapere....



AGGIORNAMENTO


ora ho solo questo errore che copio dal codice HTML restituito:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

DA IE invece ottengo un messaggio di errore JS in basso a sinistra della StatusBar che è il seguente

Messaggio: Costante String senza terminazione
Linea: 932
Carattere: 84
Codice: 0
URI: http://localhost:11445/shirtOL/Catalogo/StatoOrdiniDettaglio.aspx?IdOrdine=2

La riga incriminata è la seguente ma non capisco dove sia l'errore...

<span id="ctl00_ContentPlaceHolderMasterPage_RepeaterStatoOrdiniDetails_ctl00_LitColore" class="TestiMedi">Giallo</span>

ravalon Profilo | Expert

Ok ragazzi, problema risolto....

Praticamente avevo un errore in una delle prime funzioni richiamate dalla Masterpage, tale errore veniva tracciato dalla mia funzione di cattura errori ma davo per scontato che quella funzione fosse funzionante al 100% ... si generava un errore nel caricamento dei banner (la penultima cosa che fa la masterpage) catturato da un blocco TRY-CATCH-FINALLY....

Vedendo gli errori riportati dal codice HTML postato poco fa però tutto sembrava tranne che un errore in quel punto della funzione....una funzione che non viene neppure menzionata e questo ci potrebbe stare anche però certo stavo cercando l'errore da tutt'altra parte....

Boh, insomma se non avessi eseguito un giro in debug mode non lo avrei mai trovato seguendo solamente le segnalazioni errori di firefox (e meno male che comunque c'è)....e non l'avevo fatto girare in debug mode perchè per nessuna altra pagina mi dava problemi mentre invece essendo nella masterpage avrebbe dovuto credo....per qualche arcano motivo dava noia solamente a questo controllo...

....tutto è bene quel che finisce bene, vi ringrazio tanto per avermi dato l'idea di seguire pian piano gli errori in JS, è stato il punto di svolta comunque sia...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5