我正在构建一个自定义控件,可以生成许多日历(日历自定义不是任何库的一部分)当单击日历上的日期时,它会使用某种日程表填充面板。现在,到目前为止一切正常。点击日计划员中的一小时时会出现问题。一个窗口以div的形式弹出,创建一个带有取消和提交按钮的表单。单击这些按钮中的任何一个时,将触发自定义事件,该事件假定要重新初始化日程表。我为日程计划器创建了一个自定义事件,但我一直收到错误
"在DataBind,Init,Load,PreRender或Unload阶段不能修改控件集合。"
以下是参考资料来源。
私人DayView CreateDayPanner(控件容器,DateTime日期,int dayNum) { container.Controls.Clear();
var dv = new DayView(date.Date.AddDays(dayNum))
{
Identifier = dayNum,
LogoPath = "../imgs/dialogueLogo.png",
fieldClasses = "eDialogue_cls",
InnerDCls = "innerD_cls",
FsCCls = "fsContainer_cls",
LegCCls = "legContainer_cls"
};
dv.Submitted += Dv_Submitted;
dv.Canceled += Dv_Canceled;**
return dv;
}
DayView类型具有以下代理和处理程序:
public delegate void CancelEventHandler(object source, DayViewEventArgs args);
public delegate void SubmitEventHandler(object source, DayViewEventArgs args);
public event CancelEventHandler Canceled;
public event SubmitEventHandler Submitted;
public void RaisePostBackEvent(string eventArgument)
{
OnSubmitted(StartDate);
OnCancelled(StartDate);
}
最后,在DayView类型上触发事件如下:
取消按钮: cancel.Attributes.Add(HtmlTextWriterAttribute.Href.ToString(),csm.GetPostBackClientHyperlink(this,StartDate.ToShortDateString()));
提交按钮:
submit.Attributes.Add(HtmlTextWriterAttribute.Href.ToString(), csm.GetPostBackClientHyperlink(this, StartDate.ToShortDateString()));
我不知道导致该错误的原因。任何建议都将不胜感激。