Originariamente inviato da cassano
credo di aver capito..ma se me lo fai di sicuro non lo rifiuto...grazie della disponibilità.
Nell'esempio che ho buttato giù, uso una tabella di un database Access.
nome tabella: Tabella15
campi:
id, numerico, chiave primaria
testo, memo
Nell'esempio, interrogo la tabella ogni tot secondi tramite chiamate ajax e restituisco le ultime n news.
nella stessa pagina (dovrebbe essere in una pagina separata) c'è la sezione per inserire nuove new nel database, sempre fatto tramite chiamata ajax.
Per ajax uso la libreria prototype.js
ps. la grafica fa schifo
pagina
codice:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="news.aspx.vb" Inherits="prove_a" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Pagina senza titolo</title>
<link href="../../../../App_Themes/Tema1/StyleSheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../../../js/prototype.js"></script>
<script language="javascript" type="text/javascript">
// <!CDATA[
window.onload = function()
{
window.setTimeout(aggiorna_marquee, 10000);
}
function aggiorna_marquee()
{
var url_action = "?comando_ajax=aggiorna_marquee";
var parametri = "";
new Ajax.Request(url_action, { onComplete:showResponse, parameters:parametri } );
function showResponse(originalRequest)
{
var t = originalRequest.responseText;
$("mr_1").innerHTML = t;
window.setTimeout(aggiorna_marquee, 10000);
}
}
function aggiungi_new()
{
$("div1").innerHTML = "<img alt=\"attendere...\" src=\"../../../../immagini/indicator.white.gif\" />";
var url_action = "?comando_ajax=aggiorna_new";
var parametri = "p_new=" + encodeURIComponent($("TextArea1").value);
new Ajax.Request(url_action, { onComplete:showResponse, parameters:parametri } );
function showResponse(originalRequest)
{
var t = originalRequest.responseText;
$("div1").innerHTML = t;
}
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<marquee id="mr_1" runat="server" direction="up" scrolldelay="100" scrollamount="1" style="background-color:Bisque" ></marquee>
<textarea id="TextArea1" style="width: 571px; height: 275px"></textarea>
Aggiungi new
<div id="div1">[img]../../../../immagini/indicator.white.gif[/img]</div>
</div>
</form>
</body>
</html>
codice
codice:
Option Strict On
Partial Class prove_a
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim comando_ajax As String = RequestParams("comando_ajax")
If comando_ajax = "aggiorna_marquee" Then
Response.Clear()
Response.Write(Ultime3News())
Response.End()
Exit Sub
ElseIf comando_ajax = "aggiorna_new" Then
aggiorna_new()
Exit Sub
End If
Me.mr_1.InnerHtml = Ultime3News()
End Sub
Private Function Ultime3News() As String
Dim sb As New StringBuilder(10000)
Dim dt As DataTable = libreria.GetDataTable(StringaConnessioneTest, "SELECT TOP 3 [testo] FROM Tabella15 ORDER BY [id] DESC;")
For i As Integer = 0 To dt.Rows.Count - 1
If i > 2 Then Exit For
sb.Append("<p style='border:1px black solid;'>")
sb.Append(dt.Rows(i)(0).ToString().Replace(vbNewLine, "
"))
sb.Append("</p>")
Next
Return sb.ToString()
End Function
Private Sub aggiorna_new()
Dim p_new As String = RequestParams("p_new")
Dim Connessione As OleDbConnection = Nothing
Dim Comando As OleDbCommand = Nothing
Dim Transazione As OleDbTransaction = Nothing
Dim Sql$ = ""
Try
Connessione = New OleDbConnection(StringaConnessioneTest)
Connessione.Open()
Transazione = Connessione.BeginTransaction()
Comando = New OleDbCommand
Comando.Connection = Connessione
Comando.Transaction = Transazione
Append(Comando)
'Update(Comando)
'Delete(Comando)
Transazione.Commit()
'Transazione.Rollback()
Response.Write("New inserita")
Catch ex As Exception
If (Not (Transazione Is Nothing) AndAlso Not (Transazione.Connection Is Nothing)) Then Transazione.Rollback()
Response.Write(toStringaJS("Errore nell'aggiornamento:" & vbNewLine & vbNewLine & ex.Message))
Finally
If (Not (Connessione Is Nothing)) Then Connessione.Close()
End Try
Response.End()
End Sub
Private Sub Append(ByVal Comando As OleDbCommand)
Dim p_new As String = RequestParams("p_new")
Dim prossimo_id As Integer = libreria.ProssimoIDAccess(Comando, "tabella15", "id")
Dim Sql$ = "INSERT INTO [tabella15] ( [TESTO], [ID]) VALUES (?,?) "
Comando.CommandText = Sql
Comando.Parameters.Clear()
Comando.Parameters.Add("testo", OleDbType.VarChar, 60000).Value = p_new
Comando.Parameters.Add("id", OleDbType.Integer).Value = prossimo_id
Comando.ExecuteNonQuery()
End Sub
End Class