我遇到动态加载控件事件的问题。
以下是我加载控件的方法:
protected void Page_Load(object sender, EventArgs e)
{
LoadSubPageEditTemplate();
}
protected void LoadSubPageEditTemplate()
{
pnlPageTemplate.Controls.Clear();
BaseOfferAdmin adminControl = (BaseOfferAdmin)this.LoadControl("~/Controls/SingleOfferAdmin.ascx");
if (adminControl != null)
{
adminControl.ID = "Control_ID"
pnlPageTemplate.Controls.Add(adminControl);
}
}
}
LoadSubPageEditTemplate()也是从页面上的按钮事件触发的,因为我必须在按钮事件执行后更新它。
控件加载完美,我已经使用基本按钮测试了它,并且回发按预期激发。但是,我使用CheckBoxes得到了奇怪的结果。
<asp:CheckBox runat="server" ID="cbOptionalAction" Text="CheckBox" AutoPostBack="true" OnCheckedChanged="cbOptionalAction_CheckChanged" />
CheckedChanged事件仅在选中复选框时触发,我猜这意味着我的控件视图状态存在一些问题。如果我在页面上有多个复选框,并且有一个创建回发,则会对每个选中的复选框触发checkchanged事件。
感谢任何人抽出时间帮助我!
Ignus
答案 0 :(得分:-2)
请仅在页面未回发时加载控件。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadSubPageEditTemplate();
}
}