Avatar billede marvinq Nybegynder
02. april 2014 - 15:12 Der er 1 kommentar

Dynamisk text på asp:button

Hej eksperter,

Jeg er ved at rode mig ud på dybt vand, og troede lige jeg havde været snedig, men det virker ikke helt efter hensigten.

Kort sagt, så får jeg noget data ind fra en webservice til et array.  Ud fra antallet af poster i mit array, så skal der for hver dannes nogle bokse med hver noget tekst, et billede og så en knap. Antallet er altså variabelt. Det fungerer ganske fint med billede og tekst, men knappen er noget rod.

Knappen er en asp:button, og problemet består i at teksten skal være ud fra hvad der står i array'et, dvs. variabelt. Og så skal id'et på knappen naturligvis være forskelligt, så jeg kan fange en klik-event.

Jeg har været ude i noget lignende:

aspx:
<asp:Button ID="btn" runat="server" Text='<%# GetString(10) %>' />

codebehind:
protected void Page_Load(object sender, EventArgs e){
  GetList();
  if (!this.IsPostBack)
    this.DataBind();   
}

public string GetString(int i)
{
  return "Pris: " + i + ",- kr.";
}

Ovenstående virker fint sådan set, men der er to issues:

1) Input til funktionen er ikke variabelt, hvordan gør jeg det? Jeg har prøvet med diverse variabler, men det dur ikke.

2) Id'et på knappen vil i dette tilfælde være det samme på alle knapper, og det er noget rod. Kan det løses på samme eller anden måde?

Håber virkelig nogen kan hjælpe.!

På forhånd mange tak!
Avatar billede anri Novice
02. april 2014 - 19:06 #1
Jeg ville benytte en repeater til det og databinde den repeater til dit GetList() resultat.

På den måde vil dine buttons (inde i repeateren) få hver sin ID (client side).

Jeg ville nok så enten lave din GetList() således at den også returnerede en kolonne med den tekst du vil have i din button eller abonnere på repeterens ItemDataBound event og så sætte teksten på din button deri.
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