Avatar billede mosekongen Nybegynder
27. september 2002 - 09:20 Der er 8 kommentarer og
1 løsning

onClick i link

Hej

Jeg har problemer med at få min onClick til at virke i forbindelsen med et link i et datagrid. Nærmere bestemt en TemplateColumn.
Ideen er, at når der klikkes på linket skal der kaldes en metode, som sætter en Session.
Min kode er som følgende:

<asp:TemplateColumn HeaderText="Link">
                    <ItemTemplate>
                        <a href="http://localhost/PCV/ModulA3.aspx?var=<%# DataBinder.Eval(Container, "DataItem.Links").ToString()%>" onClick="setSession">                       
                        <%# DataBinder.Eval(Container, "DataItem.Links") %>
                        </a>
                                          </ItemTemplate>
                </asp:TemplateColumn>

Min setSession Metode:
void setSession(Object sender, EventArgs e)
        {
            Session["linkFraA2Session"]="Ja";
        }

Problemet er, at jeg aldrig kommer ind i min setSession metode.
Avatar billede askhoej Praktikant
27. september 2002 - 09:30 #1
Du skal huske at skildne mellem server side OnClick og Client Side OnClick, du forsøger at lave en Server Side OnClick på et alm. <a href> som ikke er en Server komponent det kan ikke lade sig gøre.

Brug i stedet f.eks. en <asp:linkbutton>

/askhoej
Avatar billede simon.ulsnes Nybegynder
27. september 2002 - 13:47 #2
Skift flg. linje ud:
<a href="http://localhost/PCV/ModulA3.aspx?var=<%# DataBinder.Eval
(Container, "DataItem.Links").ToString()%>" onClick="setSession"><%# DataBinder.Eval(Container, "DataItem.Links") %></a>


med:
<asp:LinkButton OnClick="setSession" Text="<%# DataBinder.Eval(Container, "DataItem.Links").ToString()%>" runat="server" />

og tilføj:
Response.Redirect(DataBinder.Eval(Container, "DataItem.Links"));

til setSession.

// Simon
// This sentence no verb.
Avatar billede mosekongen Nybegynder
27. september 2002 - 14:06 #3
Er det muligt at navigere videre til en anden aspx side inde i linkbutton's properties? Jeg skal jo sætte min querystring til at være det samme som text på min button.
Avatar billede mosekongen Nybegynder
27. september 2002 - 14:19 #4
Når jeg bruger DataBinder.Eval(Container, "DataItem.Links")); i min metode får jeg en fejl ved anvendelsen af Container:
'System.ComponentModel.Container' denotes a 'class' where a 'variable' was expected

Burde det ikke være stå som følgende i stedet for?
ModulA3.aspx?var="+DataBinder.Eval(Container, "DataItem.Links"
da jeg jo skal fortælle hvilken side der skal redirectes til.
Avatar billede simon.ulsnes Nybegynder
27. september 2002 - 14:46 #5
Hov, jo, min fjel... :-)
Avatar billede mosekongen Nybegynder
27. september 2002 - 17:17 #6
Har du en løsning på problemet med den Container? Når jeg bruger DataBinder.Eval ..... i min setSession metode. Ved den så hvilket af linkbutterne der bliver trykket på? Med andre ord sætter jeg min querystring til det rigtige?
Avatar billede askhoej Praktikant
27. september 2002 - 17:58 #7
Det har den styr på :-)

/askhoej
Avatar billede mosekongen Nybegynder
27. september 2002 - 18:19 #8
Kan i hjælpe med den fejl jeg får når jeg bruger DataBind.Eval..... i min setSession?
'System.ComponentModel.Container' denotes a 'class' where a 'variable' was expected

Jeg går ud fra at den Container variabel skal være det dataset der indeholder min "Links" kolonne, men hvordan får jeg oprettet den variabel i min aspx fil når jeg Binder mit dataset i en codebehind?
Avatar billede mosekongen Nybegynder
07. oktober 2002 - 10:32 #9
Det tyder på at interessen faldende, men jeg har fundet en anden måde at få det til at virke på. Det er gjort med inspiration fra http://www.eksperten.dk/spm/261246.
Løsningen er som følgende.

<asp:TemplateColumn HeaderText="Link">
                    <ItemTemplate>
                        <a href="http://localhost/PCV/ModulA3.aspx?var=<%# DataBinder.Eval(Container, "DataItem.Links").ToString()%>">                       
                        <%# DataBinder.Eval(Container, "DataItem.Links") %>
                        </a>
                                          </ItemTemplate>
                </asp:TemplateColumn>

i den aspx fil jeg refererer til har jeg i page load skrevet følgende:
Session["var"] = Request.QueryString["var"];

På trods af at jeg ikke kunne få det til at virke erfter jeres forslag skal i have tak for hjælpen alligevel

Mvh
Ole
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