在DataBind,Init,Load,PreRender或Unload阶段期间无法修改控件集合

时间:2016-05-13 18:16:38

标签: c# asp.net custom-controls

我正在构建一个自定义控件,可以生成许多日历(日历自定义不是任何库的一部分)当单击日历上的日期时,它会使用某种日程表填充面板。现在,到目前为止一切正常。点击日计划员中的一小时时会出现问题。一个窗口以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()));

我不知道导致该错误的原因。任何建议都将不胜感激。

0 个答案:

没有答案