Avatar billede c-sharp Nybegynder
18. august 2005 - 13:32 Der er 4 kommentarer og
1 løsning

Problem med linkbutton i repeater

Jeg har nogle linkbuttons i en repeater men jeg kan ikke få dem til at kalde funktionen i min code behind.

Jeg har følgende kode:

private void overskriftRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
    System.Data.DataRowView dataRow = (System.Data.DataRowView)e.Item.DataItem;
    LinkButton linkbutton = new LinkButton();
    linkbutton.ID="sorter";
    linkbutton.CssClass = "listetop_link";
    linkbutton.Text = dataRow.Row.ItemArray[1].ToString();
    linkbutton.CommandName = dataRow.Row.ItemArray[0].ToString();
    linkbutton.CommandArgument = dataRow.Row.ItemArray[4].ToString();
               
                linkbutton.Attributes.Add("OnClick","overskriftRepeater_ItemCommand");
                ((PlaceHolder)e.Item.FindControl("toptekst")).Controls.Add(linkbutton);
}
}

Men får en javascript fejl om at "overskriftRepeater_ItemCommand" ikke kan findes.

Skriver jeg det på følgende måde i aspx filen virker det fint:

<asp:LinkButton id="sorter" CssClass="listetop_link" Text='<%# DataBinder.Eval(Container.DataItem, "navn") %>' OnClick="overskriftRepeater_ItemCommand"  CommandName='<%# DataBinder.Eval(Container.DataItem, "specId")%>' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "tekst_sortering")%>' Runat="Server"/>
Avatar billede snepnet Nybegynder
18. august 2005 - 19:23 #1
hvis du tilføjer det på den måde forsøger du at kalde en javascript funktion ved overskriftRepeater_ItemCommand... jeg går ud fra at det er en serverside funktion du vil kalde - eller?
mvh
Avatar billede c-sharp Nybegynder
19. august 2005 - 06:09 #2
Hej snepnet :-)

Ja det er en serverside funktion jeg vil kalde, hvordan skal det så skrives?
Avatar billede snepnet Nybegynder
19. august 2005 - 08:15 #3
som du har skrevet i dit sidste eksempel, eller ved at hooke op på respektive events programmatisk :

someLinkButton.Click += new EventHandler(someLinkButton_Click);

og en handler
protected void someLinkButton_Click(object sender, EventArgs e)
{
  // ..
}

mvh
Avatar billede c-sharp Nybegynder
19. august 2005 - 08:31 #4
Ja selvfølgelig...

Jeg takker endnu engang mange gange for din tid!!! smidt et svar så er der point.
Avatar billede snepnet Nybegynder
19. august 2005 - 08:34 #5
får du her :o)

vær opmærksom på, at din eventhandler ikke bliver "husket", så hvis du laver ting og sager i DataBoundEventet (eller et hvilket som helst andet event for den sags skyld), så skal den handler køre hver gang.
Det er derfor ofte hensigtsmæssig, at du sørger for at angive commandname/argument, og så samle tingene op i ItemCommand, hvor du så (pr. commandname) udleder hvad der skal gøres.

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