Jag har en knasigt problem som jag nu stirrat mig blind på.
Jag har en datalist som jag visar bilder och som har två länkar för att bläddra fram och tillbaka.
Men av nån anledning när jag bläddrar fram ett steg så fylls min datalist om igen och en del bilder från föregående sida visas igen fast i oordning.
Jag har tre osynliga textboxar som håller reda på max antal sidor i min datalist, vilken sida jag är på samt totalt antal items som datalisten fylls med.
De heter intPageSize , intRecordCount och intCurrIndex
Detta är min kod.
i Page_Load:
if(!Page.IsPostBack)
{
intPageSize.Text = "18";
intCurrIndex.Text = "0";
fillDataList();
}
i fillDataList:
private void fillDataList()
{
OdbcConnection con = new OdbcConnection(// Databas connection
DataSet ds = new DataSet();
OdbcDataAdapter adpt = new OdbcDataAdapter(" \*\* hämtar från databas" \*\* ", con);
if(!Page.IsPostBack)
{
adpt.Fill(ds);
intRecordCount.Text = ds.Tables\[0\].Rows.Count.ToString();
ds = null;
ds = new DataSet();
}
adpt.Fill(ds, Convert.ToInt32(intCurrIndex.Text), Convert.ToInt32(intPageSize.Text),"Sales");
imageList.DataSource = ds.Tables\[0\].DefaultView;
imageList.DataBind();
int pageCount;
if (Convert.ToInt32(intRecordCount.Text) % Convert.ToInt32(intPageSize.Text) == 0)
pageCount = Convert.ToInt32(intRecordCount.Text) / Convert.ToInt32(intPageSize.Text);
else
pageCount = Convert.ToInt32(intRecordCount.Text) / Convert.ToInt32(intPageSize.Text) + 1;
if(Convert.ToInt32(intCurrIndex.Text) == (pageCount-1))
showNextLink.Enabled = false;
else
showNextLink.Enabled = true;
if(Convert.ToInt32(intCurrIndex.Text) == 0)
showPreviousLink.Enabled = false;
else
showPreviousLink.Enabled = true;
con.Close();
}
och till sist mina fram, tillbaka länkar:
private void showPreviousLink_Click(object sender, System.EventArgs e)
{
showNextLink.Enabled = true;
if(Convert.ToInt32(intCurrIndex.Text) \> 0)
{
int t = Convert.ToInt32(intCurrIndex.Text) - 1;
intCurrIndex.Text = t.ToString();
fillDataList();
if(Convert.ToInt32(intCurrIndex.Text) == 0)
showPreviousLink.Enabled = true;
}
fillDataList();
}
private void showNextLink_Click(object sender, System.EventArgs e)
{
showPreviousLink.Enabled = true;
if(Convert.ToInt32(intCurrIndex.Text) \< (Convert.ToInt32(intRecordCount.Text) -1 ))
{
int t = Convert.ToInt32(intCurrIndex.Text) + 1;
intCurrIndex.Text = t.ToString();
fillDataList();
if(Convert.ToInt32(intCurrIndex.Text) == (Convert.ToInt32(intRecordCount.Text) -1 ))
showNextLink.Enabled = false;
}
fillDataList();
}
Jag antar att det är något knas med hur dataset fylls men jag kan inte lista ut vad det är.
Är det nån som har gjort liknade och har en lösning eller ser nån vad för fel jag gjort?
Tacksam för hjälp.
Soham