webForumDet fria alternativet

Datagrid paging i C#

5 svar · 414 visningar · startad av Bjuris

BjurisMedlem sedan juli 2001514 inlägg
#1

Har ett problem med en paging som jag inte vet hur jag skall lösa.

Följande klasser i aspx.cs filen:

private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
	{
		DataGridTrace.DataBind();
	}
}

private void btSearch_Click(object sender, System.EventArgs e)
{
	System.Data.DataSet dsResult;
	// Get app settings from web.config 
	string s = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
	appConnectionString = (string.Format(s, Server.MapPath("")));

	dg = new DbGateway(appConnectionString); 
			
	dsResult= dg.ExecuteQuery("Select * from test order by Datum desc, tid desc");
	DataGridTrace.DataSource=dsResult;
	DataGridTrace.DataBind();
}
private void DataGridTrace_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
	DataGridTrace.CurrentPageIndex=e.NewPageIndex;
	DataGridTrace.DataBind();
}

När jag klickar på nästa som genereras av pagingen i aspx filen så blir datagriden tom, men klickar jag på search knappen igen så visas det som skulle visas när jag klickar på nästa, dvs sida 2.

Någon som vet vad jag gör för fel?

BjurisMedlem sedan juli 2001514 inlägg
#2

Dödssynd... §e §e att höja upp meddelandet igen...

Men jag har letat och letat och jag vet inte varför det inte fungerar.

någon som kan hjälpa mig?

GladhMedlem sedan maj 20012 812 inlägg
#3

Nu kan jag inte så mycket om DataGrids och dess funktionallitet. Men det låter som du slått av ViewStaten för din datagrid.

- M

janrochMedlem sedan jan. 200518 inlägg
#4

Du måste sätta datasource även när du ändrar pageindex. Då ordnar det sig.

private void DataGridTrace_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGridTrace.CurrentPageIndex=e.NewPageIndex;
DataGridTrace.DataSource = [DataKälla];
DataGridTrace.DataBind();
}

BjurisMedlem sedan juli 2001514 inlägg
#5

Fixade det genom att flytta ut DataBind till en egen klass.

GladhMedlem sedan maj 20012 812 inlägg
#6

Du måste sätta datasource även när du ändrar pageindex. Då ordnar det sig.

Om du har viewstaten satt på kontrollen så behöver du inte binda om datan, eftersom den följer med på sidan och .NET själv binder alla data till kontrollen vid en postback.

- M

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)