Avatar billede kalle_mod Nybegynder
30. august 2005 - 13:06 Der er 9 kommentarer og
1 løsning

Datagrid vil ikke vise første post?

Hejsa eksperter!

Jeg har et datagrid hvor jeg viser nogle forskellige ting om hver bruger på min side, jeg har desuden også lavet det sådan at datagrid'et ikke vises hvis der ikke er nogle brugere, mit problem er bare at når der kun er 1 bruger så vil den ikke vise brugeren, datagrid'et vises, men det er tomt!

datagrid-koden:
<asp:datagrid id="afventende" runat="server" OnItemCommand="EditUser" AutoGenerateColumns="False">
                <columns>
                    <asp:BoundColumn DataField="Brugernavn" HeaderText="Brugernavn" />
                    <asp:BoundColumn DataField="idnummer" HeaderText="Idnummer" />
                    <asp:BoundColumn DataField="oprettet" HeaderText="Oprettet" />
                    <asp:buttoncolumn text="Godkend" Commandname="godkend" />
                    <asp:buttoncolumn text="Afvis" Commandname="delete" />
                </columns>
            </asp:datagrid>

koden bag datagrid'et:(hentning fra databasen)
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

dim dbconn, dbcomm, sql, dbread
dbconn = new OleDBConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=" & server.mappath("login.mdb"))
dbconn.open()

sql="select * from login where aktiv=false"
dbcomm = new OleDBCommand(sql, dbconn)
dbread = dbcomm.executeReader()

if dbread.read = true then

lblafventende.visible = false
afventende.datasource = dbread
afventende.databind()

else

afventende.visible = false
lblAfventende.visible = true
lblAfventende.text = "Der er ingen brugere der mangler at blive godkendt/afvist"

end if

dbread.close
(der kommer mere kode og sub er afsluttet senere, men det er kun denne del der er relevant)

på forhånd tak

Kalle
Avatar billede jokkejensen Novice
30. august 2005 - 13:08 #1
en dbreader.. kan man ikke kun læse den ene vej i den...

Så hvis du spørger om der er en post, læse den så ikke videre til næste..
Avatar billede kalle_mod Nybegynder
30. august 2005 - 13:09 #2
forresten vil en lille kode til at genloade en side også være rigtig nice, da jeg har problemer med at når en bruger er godkendt/afvist så vises brugeren stadig på siden næste gang den hentes, fordi databaseforbindelsen der henter folk ud ligger før sub'en der ændrer deres status til godkendt/afvist i systemet(page_load er vel altid den første der køres?), eller findes der en anden måde at få sub Edituser til at køre før page_load delen :D
Avatar billede jokkejensen Novice
30. august 2005 - 13:20 #3
du har ikke kapslet dit databind ind i "if not IsPostBack" (eller hvad det nu hedder på vb'sk), så det skulle gerne køre ved hvert postback, altså hver gang siden hentes henter den direkte fra databasen..

Så jeg kán ikke se hvorfor du ikke skulle få dataen direkte fra db..
Avatar billede lifo Nybegynder
30. august 2005 - 14:38 #4
lave en metode som loader datane ind i datagridet  og kald den i preRender
og det med at den første ikke vises

skift
if dbread.read = true then  // til
if dbread is nothing then  // eller noget i den vb stil
Avatar billede snepnet Nybegynder
30. august 2005 - 18:56 #5
du kan også bare spørge på

If dbread.HasRows Then
  ...
Else
  ...
End If

du kan ikke få din eventhandler til at køre før page_load, men det er der heller ikke nogen grund til, anbefalingen er at du bygger det op sådan her:

// i page_load
If Not IsPostBack Then
  BindTheGrid()
End If

// en metode til at udføre selve databindingen
someGrid.DataSource = GetData()
someGrid.DataBind()

// getdata vil så i dit tilfælde returnerer den reader du laver

i dine eventhandlers (der ændrer på dit datagrundlag) afslutter du så bare med:
BindTheGrid()

håber det gav mening.

mvh
Avatar billede kalle_mod Nybegynder
30. august 2005 - 21:47 #6
hvad er forskellen på dbread.read og dbread.hasrows, læser dbread.read første post og returnerer true for derefter at gå videre(uden jeg har bedt den om det)...Skod :P

anyway, prøver lige jeres forslag i morgen og vender tilbage

Kalle
Avatar billede snepnet Nybegynder
30. august 2005 - 21:58 #7
ja read læser en række - men forskellen på en property og en metode kan udviskes lidt i VB.
reader.Read = reader.Read()
mvh
Avatar billede kalle_mod Nybegynder
01. september 2005 - 14:45 #8
Linje 8:      if not IsPostBack then
Linje 9:      dbOpen()
Linje 10:    afventende()
Linje 11:    godkendte()

giver fejl:
Beskrivelse: Der opstod en fejl under kompilering af en ressource, der er påkrævet ved behandling af denne anmodning. Læs følgende detaljer om fejlen, og foretag de nødvendige ændringer af kildekoden.

Fejlmeddelelse om kompileringsfunktion: BC30455: Der er ikke specificeret et argument for parameteren 'e' i 'Public Sub dbOpen(sender As Object, e As System.EventArgs)'.

hvilket argument skal jeg kalde funktioerne med, eller skal jeg bare fjerne "sender as object, e as eventargs) i min sub?

Kalle - beklager der lige gik en dag ekstra :P
Avatar billede kalle_mod Nybegynder
01. september 2005 - 15:05 #9
nå har fået det hele til at virke, så hvis snepnet vil lægge et svar som tak for hjælpen :) (dbread.HasRows løste mit første problem, og lavede subs med mine 2 gridbind's som foreslået af ham også)

Kalle
Avatar billede snepnet Nybegynder
01. september 2005 - 15:38 #10
hej kalle - beklager jeg ikke lige var da 14:45, men fedt at du fik det fikset :o)
mvh
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

IT-JOB

European Stonecraft

Intern Navision/BC Supporter

IT-Universitetet i København

CIO

Styrelsen for Grøn Arealomlægning og Vandmiljø

Teamleder til Application Management