Avatar billede 2c Nybegynder
28. september 2007 - 10:33 Der er 4 kommentarer og
1 løsning

Grid view og databinding

Jeg har et gridview, som jeg i designeren i VS2005 binder til en sqlconnection med updata og delete command. I footeren har jeg så lavet en custom footer, hvor jeg indsætter data.

Problmet er at når der er 0 rækker i databasen, så kan man ikke se footeren. I det tilfælde har jeg lavet et panel med en alternativ indsætnings mulighed. Problmet er at når jeg spørger på gridview hvor mange række der er, så gør jeg det altid før en eventuel delete command er sendt afsted.

if (GridView1.Rows.Count == 0)
  insertPanel.Visible = true;
else
insertPanel.Visible = false;

Er der en event ala pageload, som bliver kørt efter at delete commanden er kørt? eller et bedre forslag til løsningen?

Altså...
Avatar billede neoman Novice
28. september 2007 - 10:50 #1
"Problmet er at når jeg spørger på gridview hvor mange række der er, så gør jeg det altid før en eventuel delete command er sendt afsted."

Du skriver at du finder antal rækker altid før eventuel delete command er sendt (et eller andet sted fra) - dette er rimeligt klart.

Det er uklart hvad problemet er. Hvad er det egentlige problem forbundet dermed, og som skal løses ? Og hvordan er databinding involveret i spørgsmålet ? Event "a la pageload" for siden ? for Gridview ? For delete knap ?? Delete blivertrigget af hvilken kontrol ?
Avatar billede 2c Nybegynder
28. september 2007 - 11:00 #2
Problmet er at jeg bruger designeren til at lave databinding. Altså trækker et gridview på asp.net siden, og klikker på add datasource, og så følger den guide der er.

Hvis jeg så klikker på delete ud fra en række, bliver den jo så slettet.

Hvis jeg for eksempel skriver dette i pageload ( Eller onPrerender for den sags skyld)

if (GridView1.Rows.Count == 0)
  insertPanel.Visible = true;
else
insertPanel.Visible = false;

så er GridView1.Rows.Count lig det antal rækker før at der bliver slettet.
Avatar billede neoman Novice
28. september 2007 - 11:26 #3
Ok-  så målet er at gøre insertpanel visible, hvis antallet af rækker er slettet ned til 0 .

Har du faktisk afprøvet din egen ide at sætte det i prerender ? Fordi Page prerender event kører efter rækken er slettet , så den burde funke.

Alternativt, så er der jo alskens event handlere for et gridview , så som Deleting og Deleted events.

Gå in på gridview members på msdn, der kan du finde besrkivelserne for handlerne.

Du kan se alle de handlere en control har, ved at markere kontrollen i designeren, og så, i Properties vinduet, klikke på lyn-ikonet.
Avatar billede 2c Nybegynder
28. september 2007 - 11:47 #4
Nåja, det havde jeg ikke tænkt på.

Nu løste jeg det dog på en lidt anden måde.

I gridviewets emptyDataTemplate lavede jeg bare en link button med en beskrivende tekst, og som satte insertPanel = true.

Men smid et svar. Så får du point.
Avatar billede neoman Novice
28. september 2007 - 11:49 #5
okaay (og det er naturligvis ikke handlere man kan se i properties, men de events til hvilke man kan tilknytte handlere - my bad:)
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