Avatar billede NN45 Nybegynder
28. marts 2016 - 16:32 Der er 11 kommentarer og
1 løsning

C# Webform og GridView

Hej.

Jeg sidder og laver webforms i Visual Studio og bruger sproget C#.

Jeg har brug for at kunne definere variable i GridView1_RowCommand som holder værdier der skal med videre til en anden webform. Derfor forestiller jeg mig det er en form for global variabel.

Jeg har fundet ud af hvordan man kan få værdierne med over fra den ene til den anden form, men jeg skal kunne gøre det i GridView for at få de rigtige data fra den aktuelle record i GridView.

Jeg har forsøgt at lave en public String i GridView, men det kompilerer ikke.

Nogen der kan hjælpe?
Avatar billede suryaferdy19 Nybegynder
29. marts 2016 - 08:00 #1
Indlæg fjernet - Indhold ikke tilladt

Dette indlæg er blevet modereret af en CoAdmin

Avatar billede keysersoze Guru
29. marts 2016 - 10:38 #2
Hvis du gemmer variabler globalt risikerer du at de deles blandt dine brugere så det lyder ikke så smart - så kan du selvfølgelig gemme dem i en session i stedet da de er pr bruger, men det bliver let et helvede at holde styr på hvis applikationen har bare en vis størrelse. Bedste løsning, som også foreslået tidligere, er at sende de nødvendige variabler med som querystrings.
Avatar billede NN45 Nybegynder
29. marts 2016 - 13:17 #3
Applikationen er nu ikke så stor.
Jeg går ud fra en public string er en global variabel.

Men lad mig først høre... jeg bruger Server.Transfer til at kalde formen, kan man bruge querystring i forbindelse med den?
Avatar billede keysersoze Guru
29. marts 2016 - 13:51 #4
hvis du bare laver en public string på en webformX kan den ikke aflæses på webformY for det er jo to individuelle uafhængige sider. Skulle det på nogen måde give mening skulle du lave begge dele af din side på samme webform og så bare vise/skjule indhold efter behov.

Ved server.transfer kan du ikke benytte querystrings - så skal de nok sende videre via Context. Men umiddelbart giver det ikke rigtig mening at benytte det fremfor response.redirect, specielt hvis du gennemgår det link jeg tidligere sendte. Og stadig, så vil jeg mene at et rigtigt link giver meget mere mening fremfor et postback.
Avatar billede NN45 Nybegynder
29. marts 2016 - 14:47 #5
Nu har jeg prøvet at kopiere det ind som du tidligere skrev i min GridView1_RowCommand.

Det kompilerer så ikke, hvad skal jeg gøre?
Avatar billede keysersoze Guru
29. marts 2016 - 14:52 #6
erhm - fisk. Det kommer da helt an på hvad du har kopieret ind og hvilken fejl du får - som skrevet tidligere er du nødt til at komme med noget kode hvis du skal kunne hjælpes videre.
Avatar billede NN45 Nybegynder
29. marts 2016 - 16:42 #7
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow selectedRow = GridView1.Rows[index];
            TableCell Identity = selectedRow.Cells[0];
            String ID = Identity.Text;
                       
            < asp:HyperLink ID = "xxx" runat = "server" NavigateUrl = '<%# "~/side.aspx?UserID=" + Eval("a") + "&" + Eval("b") %>' Text = "yyy" />

        }
Avatar billede keysersoze Guru
29. marts 2016 - 16:56 #8
Et hyperlink, eller linkbutton eller hvad der nu engang passer til dit ønske, hører til i din markup - idéen var jo netop at undgå postback og alt muligt. Når først den er dér skal du selvfølgelig også tilpasse variablerne, da din webform næppe hedder side.aspx og dine værdier nok heller ikke hedder a og b.

En lille forglemmelse er der dog da jeg mangler navngivning af den ene querystring;

<%# "~/side.aspx?var1=" + Eval("a") + "&var2=" + Eval("b") %>
Avatar billede NN45 Nybegynder
29. marts 2016 - 18:39 #9
Det virker ikke.
Avatar billede keysersoze Guru
29. marts 2016 - 18:48 #10
Det må uden tvivl være en fejl i linje 173.
Avatar billede NN45 Nybegynder
12. maj 2016 - 11:01 #11
Lukket.
Avatar billede keysersoze Guru
13. maj 2016 - 18:38 #12
Tja - så er man vist heller ikke interesseret i hjælp...
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

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