19. april 2007 - 17:07Der er
4 kommentarer og 1 løsning
Repeater med condition
Hej jeg har arbejdet med objektorienteret C# i et par år nu, og har hver gang jeg er blevet mødt med denne problemstilling krøbet mig udenom, men denne gang er det desværre ikke muligt.
Jeg har en bool der kommer fra repeateren, hvis den er true skal der vises en Checkbox og hvis den er false skal der vises en rating control (AjaxToolkit)
Jeg har prøvet lidt forskelligt, men ligemeget har det hjulpet
Jeg skal lige være med ... Skal det forstås på den måde, at hvis der er i datakilden du populerer repeateren udfra optræder true på en given property, så skal der i det repektive item i repeateren vises en checkbox, og ellers en rating control. Mvh
Hvis du databinder til en liste af sådan nogle her:
public class SomeClass { private bool m_Answer = true;
public bool Answer { get { return m_Answer; } set { m_Answer = value; } }
public SomeClass(bool answer) { m_Answer = answer; } }
Så kan du med kode som denne: Repeater repeater = new Repeater(); repeater.ItemDataBound += new RepeaterItemEventHandler(repeater_ItemDataBound); form1.Controls.Add(repeater);
List<SomeClass> liste = new List<SomeClass>(); liste.Add(new SomeClass(true)); liste.Add(new SomeClass(false)); liste.Add(new SomeClass(true)); liste.Add(new SomeClass(true));
repeater.DataSource = liste; repeater.DataBind();
Og en handler som denne: void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { SomeClass data = e.Item.DataItem as SomeClass; if(data.Answer) { TextBox tb = new TextBox(); e.Item.Controls.Add(tb); } else { e.Item.Controls.Add(new LiteralControl("Not a textbox")); } }
Få indsat forskellige kontroller, afhængig af den aktuelle tilstand på de objekter du binder imod.
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.