【发布时间】:2009-07-26 04:57:07
【问题描述】:
我创建了用户控件容器(实际上是面板),它可以动态添加和删除用户控件项(如行)。这就是问题所在:当新的用户控件被添加到控件集合时,会意外地从先前添加的控件中获得一个值 - 仅在第一次回发时。
详细说明:
- 在初始响应中,我填写了一个用户控件项。
- 然后我点击“添加”按钮,这会将新的用户控件项添加到面板中,这个新控件从前一个控件中获取值(更令人困惑的是,新控件不会获取所有值,仅形成禁用文本框控件和下拉列表)。为什么?当被添加到面板控件集合中时,UC 在服务器上获得价值。
所以我对这个问题的实现是:
UcSomeControlItem uci = LoadControl("UcSomeControlItem .ascx") as UcSomeControlItem;
uci.DataSource = new SomeObject;
uci.DataBind();
uci.ID = IdPrefix + ControlID;
ph1.Controls.Add(uci);//At the end
当我更改添加到面板控件集合顺序的问题消失时,因为 UC 在面板添加上获得了价值...
喜欢:
UcSomeControlItem uci = LoadControl("UcSomeControlItem .ascx") as UcSomeControlItem;
ph1.Controls.Add(uci);//Firstly adding ..
uci.DataSource = new SomeObject;
uci.DataBind();
uci.ID = IdPrefix + ControlID;
所以我想知道到底发生了什么?谁为新添加的控件设置值?
【问题讨论】:
标签: asp.net