webForumDet fria alternativet

Sökning

5 svar · 491 visningar · startad av Topper

TopperMedlem sedan apr. 200531 inlägg
#1

Hej!

Har problem med sökningen på https://www.cylindern.se då det på tex "Säljes" bara går att söka på sida 1.

Går inte heller sortera åt båda hållen när man klickar på rubriken. Ngn som kan ge ngt intressant tips på hur vi ska göra?

Snälla....(ni kan få några gratis annonser om ni lyckas ;) )

ironheadMedlem sedan mars 20011 346 inlägg
#2

Jag fick Runtime Error när jag försökte söka:

Jaha, var nog för att jag hade bytt sida....som du skrev ovan...vad bra man läser :-/

Hur är din sökfunktion uppbyggd? Lite kod?

Länk till Datagrid-sortering:
http://www.devx.com/vb2themax/Tip/18859

TopperMedlem sedan apr. 200531 inlägg
#3

Okej här kommer lite kod på hur det ser ut just nu.

<script runat="server">

    protected strSQL As String = "SELECT Datum, Rubrik, Märke, Modell, Årsmodell, Län, Pris, Lank FROM Saljes"
    
    
              Sub Page_Load(Source As Object, E As EventArgs)
              If Not Page.IsPostBack Then
    
               lblSQL.text= strSQL
    
                BindData()
               End If
    
    
               End Sub
    
                Sub sokFunc(sender As Object, E As EventArgs)
                   Dim searchQuery As String = "SELECT Datum, Rubrik, Märke, Modell, Årsmodell, Län, Pris, Lank FROM Saljes WHERE Modell LIKE '%"& Form1.Text &"%' OR Rubrik LIKE '%"& Form1.Text &"%'  OR Märke LIKE '%"& Form1.Text &"%'  OR Datum LIKE '%"& Form1.Text &"%'  OR Årsmodell LIKE '%"& Form1.Text &"%'  OR Län LIKE '%"& Form1.Text &"%'  OR Pris LIKE '%"& Form1.Text &"%' "
                   lblSQL.text = searchQuery
                   BindData()
                 End Sub
    
              Sub BindData()
                Dim ds As New DataSet
                Dim da As oledbDataAdapter
                 Dim strConn as string = ("Provider=" & _
                "Microsoft.Jet.OLEDB.4.0;" & _
                "Data source=" & server.mappath("databas.mdb"))
    
    
    
               da = New oledbDataAdapter(lblSQL.text, strConn)
               da.Fill(ds, "Saljes")
               myDataGrid.DataSource = ds.Tables("Saljes")
               myDataGrid.DataBind()
              End Sub
    
              Sub Paging_Click(Source As Object, E As DataGridPageChangedEventArgs)
    
               myDataGrid.CurrentPageIndex = E.NewPageIndex
               BindData()
              End Sub
    
              Sub Sorting_Click(Source As Object, E As DataGridSortCommandEventArgs)
               lblSQL.text = strSQL & " ORDER BY " & E.SortExpression
               BindData()
              End Sub
    
         Sub myDataGrid_SelectedIndexChanged(sender As Object, e As EventArgs)
    
         End Sub

</script>

HTML

 <asp:TextBox id="Form1" runat="server"></asp:TextBox>
                                            <asp:Button id="Button1" onclick="sokFunc" runat="server" Text="Sök"></asp:Button>
                                            &nbsp;&nbsp;&nbsp;&nbsp; (Fungerar just nu bara på sidan 1)<br />
                                            <br />
                                            Genom att klicka på respektive rubrik så sorteras det. 
                                            <br />
                                            Gå till nästa sida genom att klicka på siffrorna till höger.<br />
                                            <br />
                                        </p>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="top" colspan="0" rowspan="0" border="0">
                                        <img src="hemsidebilder/streck.jpg" /></td>
                                </tr>
                                <tr>
                                    <td valign="top">
                                        <asp:Label id="lblSQL" runat="server" visible="False"></asp:Label>
                                        <asp:Datagrid id="myDataGrid" runat="server" OnSelectedIndexChanged="myDataGrid_SelectedIndexChanged" Font-Size="10pt" Font-Name="Verdana" backcolor="#DBE8FD" Border="0" Cellpadding="4" CssClass="DataGrid" HeaderStyle-Font-Bold="True" AllowSorting="True" OnSortCommand="Sorting_Click" AllowPaging="True" OnPageIndexChanged="Paging_Click" PagerStyle-Mode="NumericPages" PagerStyle-HorizontalAlign="Right" Width="700px" PageSize="30">
                                            <AlternatingItemStyle backcolor="White"></AlternatingItemStyle>
                                            <HeaderStyle font-bold="True" forecolor="Black" backcolor="#DBE8FD"></HeaderStyle>
                                            <PagerStyle nextpagetext="" prevpagetext="" horizontalalign="Right" position="TopAndBottom" mode="NumericPages"></PagerStyle>
                                        </asp:Datagrid>
TopperMedlem sedan apr. 200531 inlägg
#4

Jag har suttit med problemet lite och kommit fram till att problemet med sökmotorn beror på en sak.

Att är man på sidan 2 och söker på något som bara kommer upp på sidan 1 så blir det fel. Det går inte vara på en sida som inte (när sökresultatet kommer) "finns"

Får då detta felmedelande "It must be >= 0 and < the PageCount"

Någon som vet ngt om det...

KrompMedlem sedan okt. 2002103 inlägg
#5

Du måste nollställa myDataGrid.CurrentPageIndex när sökning görs...

Sorteringen tror jag är enklast att lösa med att kolla vilken sortering som är gjord och om det är asc så sätta desc och tvärtom - eller göra egna buttons i huvudet för varje möjlig sortering eller kanske en dropdownlist?

TopperMedlem sedan apr. 200531 inlägg
#6

Nollställa datagriden låter som det kan vara en lösning ju...:e

Hur gör jag detta rent kodmässigt?

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