Results 1 to 12 of 12

Thread: DBWebGrid Refresh?

  1. #1
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22

    DBWebGrid Refresh?

    Is het mogelijk een DBWebGrid (Delphi #8) te refreshen?

    probleem:

    Ik open een pagina en dan is de DBWebGrid nog leeg. Deze is wel gekoppeld aan een MySqlDataAdapter die op zijn beurt weer is gekoppeld aan een MySqlCommand. Deze MySqlCommand word pas uitgevoerd als die de nodige parameters heeft. Maar tot die tijd staat er een lege DBWebGrid (met 1 pagina, die leeg is).

    Als de MySqlCommand word uitgevoerd vult hij de DBWebGrid goed, en zie ik ook dat er 4 Pages bestaan. Wanneer ik dan op bijv. pagina 3 drukt Refresht heel de pagina maar blijft de DBWebGrid op Page 1 staan. De e.NewPageIndex veranderd wel goed naar 2 (Page nr - 1).

    Ik heb daarna geprobeerd om tijdens het laden van de pagina de DBWebGrid te vullen, dat lukt ook goed. Dan staan er gewoon 4 Pages die ik alle 4 kan aanroepen. Wanneer ik dan een ander SelectCommand gebruik waardoor ik bijv. 8 pages heb, kan ik wel de eerste 4 pages weer openen maar de overige 4 niet...

    Ik dacht zelf dat het komt omdat de DBWebGrid niet word geRefresht.. Iemand idee hoe dit komt en wat er aan gedaan kan worden?

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  2. #2
    De DB-webcontrols hangen nogal strak aan elkaar, wil je eens kijken wat er gebeurt als je een DBNavigator toevoegt en die een refresh laat uitvoeren?
    Marcel

  3. #3
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22
    Thnx 4 advies =)

    Maar helaas wil het niet werken... Wat ik ook zie is wanneer ik van web-pagina verwissel en weer terug kom op de pagina met de DBWebGrid, dat ie de waarde blijft onthouden van de DBWebGrid-Page waar die op zat toen ik verwisselde... Dus stel dat ik op Page 2 zat toen ik van web-pagina wisselde en ik kom terug op die web-pagina dan staat de DBWebGrid nog steeds op Page 2...

    Is er geen mogelijkheid om dat tegen te gaan? Of komt dat doordat ik Frames gebruik?

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  4. #4
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Kijk even naar de property "AutoRefresch" van de DBWebSource component
    Anders

    May your code compile!

  5. #5
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22
    "Autorefresh" = True

    Er worden ook wel 2 (of meerdere) Pages bijgemaakt in de DBWebGrid, alleen zijn die niet bereikbaar om 1 of andere reden. Als ik op de laatste Page klik in die balk komt hij niet verder dan (maximaal) de page-nummers die hij had tijdens de start van de web-pagina...

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  6. #6
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22
    Zit al weer heel wat uurtjes te zweten en heb paar screens om probleem duidelijk te maken, want misschien was mijn probleemstelling niet echt duidelijk...

    screen 1:


    Hier zie je de tabel zoals die word getoond bij het starten van de pagina. Er staan zooi gegevens in die verder niet toe doen, en er zijn heel veel gegevens weg omdat Rowfilter := '[Revision nr] <> 0'. Er is nu maar 1 page met 4 rijen en er kunnen 10 rijen per page komen.


    screen 2:


    Hier is dus de CheckBox ge-un-checked En daardoor word de RowFilter := ''. En word heel de grid vol gegooid. En je ziet dus dat er nu 2 pagina's zijn, wat wel klopt. Als ik sorteer op een ander veld dan werkt dat ook allemaal goed. De gegevens staan er allemaal dus wel goed in.


    screen 3:


    Dit krijg ik als ik op 'Page 2' klik in de Page-balk aan de onderkant. Rechtsboven staat de e.NewPageIndex die word neergezet in de PageIndexChanged-event. Als ik 4 pagina's zou hebben veranderd dit nummer ook gewoon netjes naar de pagina die ik had aangeklikt.. Maar de pagina zelf blijft gewoon staan op 1 staan...


    Ik heb ook geprobeerd om in de PageIndexChanged event zelf de page te veranderen..
    Code:
    DBWebGrid.CurrentPageIndex := e.NewPageIndex;
    Maar dit had ook geen succes...

    Iemand die dit probleem herkent of gewoon een oplossing heeft??!!?! Word hier nogal gek van namelijk

    Bij voorbaat dank!

    Stefan G.

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  7. #7
    Hmm, dan ben je me inderdaad kwijt. Ik heb een DBWebGrid geplaatst en in de PageIndexChanged deze code gezet:
    Code:
    procedure TWebForm1.DBWebGrid_PageIndexChanged1(source: System.Object; e: System.Web.UI.WebControls.DataGridPageChangedEventArgs);
    begin
      Label1.Text := e.NewPageIndex.ToString;
    end;
    De label toont netjes de verwachte pageindex. Let wel op dat het zerobased is he, pagina 2 is dus pageindex 1.
    Marcel

  8. #8
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22
    Thnx 4 reply

    Dat Label vullen met de NewPageIndex.ToString heb ik zelf ook gedaan.. is ook omcirkelt.. En dat werkt ook wel prima, want op Screen3 heb ik page2 aangeklikt en geeft het label netjes NewPageIndex := 1, alleen blijft de pagina op page1 staan :P


    Maar als ik in DesignTime de CheckBox 'Hide Revision 0' Uncheck en de pagina laad werkt alles gewoon goed..

    Wat mij ook opviel was, dat wanneer ik op page2 kijk en dan naar een andere webpagina gaat en dan weer terug komt op die page (zonder dat browser is gekilled) dat die webgrid onthoud dat ik op page2 zat. Heel de pagina word opnieuw opgebouwd behalve de webgrid duss...

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  9. #9
    Heb je wel in je OnPageIndexChaned event wel gebind nadat je de currentpageIndex property hebt geset?

    Dus het volgende moet er staan:
    Code:
    procedure Grid_Change(sender: Object , e:DataGridPageChangedEventArgs ) 
    Begin 
             ItemsGrid.CurrentPageIndex = e.NewPageIndex;
    
             // Re-bind the data to refresh the DataGrid control. 
             ItemsGrid.DataSource := CreateDataSource(); //Je datasource aan vastkoppelen
             ItemsGrid.DataBind();
    End
    PS: Negeer eventuele syntax fout omdat ik nu meer gewend ben om C# code te schrijven dan Delphi.NET

  10. #10
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22
    Thnx 4 reply...

    First thing in the morning... Zit nu thuis morge probeer ik meteen laat dan wel weten of werkt of niet, al ben ik bang dat ik iedere combinatie van DataBinding al hebt geprobeerd.

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  11. #11
    Registered User
    Join Date
    Sep 2004
    Location
    Gemeente Westland
    Posts
    22
    Hmm wil ook niet echt werken.. Ik krijg steeds error:

    Internal Error in Module DBWebGrid_RawDB
    Invalid CurrentPageIndex value. It must be >= 0 and < the PageCount.

    Op welk punt word bij jullie de WebGrid gevuld, dat gebeurt bij mij pas aan het einde. Moet dat vullen misschien gebeuren in de Page_Load??

    --I hunt
    --Therefore I am

    --metallica 'of wolf and men'

  12. #12
    Je mag in de page_load event de data vullen maar de foutmelding heeft niks met het vullen van de webgrid te maken. Het gaat met name om dat de currentpageindex property verkeerd wordt geset.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Wat is het verschil tussen repaint en refresh
    By Cornelis in forum Algemeen
    Replies: 8
    Last Post: 31-Dec-04, 15:50
  2. Replies: 11
    Last Post: 25-Nov-04, 10:53
  3. Replies: 3
    Last Post: 25-Aug-04, 23:56
  4. Probleem met refresh.
    By Lambiek in forum Databases
    Replies: 2
    Last Post: 07-Mar-04, 18:54
  5. Interbase - table refresh
    By Dennis no.9 in forum Algemeen
    Replies: 7
    Last Post: 01-Feb-02, 10:41

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •