ItemTemplates og Postbacks
Jeg har lidt problemer med min UserControl/ItemTemplate og PostBack. Min WebForm indeholder en Repeater, hvor ItemTemplate er min UserControl.Min UserControl/ItemTemplate indeholder en Button, og jeg vil opfange når knappen klikkes.
Alt dette virker fint nok, problemet er at jeg kan ikke fange event hvis jeg ikke binder data til repeateren hver gang siden loades, hvilket jeg ikke gør ved Postbacks.
I og med mine controls i ItemTemplates ikke loades, kan jeg ikke fange events der. Men der må simpelhen være en løsning på dette problem. Kan ikke passe at jeg skal loade og binde data to gange, når jeg kun skal bruge det en enkelt gang.
Ved Page_Load binder jeg data til min Repeater og det virker fint nok.
/**** The Webform1.aspx *****/
private void Page_Load(object sender, System.EventArgs e) {
if(!IsPostBack) <--- Her er problemet
MyLoad();
}
private void MyLoad(){
this.Repeater1.ItemTemplate=LoadTemplate("WebUserControl1.ascx");
ArrayList list = new ArrayList();
//tilføjer nogle test objekter
this.Repeater1.DataSource=list;
this.Repeater1.DataBind();
}
private void Repeater1_ItemCommand(object source,
System.Web.UI.WebControls.RepeaterCommandEventArgs e) {
Response.Write("Repeater1_ItemCommand fired...");
}
Vil lige pointere at det problem jeg sidder med, kan jeg godt løse på en eller anden måde ved at requeste noget (name,value) pair, men jeg leder efter en fornuftig løsning i ASP.NET. Så jeg giver ikke point for en eller anden classic ASP spaghetti-løsning.