Fortsatta problem från mitt håll... OK, så jag har en Accessdatabas med länkar och nu har jag skrivit en liten sökfunktionen till denna. Sökfunktionen fungerar bra MEN - jag har använt Allowpaging så att man bara får upp 20 träffar per sida. Problemet är att om man går framåt (eller bakåt) så tappar man villkoren (WHERE angivet.sökord=databas.sökord) från SQL-satsen. Jag förmodar att problemet ligger Sub'en som sköter "bläddringen" men jag har inte lyckats komma på hur man skall motverka/lösa detta. Någon som har en idé? lankar på din sida har tydligen med pagingen att göra, och vad du kanske ska göra är att sätta attributet AutoPostBack till True i den kontrollen? Jag tror att problemet beror på att du du hämtar informationene varje gång sidan laddas om Tack för båda svaren; jag har testat båda två men inget av dem hjälper... men jag har i alla fall klurat ut att det förmodligen beror på att sökordet försvinner när man byter till nästa sida, så frågan är väl hur jag får det att vara "beständigt" mellan sidbyten. Prova att lägga kword i en viewstateAllowpaging
Så här ser sub'arna ut:
<code>Sub Page_Load(Scr as Object, E as EventArgs)
Dim kword as String
kword = Request.Form("keyword")
Dim cn as new OLEDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=d:\home\cassersjo.net\private\db_lankar.mdb;")
Dim ad as OleDBDataAdapter
Dim ds as new DataSet
ad = new OleDBDataAdapter("Select '' + Lankar.Titel + '' as Titel, K2.KK as Kategori, Lankar.Beskrivning, Format$([Lankar.Inlagd],'yyyy-mm-dd') AS Datum FROM Lankar INNER JOIN K2 ON Lankar.Kategori=K2.ID WHERE Lankar.kw1='" & kword & "' OR Lankar.kw2='" & kword & "' OR Lankar.kw3='" & kword & "' ORDER BY Lankar.Titel",cn)
ad.Fill(ds, "Lankar")
lankar.DataSource=ds
lankar.DataBind()
End Sub
Sub Byt_sida (sender as Object, e As DataGridPageChangedEventArgs)
Lankar.CurrentPageIndex=e.NewPageIndex
Lankar.DataBind()
End Sub</code>
mvh
MagnusCSv: Allowpaging
Exempelvis
<code><asp:dropdownlist id="dlist" AutoPostBack="True" runat="server" /></code>
fast du byter ut dropdownlistan mot din kontroll, vilken du nu har. :-)Sv: Allowpaging
prova att sätta
<code>
if not page.ispostback then
'Hämta informationen
end if
</code>
Prova med det här
<code>
Sub Page_Load(Scr as Object, E as EventArgs)
if not page.ispostback then
bindgrid()
end if
End Sub
sub bindgrid
Dim kword as String
kword = Request.Form("keyword")
Dim cn as new OLEDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=d:\home\cassersjo.net\private\db_lankar.mdb;")
Dim ad as OleDBDataAdapter
Dim ds as new DataSet
ad = new OleDBDataAdapter("Select '' + Lankar.Titel + '' as Titel, K2.KK as Kategori, Lankar.Beskrivning, Format$([Lankar.Inlagd],'yyyy-mm-dd') AS Datum FROM Lankar INNER JOIN K2 ON Lankar.Kategori=K2.ID WHERE Lankar.kw1='" & kword & "' OR Lankar.kw2='" & kword & "' OR Lankar.kw3='" & kword & "' ORDER BY Lankar.Titel",cn)
ad.Fill(ds, "Lankar")
lankar.DataSource=ds
lankar.DataBind()
end sub
Sub Byt_sida (sender as Object, e As DataGridPageChangedEventArgs)
Lankar.CurrentPageIndex=e.NewPageIndex
bindgrid()
End Sub
</code>Sv: Allowpaging
Sv: Allowpaging
<code>
Sub Page_Load(Scr as Object, E as EventArgs)
if not page.ispostback then
bindgrid()
end if
End Sub
sub bindgrid
Dim kword as String
kword = Request.Form("keyword")
viewstate("kword") = kword
Dim cn as new OLEDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=d:\home\cassersjo.net\private\db_lankar.mdb;")
Dim ad as OleDBDataAdapter
Dim ds as new DataSet
ad = new OleDBDataAdapter("Select '' + Lankar.Titel + '' as Titel, K2.KK as Kategori, Lankar.Beskrivning, Format$([Lankar.Inlagd],'yyyy-mm-dd') AS Datum FROM Lankar INNER JOIN K2 ON Lankar.Kategori=K2.ID WHERE Lankar.kw1='" & viewstate("kword") & "' OR Lankar.kw2='" & viewstate("kword") & "' OR Lankar.kw3='" & viewstate("kword") & "' ORDER BY Lankar.Titel",cn)
ad.Fill(ds, "Lankar")
lankar.DataSource=ds
lankar.DataBind()
end sub
Sub Byt_sida (sender as Object, e As DataGridPageChangedEventArgs)
Lankar.CurrentPageIndex=e.NewPageIndex
bindgrid()
End Sub
</code>