webForumDet fria alternativet

Repetera kontroll

12 svar · 468 visningar · startad av Kromp

KrompMedlem sedan okt. 2002103 inlägg
#1

hej!
har nån nån aning hur man kan skriva ut flera databundna kontroller från samma klientkod?

jag vill alltså ha något som inherits från repeater.

så jag i aspx-filen kan ha något sånt här:

<cc:submenu id="submenutemplate" blabla>
header, item, separator, footer etc...
</cc:submenu>

och sen klona den koden så många ggr det finns antal undermenyer i det här fallet.

VimpMedlem sedan juli 20022 537 inlägg
#2

Varför fungerar inte en vanlig repeater :q
Ursäkta om jag är seg :/

renholmMedlem sedan apr. 20012 266 inlägg
#3

Du menar att bygga en egen control, som fungerar ungefär som en Repeater?

KrompMedlem sedan okt. 2002103 inlägg
#4

Har testat lite nu och antar att jag får köra med nästlade repeaters i en repeater. Men snyggast kod i aspx-filen hade vart om jag kunnat klona ut aspx-kods-identiska kontroller efter varandra flera gånger med olika data.

VimpMedlem sedan juli 20022 537 inlägg
#5

Nu tror jag att jag förstår..
Vill du ha som här i forumet först en rubrik, sen de postar som passar in på den, sen en ny rurik med poster osv?

Är det så du vill ha det går det bra att göra det med SQL-satsen :)

KrompMedlem sedan okt. 2002103 inlägg
#6

nja, nästan... det är en trädstruktur.

t ex i databasen

menyval
  menyval
  menyval
  menyval
    menyval
    menyval
    menyval <- senast klickad
      menyval
      menyval

den enda parametern jag vet är det senast klickade menyvalet. med hjälp av den stegar jag mig uppåt till nivå 1 och skriver ut en "meny" som består av...

- klickat menyval som huvud -
* menyval
* menyval
* menyval

... för varje klickat menyval. Det kan finnas 1 sånt block eller hur många som helst :)

här är en sida jag såg med ungefär samma sak som det jag vill göra: http://www.swedevent.se/t2se.asp?p=55125
se vänsterkolumnen SPORTEVENEMANG med klickat menyval FOTBOLL...

VimpMedlem sedan juli 20022 537 inlägg
#7

Kan det här vara något? :)

http://dking.dynip.com/Home/ASPX/0001.aspx

fredrikMedlem sedan dec. 19991 072 inlägg
#8

...föregående länk funkar ju bra om man vet hur många nivåer man har.

Ofta vet man dock inte om man har 2, 5 eller 10 nivåer under varandra.

Finns det nåt sätt att dynamiskt skapa nya repeaters i varje repeater-item (via itemDataBound) ?
Dvs. utan att fördefiniera dem i HTML-koden...?

GladhMedlem sedan maj 20012 812 inlägg
#9

Visst kan du skapa nya repeaters i din kod, och sedan lägga till dem på din sida.

Lite Psedu kod....

Repeater myRepeater = new Repeater()
Page.Controlls.Add(myRepeater)

- M

fredrikMedlem sedan dec. 19991 072 inlägg
#10

...hmm....men hur får jag då till formateringen med "<headerTemplate>" osv?

Engine^Medlem sedan dec. 20003 887 inlägg
#11

Du kan sätta dom egenskaperna i din kod. Jag kikade lite på TemplateBuilder och gissar mig fram nu ;)

Repeater objMyRep = new Repeater();

TemplateBuilder objTemplate = new TemplateBuilder();

objTemplate.AppendLiteralString("<table><tr><td>Header</td></tr>");
objMyRep.HeaderTemplate = objTemplate;

objTemplate = new TemplateBuilder();
objTemplate.AppendLiteralString("<tr><td>Item</td></tr>");
objMyRep.ItemTemplate = objTemplate;

objTemplate = new TemplateBuilder();
objTemplate.AppendLiteralString("</table>");
objMyRep.FooterTemplate = objTemplate;

Page.Controls.Add(objMyRep);

Jag har inte en aning om det här fungerar eller ej, men jag antar att det här är en väg man kan gå.
Jag hoppas att det hjälper till ivarjefall. :)

fredrikMedlem sedan dec. 19991 072 inlägg
#12

Hoppsan! Ja där ser man...det skulle underlätta mycket...ska genast titta på det vid nästa tillfälle!

Kan dock undra hur man kan trigga ItemDataBound osv, men det lär ju ge sig!

Tack!

GladhMedlem sedan maj 20012 812 inlägg
#13

Kan dock undra hur man kan trigga ItemDataBound osv

Tja, eventet finns ju så det borde gå att anropa, förstår dock inte varför du vill trigga det själv, det triggas ju när man binder datan till repeatern, men du menar kanske hur man binder eventet till kontrollen. Det är inte speciellt svårt, har du VS.NET så kan du ju titta hur i den genererade koden hur det görs, annars så ser det ut något sånt här.

control.event += new eventdelegate(min_method_som_skall_anropas)

typ

page.Load += new System.EventHandler(this.Page_Load)

- M

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)