Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sorteringen missar sista posten

Postades av 2005-06-21 13:43:41 - Magnus Gustafsson, i forum asp.net generellt, Tråden har 10 Kommentarer och lästs av 454 personer

Hej,

jag har problem med sortering i en datagrid. Jag har ett SortCommand där jag fixar till sorteringen när användaren klickat på ngt av de kolumnhuvuden som finns. Problemet är att den sista posten i datagriden hela tiden ligger kvar sist, oavsett vilken av kolumnerna jag klickar på. Alla andra poster sorteras som de skall men aldrig den sista.

Trodde först att det var fel på den sista posten, tog bort den, men då "flyttar" felet till den post som istället ligger sist i utgångsläget. Ngn som känner igen detta?

/Magnus (kodar i C#)


Svara

Sv: Sorteringen missar sista posten

Postades av 2005-06-21 23:10:37 - Björn Österman

Hm. Det är svårt att säga utan att veta hur din kod ser ut. Jag känner iaf inte till något sådant problem.
Det låter som en off-by-one-bug.

Hur gör du när du sorterar?, sorterar du om med hjälp av SQL-queryn, eller använder du en DataView?

Kan du visa lite kod?

// MvH Björne


Svara

Sv:Sorteringen missar sista posten

Postades av 2005-06-22 10:24:34 - Magnus Gustafsson

Hej Björn,

jag använder en dataview för vilken jag ändrar SortExpression beroende på vilken kolumn användaren vill sortera efter.

För att hålla koll på sorteringen sparar jag två parameter i sidans ViewState, dels vilken kolumn som datagriden är sorterad efter och dels om det är ASC eller DESC.

Jag har ett SortCommand:

<CODE>
private void dgDatabase_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
string currentSortColumn = (string)ViewState["currentSortColumn"];
string currentSortOrder = (string)ViewState["currentSortOrder"];

currentSortColumn = (currentSortColumn == null ? "" : currentSortColumn);
currentSortOrder = (currentSortOrder == null ? "" : currentSortOrder);

if(currentSortColumn == e.SortExpression.TrimEnd()) // Same column as at last sort
{
if(currentSortOrder == "ASC")
currentSortOrder = "DESC";
else
currentSortOrder = "ASC";
}
else // Another column was clicked
{
currentSortColumn = e.SortExpression.TrimEnd();
currentSortOrder = "ASC";
}

ViewState.Add("currentSortColumn", currentSortColumn);
ViewState.Add("currentSortOrder", currentSortOrder);

sSortExpression = currentSortColumn + " " + currentSortOrder;
BindData();
}

</CODE>
och en BindData()-funktion:

<CODE>
masterView.Sort = sSortExpression;
dgDatabase.DataSource = masterView;
dgDatabase.DataBind();
</CODE>

Har en annan datagrid som visar användare, fungerar på precis samma sätt och ger precis samma fel.

/Magnus


Svara

Sv: Sorteringen missar sista posten

Postades av 2005-06-22 10:37:40 - Björn Österman

Hmm... Nej där ser inte problemet ut att ligga.

Möjligtvis att man skulle testa att rensa DataGrid:en innan man binder om den.
Det är också interresant att göra en:

  // Obs ej syntax-checkat
  foreach DataRowView row in masterView {
    Response.Write(row["ett-bra-fält"].ToString() + "<br />");
  }

För att se ifall problemet ligger i DataGrid:en eller i View:n (Ligger den i View:n så är det en "rolig" bug)

Annars skulle jag vilja se DataGrid-definitionen (HTML:en), för att se ifall det är någon footer som spökar eller nåt.

// MvH Björne


Svara

Sv:Sorteringen missar sista posten

Postades av 2005-06-22 12:00:01 - Magnus Gustafsson

Hej,

jag har testat lite nu och det är helt klart så att det är felsorterat i min DataView, hur jag än gör så är det samma post som kommer sist i min DataView och då blir det ju självklart också fel min datagrid.

Testade också att hårdkoda in sorteringsordningen så att den sätts första gången sidan körs,
<CODE>
masterView.Sort = "UPDATED ASC";
</CODE>

men ändå blir det fel, det är alltid samma post som ligger syst i vyn. Det har alltså inget med min DataGrid att göra. Några idéer?

/Magnus


Svara

Sv: Sorteringen missar sista posten

Postades av 2005-06-22 15:52:08 - Magnus Gustafsson

Testade även att ändra i min underliggande Oracle-procedur, det verkar som att den post som hamnar sist i det ursprungliga datasetet hela tiden hamnar sist i min DataView, ngn som kan förklara det?

M a o när jag lägger på Sort = "..." på min DataView så fungerar allt bra förutom för den sista posten som alltid ligger kvar sist i min DataView.

???

/Magnus


Svara

Sv: Sorteringen missar sista posten

Postades av 2005-06-22 18:47:08 - Jenny Månsson

<B>Har en annan datagrid som visar användare, fungerar på precis samma sätt och ger precis samma fel. </B>
Eftersom dina andra griddar get samma fel...är det microsofts inbyggda grid du använder eller är det en 3:e parts grid?

Skulle du kunna klistra in den kod som microsoft automatiskt genererar för din grid, utifrån de inställnignar du gör i designläge i den "dolda" koden?


Svara

Sv:Sorteringen missar sista posten

Postades av 2005-06-22 21:46:31 - Björn Österman

Nja, Magnus skriver att problemet verkar uppstå redan i DataView:n.

Om det stämmer så borde inte problemet ligga i DataGrid:en.

Jag googlade lite och hittade en bug ifall man har sorterat, och sedan lägger till en rad i DataTable:n.
Lösningen på det problemet var att se till att sätta sorteringen på DataView:n till "", för att sedan sätta tillbaka sorteringen efter att raden lagts till.

Skulle det kunna vara något?

// MvH Björne


Svara

Sv: Sorteringen missar sista posten

Postades av 2005-06-23 10:53:04 - Magnus Gustafsson

Nej, tyvärr funkar inte detta heller.

Jag bygger upp min Dataview dynamiskt men det borde ju inte spela ngn roll, när DataView väl är skapad borde jag ju kunna sortera på den som jag vill.

/Magnus


Svara

Sv:Sorteringen missar sista posten

Postades av 2005-06-23 11:25:52 - Björn Österman

Problemet som jag nämnde hade med ifall lade till någon post efter att sorterat.

Jag funderade också på ifall det kunde vara någonting med Oracle-drivaren. Nu borde ju DataSet:et vara agnostisk vad det gäller data-källan, men det skulle ändå vara interresant att se ifall du får samma problem ifall du laddar datat manuellt eller från en MS-SQL-databas eller så.
Men det känns lite långsökt kanske.

// MvH Björne


Svara

Sv: Sorteringen missar sista posten

Postades av 2005-06-23 13:51:46 - Magnus Gustafsson

Jag får släppa detta för tillfället, har inte tid att gräva mer i detta. Tackar så länge för de förslag och idéer som kommit fram.

/Magnus


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 612
27 953
271 709
6 539
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies