29. september 2010 - 09:50Der er
4 kommentarer og 1 løsning
Fejl ved paging på gridview
hej, Jeg sidder med et irriterende problem med paging på et gridview. Jeg skal "bygge" en søgning op ved hjælp af 5 søgefelter. Som kan være udfyldt eller tomme, og så skal de ikke med i søgningen. Det virker på den måde at jeg har lavet et gridview med en sqldatasource tilknyttet. Der er så lavet en selectcommand som indeholder min startsøgning. Ved et tryk på søgeknappen ændrer jeg selectcommand'en på datasourcen og søgningen vises. Denne del virker fint nok. Og hvis søgningen har mere end min pagesize, så vises de forskellige sider i bunden. Alt sammen meget fint. Men når jeg så trykker på f.eks side 2, så bliver min søgning tom. Som om at den tager min startsøgning igen når den skal vise side 2. Det skal lige nævnes at det er en access database. Hvad gør jeg forkert? Mvh Henrik
Hvordan ser dine 5 søgefelter ud? Du binder ikke noget data til dem i page_load() vel ?
Har ofte fået et problem, hvis jeg ikke pakkede mine webcontrols databind, ind i en if(!Page.IsPostBack) da controllerne ellers vil blive initializeret på ny ved postback.
Nej de er som udgangspunkt tomme. Og når jeg udfylder dem og trykker på min søgeknap, vises den første side fint i søgningen. men ved tryk på side 2, bliver min søgning tom. men de udfyldte felter forbliver udfyldte. Jeg har prøvet at sætte if not page.ispostback på min søgeknap, men så kommer der heller ikke den første side frem i søgningen.
nej page.ispostback skal kun benyttes i page_load, det er for at kunne differentiere mellem et .net postback fra en webcontrol, eller om det er et sideskift.
Som udgangspunkt bør dine webcontrols beholde deres værdi ved postback, med mindre du fortæller dem andet.
Kan du sende koden du har på knappen ? samt hele page_load.
Lige nu har jeg kun et check på om brugeren er logget ind, under page load. Jeg har så heller ikke noget check på om det er page.ispostback på knappen. Her er koden der ligger på knappen Dim searchstring As String = "SELECT [id],[createdby],[eduname],[contactname],[contactphone],[contactlocalno],[contactemail] from [edu] where id<>''" If searchNameTextBox.Text <> "" Then searchstring = searchstring & " AND [eduname] like '%"& searchNameTextBox.Text & "%'" End If
objConn.Open() objComm = New OleDbCommand(searchstring, objConn) Dim rs As OleDbDataReader = objComm.ExecuteReader searchGridView.DataSource = rs searchGridView.DataBind() objConn.Close()
Jeg bruger normalt parametre til SQL, men nu skal jeg lige have det til at virke først.
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.