Ciao a tutti!Ho un problema per quanto riguarda il paging..
Dunque:
Ho una pagina in cui si vedono una serie di appuntamenti.
La prima volta che viene caricata la pagina viene pololato il datagrid con tutti gli appuntamenti. Qui il paging funziona correttamente. Muovendomi sui numerini sotto scorro le pagine.
Sulla stessa pagina posso fare una ricerca.
Il risultato viene messo nel datagrid e sembra che il paging funzioni..
Ma in realtà quando clicco sul menù per scorrere le pagine successive mi vengono ricaricati tutti i valori.
Come posso risolvere questo problema?
Grazie!
Questo è il codice:
Sub Page_Load
if session("admin") is nothing
response.redirect ("login_admin.aspx")
end if
If Not IsPostBack Then
AggiornaDati
popola_drop
carica_categorie
End If
End Sub
''''''''''''''''''''''''''''''''''''''''''''
Sub AggiornaDati 'carica i dati nel datagrid
Dim conn As SqlConnection
Dim dadagenda As SqlDataAdapter
Dim dstagenda As DataSet
Dim sql As String
sql="SELECT distinct comuni.nome, agenda_data.data, agenda.id_agenda, agenda.titolo, agenda.id_cat FROM agenda INNER JOIN agenda_data ON agenda.id_agenda = agenda_data.id_agenda INNER JOIN comuni ON agenda.id_comune = comuni.id_comune "
Dim connString as String =ConfigurationSettings.AppSettings("constr")
conn= New SqlConnection(connString)
dadagenda = New SqlDataAdapter( sql, conn )
dstagenda = New DataSet
dadagenda.Fill( dstagenda )
dgagenda.DataSource = dstagenda
If dgAgenda.Items.Count Mod dgAgenda.PageSize = 1 And _
dgAgenda.CurrentPageIndex = dgAgenda.PageCount - 1 And _
dgAgenda.CurrentPageIndex <> 0 Then
dgAgenda.CurrentPageIndex = dgAgenda.CurrentPageIndex - 1
End If
dgagenda.DataBind()
if dgagenda.items.count>0 then
msg1.text=""
else msg1.text="Non ci sono appuntamenti nell'agenda"
end if
conn.Close()
End Sub
'''''''''''''
Sub dgagenda_pageindexchanged(s As Object, e As DataGridPageChangedEventArgs) 'indice delle pagine
dgagenda.CurrentPageIndex=e.NewPageIndex
AggiornaDati
end sub
Sub DataGrid_ItemCreated(Sender As Object, e As DataGridItemEventArgs) ' intercetta il bottone cancella e inserisce la conferma della cancellazione
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
Dim myDeleteButton As LinkButton
myDeleteButton = e.Item.FindControl("b_elimina")
myDeleteButton.Attributes.Add("onclick","return confirm('Sei sicuro di voler cancellare l?appuntamento dall?agenda?');")
End Select
If e.Item.ItemType = ListItemType.Pager Then ' personalizzo il paging
Dim wc As WebControl
Dim cnt As Integer
Dim pager As TableCell
Dim lnk As LinkButton
Dim lt As Literal
Dim tc As TableCell
Dim txt As TextBox
Dim btn As Button
pager = e.Item.Controls(0)
For cnt = 0 To pager.Controls.Count - 1 Step 2
wc = pager.Controls(cnt)
If wc.GetType.ToString() = "System.Web.UI.WebControls.DataGridLinkButton" Then
if cnt=0 then
CType(wc, LinkButton).Text = "Pagina: " & CType(wc, LinkButton).Text & ""
else
CType(wc, LinkButton).Text = "" & CType(wc, LinkButton).Text & ""
end if
Else
CType(wc, Label).Text = "<b>" & CType(wc, Label).Text & "</b>"
if cnt=0 then
CType(wc, Label).Text = "Pagina: <b>" & CType(wc, Label).Text & "</b>"
end if
End If
Next
End if
End Sub
'''''''''''''''''''''''''''''''''
Sub cerca_agenda(s As Object, e As ImageClickEventArgs)
Dim conn As SqlConnection
Dim dadagenda As SqlDataAdapter
Dim dstagenda As DataSet
Dim sql As String
dim testo_cerca as string
dim sost as string
testo_cerca=testo.text
if len(testo_cerca)>0 then
testo_cerca=replace(testo_cerca, "'", "?")
sost="%'and agenda.titolo LIKE'%"
testo_cerca=replace(testo_cerca, " ", sost)
end if
' sql="select agenda.id_agenda,agenda.titolo from agenda where agenda.titolo LIKE '%" & testo_cerca & "%' "
sql="SELECT distinct comuni.nome, agenda_data.data, agenda.id_agenda, agenda.titolo, agenda.id_cat FROM agenda INNER JOIN agenda_data ON agenda.id_agenda = agenda_data.id_agenda INNER JOIN comuni ON agenda.id_comune = comuni.id_comune WHERE agenda.titolo LIKE '%" & testo_cerca & "%' "
if dropcategorie.items(dropcategorie.SelectedIndex).Value > -1 then
sql=sql & " and agenda.id_cat = " & dropcategorie.items(dropcategorie.SelectedIndex).Value
end if
dim data as string
if dropgiorno.items(dropgiorno.SelectedIndex).Value > -1 then
if len(dropgiorno.items(dropgiorno.SelectedIndex).Value)>1 then
data=dropgiorno.items(dropgiorno.SelectedIndex).Value
else
data= "0" & dropgiorno.items(dropgiorno.SelectedIndex).Value
end if
end if
if dropmese.items(dropmese.SelectedIndex).Value > -1 then
if len(dropmese.items(dropmese.SelectedIndex).Value)>1 then
data=data & "/" & dropmese.items(dropmese.SelectedIndex).Value
else
data=data & "/0" & dropmese.items(dropmese.SelectedIndex).Value
end if
end if
if dropanno.items(dropanno.SelectedIndex).Value > -1 then
data=data & "/" & dropanno.items(dropanno.SelectedIndex).Value
end if
if len(data)>1 then
sql=sql & " and agenda_data.data LIKE '%" & data & "%'"
end if
Dim connString as String =ConfigurationSettings.AppSettings("constr")
conn= New SqlConnection(connString)
dadagenda = New SqlDataAdapter( sql, conn )
dstagenda = New DataSet
dadagenda.Fill( dstagenda )
dgagenda.DataSource = dstagenda
dgagenda.CurrentPageIndex=0
dgagenda.DataBind()
if dgagenda.items.count>0 then
msg1.text=""
else msg1.text="La ricerca non ha portato risultati"
end if
conn.Close()
testo.text=""
end sub