Hvordan får jeg kædet det xslt-genereret <a>-link sammen med min button1_Click sub-rutine i min aspx.vb således at jeg kan se id-nummeret på det link som der er trykket på.
Jeg vurder selv af spørgsmålet er svært derfor det høje antal points. Der er derfor også kun p til en anvendelig løsning.
Hvis du laver dit html tag så det kommer til at se sådan her ud: <a id="XLT028273" runat="server" href="java script:__doPostBack('XLT028273','')">Klik her</a> og laver en eventhandler i din .vb fil der ser sådan her ud: Private Sub XLT028273_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles XLT028273.ServerClick lblTest.Text = "hej med dig" End Sub virker det.
Mange tak men problemet er netop at det er XSLT filen som generere id'et og jeg derfor ikke ved hvad id tag'et har. Jeg havde håbet at kunne se hvem (altså id'et) som sendte til serveren når man klikkede på linket. Jeg kan se at der sendes noget til linket (samt lidt vha. trace) men ikke id'et?
OK - her kommer så lige et lille bud, der måske kan løse dit problem. Som du ser sender doPostBack to parametre - den første er navnet på den eventhandler der skal tage sig af postback'et - det andet kan du bruge til at flytte en parameter mere med over - altså: java script:__doPostBack('eventhandler','XLT028273') Når du fra din kode skal trække id nummeret ud kan du bruge: Request.Form("__Eventargument")
Excellent på rette spor. Jeg får id'en men det virker ikke som om at id'et er kædet sammen med elementet. Dvs. jeg kan ikke arbejde med elementet, altså ændre indhold eller se indhold af element. Fidusen ved at få id'et var nemlig at jeg derefter skulle kunne arbejde videre med elementet. Så som:
Dim knap As System.Web.UI.HtmlControls.HtmlAnchor knap.ID = Request.Form("__Eventargument").ToString knap.visible = True
eller
If Xml1.FindControl(Request.Form("__Eventargument")).Visible = False Then
Det forstår jeg ikke helt. Testede med denne kode og det virkede fint: lblTest.Text = "hej med dig " + Request.Form("__Eventargument")
Og denne kode kører også fint: Dim knap As New System.Web.UI.HtmlControls.HtmlAnchor knap.ID = Request.Form("__Eventargument") knap.InnerText = "Link" knap.HRef = "#" knap.Visible = True PlaceHolder1.Controls.Add(knap)
Jeg forstår ikke helt - vi laver et link med vores xslt, hvor vi kan angive eventhandler og en parameter. Hvad er det så præcis du vil have den eventhandler til at gøre?
Jeg er såment bare interesseret i at kunne anvende det link som xslt'en laver, på samme måde som hvis det havde været en ASP.NET Webcontrol, altså et <a id="mitlink" onServerClick="mitLinksub"> på en sådan måde at jeg kan skrive:
mitLink.innerHTML = "<B>HEJ</B>"
Ved din hjælp har jeg opnået id'et på HTML-elementet, men jeg kan stadig ikke kæde det sammen med et objekt på asp.net siden.
Dvs. når jeg klikker på linket på siden skal jeg modtage id'et på server-siden(virker nu), men således at jeg kan ændre indholdet på id-objektet fra server-siden(f.eks. ved <id-objekt>.innerHTML="HEJ"), ligesom ved et <asp:anchor> webcontrol.
Det tror jeg ikke kan lade sig gøre - linket bliver jo først skabt i forbindelse med at siden bliver genereret. Jeg tror du skal et par skridt baglæns og overveje om du har valgt den rigtige metode til at løse din udfordring.
Læg mærke til, at de fleste af de ting du kan lave med xslt kan du også lave med xml objektsamlingen i .net.
Du har fuldstændig ret Thor. Jeg har fundet en løsning. Den indebære at bruge xslt param(eter). Ved at bruge xslt parameter er det muligt at sende variable til og fra asp.net codebehind siden. Men samtidig bruger jeg også din metode med at overføre variabler den ene vej. Jeg giver derfor 100 point og takker mange gange for hjælpen og lige så vigtigt for dialogen.
Synes godt om
Ny brugerNybegynder
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.