Avatar billede simsen Mester
26. april 2007 - 18:56 Der er 1 kommentar og
1 løsning

Problemer ved PostBack

Hej,

Jeg har en søgefunktion på en side, hvor jeg vil have at brugeren, ved at klikke på en knap, selv skal bestemme, hvordan der sorteres....

Knapperne på siden er Navn, Kategori og Points

Når jeg klikker første gang på en af knapperne, så fungerer det perfekt, men når jeg så forsøger at klikke på en anden knap, så gør den...ingenting.... Den fejler ikke, og jeg kan se, at den også går ind i funktionen med korrekt ORDER BY variabel....

Nogen der kan forklare mig hvad der går galt?

Min kode for en af knapperne (de er identiske bortset fra ORDER BY variablen (som er

string sorttext = "OpskriftNavn";
string sorttext = "KategoriNavn";
string sorttext = "Points";)

Koden:

protected void btnSimpelSortPoints_Click(object sender, EventArgs e)
    {
        SoegApi soegapi = new SoegApi();

        //Her søger jeg i databasen efter søgeordet (simpel søgning)
        DataTable seekresult = null;
        string seektext = Convert.ToString(Session["SeekText"]);
        lblSeekText.Text = Convert.ToString(Session["SeekText"]);

        //Søg efter Navn
        string sorttext = "Points";

        if (soegapi.GetSeekSimpelSort(seektext, sorttext, ref seekresult) == Status.Success)
        {
            repSeekSimpel.DataSource = seekresult.DefaultView;
            repSeekSimpel.DataBind();
            hidepanels();
            if (seekresult.Rows.Count > 0)
            {
                panSeekResultPositive.Visible = true;
            }
            else
            {
                panSeekResultNegative.Visible = true;
            }
        }
        else
        {

        }

        soegapi.Dispose();
    }

og

public Status GetSeekSimpelSort(string seekstring, string sortstring, ref DataTable SeekSimpel)
    {
        Status status = Status.Failure;

        DataRow r = null;
        DataTable AItems = new DataTable();

        try
        {
            AItems.Columns.Add(new DataColumn("OpskriftId", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("OpskriftNavn", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Ingredienser", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Fremgangsmaade", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Servering", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Points", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Dato", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("Print", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("BrugerNavn", Type.GetType("System.String")));
            AItems.Columns.Add(new DataColumn("KategoriNavn", Type.GetType("System.String")));

            command.CommandText = "SELECT Opskrift.OpskriftId, Opskrift.OpskriftNavn, Opskrift.Ingredienser, Opskrift.Fremgangsmaade, Opskrift.Servering, Opskrift.Points, Opskrift.Dato, Opskrift.Print, Bruger.BrugerNavn, Kategori.KategoriNavn FROM (Kategori INNER JOIN Opskrift ON Kategori.KategoriId=Opskrift.KategoriId) INNER JOIN Bruger ON Opskrift.BrugerId=Bruger.BrugerId WHERE Opskrift.OpskriftNavn Like '%" + @seekstring + "%' OR Opskrift.Ingredienser Like '%" + @seekstring + "%' OR Opskrift.Fremgangsmaade Like '%" + @seekstring + "%' OR Opskrift.Servering Like '%" + @seekstring + "%' ORDER BY @sortstring ASC";

            command.Parameters.Clear();
            command.Parameters.Add(new OleDbParameter("@seekstring", seekstring));
            command.Parameters.Add(new OleDbParameter("@sortstring", sortstring));

            OleDbDataReader myReader = command.ExecuteReader();

            //går gennem tabellen og lægger ind i rækker
            while (myReader.Read())
            {
                r = AItems.NewRow();

                try
                {
                    r["OpskriftId"] = (myReader["OpskriftId"]);
                    r["OpskriftNavn"] = (myReader["OpskriftNavn"]);
                    r["Ingredienser"] = (myReader["Ingredienser"]);
                    r["Fremgangsmaade"] = (myReader["Fremgangsmaade"]);
                    r["Servering"] = (myReader["Servering"]);
                    r["Points"] = (myReader["Points"]);
                    r["Dato"] = (myReader["Dato"]);
                    r["Print"] = (myReader["Print"]);
                    r["BrugerNavn"] = (myReader["BrugerNavn"]);
                    r["KategoriNavn"] = (myReader["KategoriNavn"]);
                }
                catch
                { }

                //Tilføjer rækken til datatable
                AItems.Rows.Add(r);
            }

            myReader.Close();
            SeekSimpel = AItems;
            status = Status.Success;
        }
        catch
        { }

        return status;
    }

mvh
simsen :-)
Avatar billede simsen Mester
26. april 2007 - 19:21 #1
Jeg har fundet ud af at den sorterer efter KategoriNavn.....uanset hvilken knape jeg klikker på.......men som sagt. Jeg HAR checket nok henved 30 gange nu, at den tager eksempelvis OpskriftNavn med ind som sortstring

Håber bestemt nogen kan hjælpe mig......

mvh
simsen :-)
Avatar billede simsen Mester
26. april 2007 - 22:47 #2
Har opgivet at bruge et variabelt felt.......

Har lavet 3 funktioner hvor den eneste forskel er at jeg skriver ORDER BY OpskriftNavn (osv)

simsen :-(
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