23 messaggi dal 23 giugno 2007
www.liquidfly.it
Credo d'aver capito da dove nascono le difficoltà nel voler usare il tuo metodo, io non no ne database ne datatable dietro alla gridview, ma ho una grande classe che mi genera il codice html delle singole news nelle varie condizioni, prepara le immagini, i tensi, i link ecc ecc.. quindi già aggiungere celle alla lista contenenti di tutto non mi riesce.
In fondo io al momento ho tutto, solo che non riesco a collegare i trigger, o meglio, al momento non riesco a recuperare l'oggetto creato al volo per poterlo definire come trigger. Poi le animazioni della lista sono un'altro problema da affrontare in un secondo momento, credo.
843 messaggi dal 08 aprile 2009
Si che puoi rendolo dinamico, puoi utilizzare gli oggetti asp e poi fare il bind con i dati del db.
Gli oggetti asp una volta renderizzati diventano oggetti html e possono essere agganciati a jquery.
Per esempio l'asp Panel diventa un div e ha un ID del controllo e un ClientID che è quello che potresti agganciare a jquery.

Ti faccio un esempio:
in una applicazione che sto sviluppando per l'inserimento dei dati in una form di anagrafica utilizzo il ModalForm di jquery. Nella parte grafica ho un Asp Panel con il disegno dei campi. Sapendo che l'asp panel diventa un div che è quello che viene visualizzato sotto forma di ModalForm aggancio il clientID all'evento di jquery showdialog. Tieni prendente che quando a un controllo asp assegni l'id per sempio miocontrollo il clientid diventa ctl00_miocontrollo.
Jquery essendo una libreria di classi javascript riconosce la parte client e non la parte server.

Gli script li puoi registrare anche nella parte server se ti servono dinamici tramire il RegisterClientScriptBlock (ci sono milioni di documentazioni su internet e anche su questo forum). Tieni presente che guando utilizzi gli updatepanel gli script non li puoi caricare a livello di pagina ma sullo scriptmaganer. Esempio:
System.Web.UI.ScriptManager.RegisterClientScriptBlock(pagina, type, "ShowModalForm", script, false);


Quello che ti consiglio è andare per passi, cioè affrontare un problema alla volta.
Quindi gestisci prima il codice per la visualizzazione delle news in una lista e al click su una visualizzi il dettaglio e poi preoccupati dell'effetto che puoi dare con jquery. Inoltre se non conosci jquery e come opera dovresti guardare prima qualche guida, ce n'è una proprio su aspitalia.
843 messaggi dal 08 aprile 2009
Allora non riesco a trovare l'oggetto cosa significa? lo devi fare lato server o client?
Se lo devi fare lato server e questi oggetti non sono server non puoi recuperarlo.Per renderli lato server o utilizzi gli oggetti asp che per default sono server o aggiungi l'attributo runat=server ad ogni oggetto e poi lo recuperi con il FindControl.

Se lo devi fare lato client ajax non ti serve ma puoi fare il tutto utilizzando javascript o la libreria di jquery.
23 messaggi dal 23 giugno 2007
www.liquidfly.it
Ok, cerchiamo di focalizzare i problemi, jquery l'ho già utilizzato, non posso dire che sono esperto ma quel che devo fare ci riesco sempre. La novità che ancora non riesco a focalizzare è che devo costruire una pagina dinamicamente e questa pagina deovrà sfruttare le potenzialità che io chiamo ajax, ovvero il poter aggiornare una parte di pagina in base agli eventi dell'utente.
La pagina in questione già c'è e funziona passandogli dei parametri, ma ad ogni cambio di news deve ricostruirsi da zero.
Quello che sto cercando di fare è :

Nell'evento Pageload ,creo la mia classe di news

poi ciclo sulle news e vado a comporre la lista.
'(ho semplificato il codice)
For Each L_News As Cls_NewsList.News In L_NewsList.NewsList
L_ListHtml &= L_News.PreviewHtmlClose
Next

'Compilo la lista
NewsScrollList.InnerHtml = L_ListHtml

Poi voglio agganciare i trigger

For Each L_News As Cls_NewsList.News In L_NewsList.NewsList
'Recupero il Div
Dim L_CloseDiv As Object = NewsScrollList.FindControl("NewsRefLink_" & L_n)

'!!!!!!! QUI IL PROBLEMA, L_CloseDiv è SEMPRE NOTHING

'Aggancio i trigger all'altro updatepanel
Upp_News.Triggers.Add(L_CloseDiv)
Next

'Secondo me, se riesco ad agganciare i trigger dovrei aver risolto una grande parte di problemi.
Sto inoltre cercando di costruire una pagina con li sistema da te consigliato, ma per la branca di programmazione che percorro normalmente io conosco molto molto poco i database e i loro oggetti, quindi sto brancolando un po' nel buio.

Grazie per la pazienza.
843 messaggi dal 08 aprile 2009
Quindi il tuo problema è che
NewsScrollList.FindControl("NewsRefLink_" & L_n)
non trova il controllo.
Innanzi tutto ti consiglio di guardare l'html generato e guarda se c'è il controllo.
Poi che tipologia di controllo è? un div? un link?....
Come ti ho detto se è un controllo generico html (div, input,a) se non specifichi il parametro runat=server il controllo non lo troverai mai lato server. Se utilizzi i controlli asp questi sono per default server.
Se nell'html c'è verifica se tramnite il me.findcontrol lo trovi. Forse lo devi cercare a livello di pagina...
23 messaggi dal 23 giugno 2007
www.liquidfly.it
Ti dirò che più o meno li ho provati tutti i tipi... ma non ne vuole sapere di trovarlo...

nell'innerhtml del mio updatepanel in cui inserisco il codice dinamicamente trovo scritto

<div id="CloseNews_0" class="Dn_NewsClosed" name="20100528.0930" runat="server">
e tutto il resto del codice

ma se guardo quanti controlli contiene mi dice controls.count=1 e quell'uno è la masterpage. bo?

Il FindControl ho provato a farlo dal panel, dal me. ma niente di niente... non lo trova..!!!

Pensavo in alternativa di creare io da codice il controllo tipo:

dim MioContenitore as new web.ui.webcontrol...... ma non so quale controllo utilizzare che faccia un contenitore tipo div (trasparente all'utente) e che abbia un evento click da agganciare con addandler MioContenitore.click, addressOf .....
Con questa ultima possibilità dovrei agganciare facilmente i trigger ed intercettare gli eventi... o dico la stupidata da sviluppatore desktop?
843 messaggi dal 08 aprile 2009
Dal nome del controllo (CloseNews_0) utilizzi un div html. Puoi utilizzare un asp Panel che viene renderizzato con un div nel risultato finale e che quindi colloquia tranquillamente con jquery. L'unica cosa che ti devi ricordare è che l'id client sarà "ctl00_CloseNews_0" invece di "CloseNews_0". Cioè a livello di codice asp tu assegnerai all'asp panel id="CloseNews_0" così come fai con il div. Quando vedrai l'html generato il tuo controllo avrà nome "ctl00_CloseNews_0" ed è questo il nome che devi utilizzare come selettore per jquery.
23 messaggi dal 23 giugno 2007
www.liquidfly.it
Ciao, buon inizio settimana... il fine mi ha portato un'idea che se riesco a metterla in partica forse mi risolve tutto, devo solo capire come si fa.
Ti spiego :

Se quando compilo la mia lista, nel mio div ci metto il classico onclik=javascript:(funzioneJS...)... con il parametro che fa da identificatore della news cliccata.

Poi la mia pagina avrà quella funzione javascript che riceve l'evento e chiama asp.net il quale farà l'aggiornamento del solo panel della singola news e chiama jquery per quel che riguarda la grafica.
Teoricamente funziona, solo non so come fare da una funzione js ad aggiornare il solo updatepanel della singola news.

Cosa ne pensi? Sai come si fa?

Grazie

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.