Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
AAX - Problema
mercoledì 28 novembre 2007 - 15.08
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 28 nov 2007 - 15:08
Ciao ragazzi, sto cercando di fare una chat rudimentale con ajax per esercitarmi.
Ho messo un controllo ajax UpdatePanel con dei controlli dentro tra cui un bottone. Se clicco sul bottone mi aggiorna correttamente la textbox nell' UpdatePanel in 'ajax mode'. Vorrei pero' che la textbox fosse aggiornata anche in corrispondenza dell'evento tick del Timer, per visualizzare cosa scrivono altri utenti.
Il tick viene scatenato (me ne accorgo perche' perdo il focus da un controllo) ma non riesco ad aggiornare la textbox. Questo e' cio che scrivo in corrispondenza dell'evento
protected void TimerChat_Tick(object sender, EventArgs e)
{
txtLavagna.Text = Application["APPL_LAVAGNA"].ToString();
}
Vi allego anche il codice asp.net per completezza, anche se non serve credo.
<asp:Timer ID="TimerChat" runat="server" Interval="5000">
</asp:Timer>
<br />
<asp:UpdatePanel ID="upnMain" RenderMode="Block" UpdateMode="Always" runat="server">
<ContentTemplate>
<asp:Label id="lblUtentiConnessi" runat="server" Width="111px" ForeColor="#8080FF" Font-Bold="True">Utenti On-Line:</asp:Label><asp:Label id="lblNumConnessi" runat="server" Text="Label" ForeColor="#8080FF"></asp:Label> <BR /><asp:GridView id="GridView1" runat="server" ToolTip="Elenco utenti collegati al sito" DataSourceID="srcUtenti" CellPadding="4" BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC" BackColor="White" AutoGenerateColumns="False">
<FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
<Columns>
<asp:BoundField DataField="User" HeaderText="User" SortExpression="User" />
<asp:BoundField DataField="IP" HeaderText="IP" SortExpression="IP" />
</Columns>
<RowStyle BackColor="White" ForeColor="#003399" />
<SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
<HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
</asp:GridView> <BR /> <asp:Label id="lblLavagna" runat="server" Width="226px" Text="Lavagna:" ForeColor="#8080FF"></asp:Label> <asp:TextBox id="txtLavagna" runat="server" Width="255px" Height="231px" Font-Size="Smaller" TextMode="MultiLine" ForeColor="White" Font-Bold="False" Enabled="False" BackColor="Black" AutoPostBack="True"></asp:TextBox><BR /> <asp:TextBox id="txtMessLavagna" runat="server" Width="246px" ToolTip="Scrivi un messaggio." BackColor="LightSteelBlue"></asp:TextBox> <asp:Button id="btnLavagna" onclick="btnLavagna_Click" runat="server" Width="255px" Text="Invia" ToolTip="Cliccare per inviare il messaggio" OnClientClick="LavagnaClick(this)"></asp:Button><BR /> <asp:Button id="btnRefreshLavagna" onclick="btnRefreshLavagna_Click" runat="server" Text="Refresh" Visible="False" ToolTip="Acquisisci il contenuto aggiornato (da altri utenti) della lavagna"></asp:Button> <asp:SqlDataSource id="srcUtenti" runat="server" SelectCommand="Select distinct Utente as "User", IndirizzoIp as IP from LogAzioni a where DATEDIFF(n, DataOra, GETDATE()) < 2 and len(Utente)>0 and IndirizzoIp not in (select IndirizzoIp from LogAzioni b 	where DATEDIFF(n, DataOra, GETDATE()) < 2 and (Utente = '' or Utente = null) and b.DataOra > a.DataOra) union Select distinct 'Ospite' as "User", IndirizzoIp as IP from LogAzioni where DATEDIFF(n, DataOra, GETDATE()) < 2 and (Utente = '' or Utente = null) and IndirizzoIp not in ( Select distinct IndirizzoIp as IP from LogAzioni c where DATEDIFF(n, DataOra, GETDATE()) < 2 and len(Utente)>0 and IndirizzoIp not in (select IndirizzoIp from LogAzioni d 	where DATEDIFF(n, DataOra, GETDATE()) < 2 and (Utente = '' or Utente = null) and d.DataOra > c.DataOra) )" ConnectionString="<%$ ConnectionStrings:MSSql20470ConnectionString %>">
</asp:SqlDataSource>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TimerChat"/>
</Triggers>
</asp:UpdatePanel>
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 28 nov 2007 - 15:11
Ciao!
Prova a spostare il timer dentro l'updatepannel.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 28 nov 2007 - 15:40
ho provato ma non funziona...
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 28 nov 2007 - 15:43
Hai provato a mettere un breakpoint nell'evento del timer lato server?
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 28 nov 2007 - 15:52
Risolto... deve stare fuori il Timer ma aveva preso l'evento del timer precedente... me ne sono accorto con il break ;-) grazie
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 28 nov 2007 - 16:00
Prego figurati :)
Vorrei chairire, per chiunque legga questo thread, che il timer può stare fuori perchè l'hai registrato nei triggers.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.dotnethell.it/Wamblog
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 28 nov 2007 - 16:01
...ora per non riesco a impostare il focus... curioso riesco a cambiare il testo ma non a impostare il focus nell'evento tick... non mi prende l'istruzione...
protected void TimerChat_Tick1(object sender, EventArgs e)
{
txtLavagna.Text = Application["APPL_LAVAGNA"].ToString();
txtMessLavagna.Focus();
}
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 28 nov 2007 - 16:28
>protected void TimerChat_Tick1(object sender, EventArgs e)
> {
>txtLavagna.Text = Application["APPL_LAVAGNA"].ToString();
> txtMessLavagna.Focus();
> }
Sembra tutto a posto. Controlla di non avere altri elementi con il Focus settato oppure prova a farlo in javascript.
Altra cosa interessante "Qual'è l'elemento con il focus?"
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.dotnethell.it/Wamblog/
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 28 nov 2007 - 16:36
Nessuno, dopo il tick nessun controllo visibile ha il focus. Ho provato a settare il focus sia nell' evento tick che nel pageLoad (dove lo prende solo con i postback tradizionali).
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 28 nov 2007 - 16:38
mmm
Potrebbe essere da imputare al postback parziale.
Prova a farlo in javascript.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.dotnethell.it/Wamblog/
kduhcm
Profilo
| Junior Member
191
messaggi | Data Invio:
mer 28 nov 2007 - 16:54
mmm... forse conviene aprire un nuovo post per questo...intanto chiudo questo.... grazie wamba :-)
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
mer 28 nov 2007 - 17:37
Prego, hai ragione siamo pesantemente OT
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.dotnethell.it/Wamblog/
Torna su
Stanze Forum
Elenco Threads
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 !