【发布时间】:2011-06-25 22:31:45
【问题描述】:
我有一个代表“弹出”对话框的 asp.net 用户控件。基本上,它是 jQuery UI 对话框的包装器,可以将其子类化以轻松制作对话框。
作为该控件的一部分,我需要将一个 div 注入到使用该控件的页面中,无论是在表单的最顶部还是最底部,以便在实例化弹出窗口时,它的父级会更改为该 div .这允许“嵌套”弹出窗口,而不会将子弹出窗口困在父弹出窗口中。
问题是,我找不到将这个 div 注入页面的安全方法。用户控件没有 preinit 事件,所以我不能在那里做,并且在 Init、Load 或 PreRender 中调用 Page.Form.Controls.Add(...) 会导致标准异常“无法修改控件集合在 DataBind、Init、Load、PreRender 或 Unload 阶段。"
我以为我已经通过使用...找到了解决方案
ScriptManager.RegisterClientScriptBlock(Page, Me.GetType, UniqueID + "_Dialog_Div", containerDiv, False)
... 这似乎正常工作,但最近一位同事尝试在对话框中放置一个 UpdatePanel,现在她收到错误“为类型 'ASP.controls_order_viewzips_ascx' 和键 'ctl00$ContentBody$OViewZips_Dialog_Div 注册的脚本标签” ' 在脚本标签之外有无效字符: 。只能注册格式正确的脚本标签。"
您应该如何从用户控件内部向页面控件集合添加控件?
【问题讨论】:
标签: asp.net vb.net user-controls jquery-ui-dialog