Avatar billede maude Nybegynder
06. juni 2007 - 20:20 Der er 8 kommentarer og
1 løsning

Håndtering af OnPageIndexChanging

Jeg vil gerne kunne bladre i mit GridView men hvordan.

AutoGenerateCulomns = false, ingen datasource, AllowPaging = true, men hvad består håndteringen af OnPageIndexChanging?

Jeg arbejder i Visual Studio, C# og Asp.Net
Avatar billede dr_chaos Nybegynder
06. juni 2007 - 20:25 #1
goddag igen :)
Du skal gøre noget i denne stil:
protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{
ditgridview.PageIndex = e.NewPageIndex;
ditgridview.DataBind();
}
Avatar billede maude Nybegynder
06. juni 2007 - 20:59 #2
Hmm...

Så er der ingen data på næste side, men er det fordi datasourcen er væk eller...

Har det evt. noget at gøre med min styring af postback?
Avatar billede dr_chaos Nybegynder
06. juni 2007 - 21:09 #3
kalder du databind på dit gridview efter det nye index er blevet sat ?
Avatar billede maude Nybegynder
06. juni 2007 - 21:35 #4
Er det ikke det OnPageIndexChanging routinen netop gør?

Jeg står på side 1 og trykker på side 2.
Herefter kaldes Page_Load for selve siden efterfulgt af Page_Load for MasterPagen.
Til slut i OnPageIndexChanging før den blanke side vises.

I sidens Page_load har jeg følgende, men IsPostBack=true så det afvikles ikke:
if (!IsPostBack)
{
  Session["books"] = Book_Class.hentBooks(sp, se);
  DataSet ds = Session["books"] as DataSet;
         
  GridView1.DataSource = ds;
  GridView1.DataMember = "Books";
  this.DataBind();
}
Avatar billede dr_chaos Nybegynder
06. juni 2007 - 21:44 #5
brug OnDataBinding eventet i stedet for at databinde i page_load

protected MitGridviewOnDataBinding(object sender, EventArgs e)
{
if(Session["books"] == null)
{
Session["books"] = Book_Class.hentBooks(sp, se);
}
DataSet ds = Session["books"] as DataSet;

GridView1.DataSource = ds;
GridView1.DataMember = "Books";
this.DataBind();

}

i page_load smider du:
if (!IsPostBack)
{
GridView1.DataBind();
}

onpageindex skal være:
protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}

Når du ikke bruger sqldatasource skal du selv håndterer databinding osv og når du har sortet, skiftet til ny side osv skal databind kaldes brug gridview.
Avatar billede maude Nybegynder
06. juni 2007 - 22:43 #6
Nu looper jeg i MitGridviewOnDataBinding???????

Har jeg fat i den forkerte event? Når jeg gennemser de forskellig mulige events, finder jeg ikke en OnDataBinding men en DataBinding. Er det den rigtige?
Avatar billede dr_chaos Nybegynder
07. juni 2007 - 12:47 #7
sorry du skal fjerne
this.DataBind();
i onDataBinding event.

Ja det er databinding eventet.
Avatar billede maude Nybegynder
07. juni 2007 - 13:10 #8
Ja, det burde jeg nok have sagt mig selv.

Nu kan jeg bladre, men så fik jeg nogle andre problemer, men det er nok noget med nogle index som skal tilpasses.

Tak og smid et svar.
Avatar billede dr_chaos Nybegynder
07. juni 2007 - 15:53 #9
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester