Poblema asp.net ajax creazione e lettura evento linkButton

lunedì 21 giugno 2010 - 11.09

muccio04 Profilo | Newbie

ciao a tutti,
ho un piccolo problema con ajax e asp.net.
io vorrei realizzare un panello ajax che si aggiorna ogni x secondi con all'interno e mostra i dati di un articolo:

- marca e modello
- testo descrittivo
- immagine
- link alla scheda dettagliata

il codice che ho utilizzato fino ad ora è questo:

<asp:UpdatePanel ID="updPnlEvidenza" runat="server">
<ContentTemplate>
<asp:Timer ID="TimerPnlEvidenza" runat="server" Interval="40000" OnTick="Page_Load"/>
<asp:Panel ID="pnlTitoloImgInEvidenza" runat="server"></asp:Panel>
<asp:Panel ID="pnlTestoImgInEvidenza" runat="server"/>
<asp:Panel id="pnlImgEvidenza" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>

l'update panel è il contenitore, esterno il timer scandisce i secondi con i quali effettuare il refresh del box.

- pnlTitoloImgInEvidenza serve per contenere marca e modello dell'articolo che voglio mostrare.
- pnlTestoImgInEvidenza conterrà testo descrittivo e link
- pnlImgEvidenza conterrà l'immagine dell'articolo.

per ora riesco ad aggiornare titolo, testo e immagine, ma ho dei problemi con il link alla scheda dettagliata del prodotto, ossia lato server non
riesco a differenziare il click del mouse dall'evento onTick del timer, in quanto entrambe sono chiamate asincrone, qualcuno sa dirmi come posso fare?.
Grazie mille a tutti,
Simone


p.s. il codice lato server è questo:

protected void caricaArticoloInEvidenza()
{
//pulisco tutti i pannelli dalla mondezza che c'era prima
pnlImgEvidenza.Controls.Clear();
pnlTestoImgInEvidenza.Controls.Clear();
pnlTitoloImgInEvidenza.Controls.Clear();

//ottengo il numero degli articoli in evidenza
int numArticoli = contaArticoli();

//estraggo a sorte un numero da 0 a numArticoli
Random RandomClass = new Random();
int RandomNumber = RandomClass.Next(0, numArticoli);

String query = "SELECT * FROM inEvidenza";

//campi relativi all'articolo inEvidenza
String marcaModello = "marca e modello";
String descrizioneBreve = "descrizione breve";
String immagine = "immagine.jpg";
String ID = "";

//creo i literal control "marcaModello" e "descrizioneBreve"
LiteralControl litControlNomeArt = new LiteralControl(marcaModello);
LiteralControl litControlTestoImgEvidenza = new LiteralControl(descrizioneBreve +"<br/>");

//creo il link button per visualizzare il articolo in un'altra pagina e gli
//assegno commandname e funzione da eseguire in caso di click
LinkButton linkBtn = new LinkButton();
linkBtn.Text = "Details";
linkBtn.CssClass = "linkEvidenza";
linkBtn.CommandName = ID;
linkBtn.OnClientClick = "linkBtn_Click";

//creo l'immagine dell'articolo in evidenza
Image img = new Image();
img.ImageUrl = "public/img_Art_In_Evidenza/" + immagine;
img.CssClass = "imgInEvidenza";

Panel pnlDetailsInEvidenza = new Panel();
pnlDetailsInEvidenza.ID = "pnlDetailsInEvidenza";

//aggiungo a tutti i pannelli i literalcontrols, immagini e links
pnlTitoloImgInEvidenza.Controls.Add(litControlNomeArt);
pnlTestoImgInEvidenza.Controls.Add(litControlTestoImgEvidenza);
pnlTestoImgInEvidenza.Controls.Add(linkBtn);
pnlImgEvidenza.Controls.Add(img);
}

Gluck74 Profilo | Guru

ciao,
ma nel page_Load in che punto chiami la funzione caricaArticoloInEvidenza?

prova semplicemente a mettere
OnTick="caricaArticoloInEvidenza"






____________
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.
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5