Con i clic sui pulsanti si aggiornano i valori xey, ma non si esegue mai nuovamente la query del database o si aggiornano i dati sul modulo. Devi recuperare la "pagina" di dati successiva per visualizzarla.
Innanzitutto, estrai il codice del database in un metodo anziché in Load
evento:
private void LoadData()
{
server = "localhost";
database = "app";
uid = "root";
password = "root";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
if (this.OpenConnection() == true)
{
string query = "SELECT * from EVENTS LIMIT"+ x +","+ y +";";
mySqlDataAdapter = new MySqlDataAdapter(query , connection);
...
...
}
}
Quindi nel Load
evento imposta il tuo x
iniziale e y
valori e caricare i dati:
private void Form1_Load(object sender, EventArgs e)
{
x = 0;
y = 20;
LoadData();
}
Questo dovrebbe caricare la "pagina" iniziale di dati. Quindi presumibilmente hai un pulsante "successivo" e "precedente" per il paging? Ognuno incrementerebbe/diminuirebbe il x
e y
valori di conseguenza. Qualcosa del genere:
private void nextButton_Click(object sender, EventArgs e)
{
x += 20;
y += 20;
LoadData();
}
private void previousButton_Click(object sender, EventArgs e)
{
x -= 20;
y -= 20;
LoadData();
}
Andando oltre, ti consigliamo di aggiungere alcuni limiti di controllo in modo che le persone non possano fare clic su "successivo" nell'ultima pagina o "precedente" nella prima pagina. Probabilmente una gestione degli errori sarebbe una buona idea. Ci sono molti modi per lucidarlo. Ma l'idea di base è che devi interrogare nuovamente il database e riassociare i controlli del modulo a ogni pagina.