Hej! Kan du inte bara göra så att du sätter CurrentPageIndex till 1 varje gång du väljer ny "datakälla" i din listbox? Nja, jag menade nog 1 men det ska kanske vara 0 där ja :-) Bra att det löste problemet iaf... nää...nu blev det tok i igen...suck! Vad får du för felmeddelande? Sätts CurrentPageIndex till 11 som den ska eller vad händer om du stegar igenom applikationen? Jag får ju inget fel direkt så, alltså inget felmeddelande, nope (har ingen felhantering whatsoever..tyvärr..får väl lära mig det) Sätts CurrentPageIndex till 10 i PageIndexChanged-funktionen när du klickar på "..." eller vad händer om du stegar igenom det som händer när du klickar i din "paging"? usch.. detta innebär att jag måste försöka mig på att stega genom min kod.. det har jag aldrig gjort. Det är ngt med att sätta breakpoints någonstans va? och använda ngn form av stegfunktion i visual studio? Hehe... Ja det är precis det som det innebär... Är inte alls särskilt svårt, och dessutom väldigt användbart, ska försöka förklara... äsch, får inte till det...en brun plutt och sedan inget mer... OK, du kör din kod i ASPX-filerna, utan code-behind? Då vet jag faktiskt inte hur debugging funkar... hmm..ja, ingen höjdare med min spagetti, tycker själv att det är ett hie :-).. Ja så länge du har din textbox deklarerad i din code-behind fil så är det inga som helst problem, kommer stå nåt i stil med det här i din code-behind fil:pagingproblem!
Jag binder data från en access databas till en datagrid med paging. Beroende på val i en listbox uppdateras datagridden med relevant urval från databasen. Detta funkar bra.
Det som inte funkar är det här med currentpageindex, om jag förstått det rätt.
Problemet är att när jag väljer något i listboxen som genererar ett mindre antal sidor än det antal som visas i datagridden för tillfället så ballar det ut. Antagligen för att jag exempelvis står på sida 10, väljer något annat i listboxen varvid currentpageindex ligger kvar på att visa sida 10.... i ett urval där kanske endast 5 sidor data finns.
Hur löser man detta egentligen, så att pageindex sätts till sida ett när datagridden laddas med ett annat urval, baserat på det jag väljer i listboxen??
Någon?Sv: pagingproblem!
Sv:pagingproblem!
Sv: pagingproblem!
När pagingen kommer upp till 10 och jag vill att den ska börja på 11 och fortsätta så vägrar den, den visar bara max 10 sidor i datagriden!! Vag göra?Sv:pagingproblem!
Sv: pagingproblem!
Det som händer är följande:
Datagridden fylls på fint när den laddas och den visar navigering 1 2 3 4 5 6 7 8 9 10 ...
när jag klickar på ... så laddar den sida 10 och visar navigering upp til 20 ...
MEN när jag klickar på exv 12 så visar gridden innehållet för sida 3!!!!! Sv:pagingproblem!
Sv: pagingproblem!
jaaa...jag är newbee :-)Sv:pagingproblem!
Om du ställer markören på den rad i koden (t.ex. den där du sätter CurrentPageIndex) där du vill stoppa exekveringen och trycker F9 så skapas en breakpoint där. Du kan även skapa en breakpoint genom att klicka i den grå "listen" precis till vänster om din kod, välj sätt själv.
Därefter ser du till att du kommer att starta din applikation i Debug-mode, ska finnas en dropdown i din verktygslist med alternativen Debug, Release och Configuration Manager... Välj alltså Debug där...
Sen startar du applikationen genom att klicka F5 eller Debug --> Start i menyn...
När du då "jobbar dig fram" till den plats i koden där du har din breakpoint så kommer detta att markeras i VS med att den raden blir gulmarkerad... Då kan du bland annat kolla aktuella värden på variabler och sånt genom att till exempel bara hålla markören över variabeln du är intresserad av...
Finns rätt mycket fler finesser som är bra att veta om men det här borde räcka för dig för tillfället... Sv: pagingproblem!
här är fulhacket i fråga, kan du se något uppenbart störande i den (rensade bort en massa html som kändes onödig för kodens syfte)?
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.oledb" %>
<%@ import namespace="System.Web.UI.WebControls" %>
<script>
<script runat="server" language="VB">
Sub Page_Load(Source As Object, E As EventArgs)
If Not Page.IsPostBack Then
subcat.Items.Add(New ListItem("x"))
subcat.Items.Add(New ListItem("y"))
subcat.Items.Add(New ListItem("z"))
subcat.SelectedIndex=0
BindData()
End If
myDataGrid.CurrentPageIndex=0
binddata()
End Sub
Sub showSelection(source As Object, e As EventArgs)
End Sub
Sub BindData()
Dim ds As New DataSet
Dim sda As oledbDataAdapter
Dim strSQL As String
Dim strCon As string
strcon = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
"C:\Inetpub\wwwroot\qq.mdb;"
strSQL = "select r,l,d from l where category= ('"& subcat.SelectedItem.Text &"')"
sda = New oledbDataAdapter(strSQL, strCon)
sda.Fill(ds,"l")
myDataGrid.DataSource = ds.Tables("l")
myDataGrid.DataBind()
End Sub
Sub myDataGrid_PageChanger(Source As Object, _
E As DataGridPageChangedEventArgs)
' Set the CurrentPageIndex before binding the grid
myDataGrid.CurrentPageIndex = E.NewPageIndex
BindData()
End Sub
</script>
<%#DataBinder.Eval(Container.DataItem, "l")%><%#DataBinder.Eval(Container.DataItem, "l")%><%#DataBinder.Eval(Container.DataItem, "d")%>
<%#DataBinder.Eval(Container.DataItem, "d") %>Sv:pagingproblem!
Ser inget uppenbart fel i din kod, bara en tanke, vet inte om det löser problemet men om du testar med att lägga till en ORDER BY del i din SELECT-sats.
Sen en annan sak, du anropar binddata och sätter CurrentPageIndex i din PageLoad varje gång sidan laddas, dessutom anropas BindData två gånger första gången sidan laddas, känns lite onödigt tycker jag, inte för att det löser det här problemet kanske, eller så gör det det...Sv: pagingproblem!
Men om jag stuvar om lite, och stoppa det code-behind, det verkar ju vara en slug sak det där med debugging... Fast, blir det inte problem med att jag måste importera mer grejer, är ex.v en textbox känd för den bakomliggande koden, hur funkar detta måntro?Sv:pagingproblem!
<code>
Protected WithEvents txtTextbox As System.Web.UI.WebControls.TextBox
</code>
Men det sköter Visual Studio i dom allra flesta fallen automatiskt åt dig så det är inget du behöver oroa dig för.