我正在使用用户控件包装器方法构建自定义数据类型。在其中,我添加了现有的 TinyMCE 数据类型。问题是我需要找到一种方法来动态获取数据类型所在的当前 TabPage,以便我可以将 TinyMCE 按钮添加到菜单中。这是我目前拥有的(TabPage 是硬编码的):
使用语句:
using umbraco.cms.businesslogic.datatype;
using umbraco.editorControls.tinyMCE3;
using umbraco.uicontrols;
OnInit 方法:
private TinyMCE _tinymce = null;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.ID = "crte";
DataTypeDefinition d = DataTypeDefinition.GetDataTypeDefinition(-87);
_tinymce = d.DataType.DataEditor as TinyMCE;
ConditionalRTEControls.Controls.Add(_tinymce);
TabView tabView = Page.FindControl("TabView1", true) as TabView;
TabPage tabPage = tabView.Controls[0] as TabPage;
tabPage.Menu.InsertSplitter();
tabPage.Menu.NewElement("div", "umbTinymceMenu_" + _tinymce.ClientID, "tinymceMenuBar", 0);
}
用户控制:
<asp:PlaceHolder ID="ConditionalRTEControls" runat="server" />
注意: Page.FindControl 正在使用递归查找控件的自定义扩展方法。