在 SharePoint Designer 等设计器中运行时,Web 部件不能使用某些对象(如最佳实践中详述的 Page.Request)来创建设计器友好的服务器控件。
您可以使用DesignMode属性来确定 Web 部件是否在设计器内运行并采取适当的行动。
然而,这似乎不适用于 Toolparts - 它总是返回 false。
如何确定工具部件是否在 SharePoint Designer 中运行?
在 SharePoint Designer 等设计器中运行时,Web 部件不能使用某些对象(如最佳实践中详述的 Page.Request)来创建设计器友好的服务器控件。
您可以使用DesignMode属性来确定 Web 部件是否在设计器内运行并采取适当的行动。
然而,这似乎不适用于 Toolparts - 它总是返回 false。
如何确定工具部件是否在 SharePoint Designer 中运行?
我们需要Toolpane.InCustomToolpane属性
所以从工具窗格代码中
this.ParentToolPane.InCustomToolPane
顺便说一句 - 我认为这种差异的原因(尽管它的原因很糟糕)是 Web 部件页面被加载到从 Visual Studio (Whidbey) 获取的设计器中,如 msdb 博客中所述,但工具部件被加载到浏览器中窗户。