MOSS 2007 编辑模型面板
我正在编写一个 Web 控件,在其中重写 CreateChildControls 方法。在此方法中,我创建一个 EditModelPanel,向其中添加一个按钮,然后将 EditModePanel 添加到我的 Web 控件的 Controls 集合 (this.Controls.Add(xxx))。问题是该按钮在显示模式和编辑模式下都会显示。我尝试设置 EditModelPanel 的 PageDisplayMode 属性和 SuppressTag 属性,但没有任何效果。
为什么以编程方式添加 EditModePanel 时会失败?
我用谷歌搜索了这个问题,其他人也遇到了完全相同的问题,但他没有得到回应。
I am writing a web control where I'm overriding the CreateChildControls method. In this method I create an EditModelPanel, add a button to it and then add the EditModePanel to my web control's Controls collection (this.Controls.Add(xxx)). The problem is that the button shows up in both Display mode and Edit mode. I've tried setting EditModelPanel's PageDisplayMode property and SuppressTag property and nothing works.
Why does the EditModePanel fail when adding it programatically?
I've googled this issue and someone else had the exact same problem but he got no response.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您可以从控件内部检测是否处于编辑模式并且不创建子控件。这样您就不需要 editmodepanel。
我重构了 editmodepanel 类,它的作用有点不同。它实现了IParserAccessor,逻辑位于接口的AddParsedSubObject()方法中。我认为通过手动添加控件,您可以绕过 IParserAccessor。希望这有帮助。
Firstly, You can detect from within your control if you are in edit mode and not create the child controls. This way you will not need the editmodepanel.
I have refactored the editmodepanel class, and it does things a bit differently. It implements IParserAccessor and the logic is in AddParsedSubObject() method of the interface. I think by manually adding the controls, you are bypassing the IParserAccessor. Hope this helps.