我有这样的html代码:
<telerik:RadMultiPage ID="MultiPage" runat="server">
<telerik:RadPageView ID="TablePage" runat="server">
<Cx:DataObjectDefinitionTree ID="TableOverview" runat="server"/>
</telerik:RadPageView>
</telerik:RadMultiPage>
我可以通过以下方式获取多页:var multiPage = $find('<%= MultiPage.ClientID %>');
但我无法获得PageView
或DataObjectDefinitionTree
虽然我需要DataObjectDefinitionTree
我尝试从PageView
获取MultiPage
,然后从DataObjectDefinitionTree
获取DataObjectDefinitionTree
,但这也不起作用。
如何在{Javascript中将DataObjectDefinitionTree
变为变量?
编辑:
我只想调用RadTreeView
中的两个方法(它与_getAllItems()
基本相同)。
这些方法为get_selectedNode()
和{{1}}。
答案 0 :(得分:0)
Telerik的客户端API非常完整,see by yourself:
var multiPage = $find('<%= MultiPage.ClientID %>');
var pageView = multiPage.findPageViewByID("TablePage");
对于DataObjectDefinitionTree
,您应该能够获取pageView的DOM元素:
var domElement = pageView.get_element();
dataObjDefTree = domElement.getElementById('<%=TableOverview.ClientID %>');
或者您可以尝试这样的事情:
var dataObjDefTree = document.getElementById('<%=TableOverview.ClientID %>');
答案 1 :(得分:0)
好的,这里的主要问题是如何从父页面访问您的WebUserControl
的javascript。您需要使用与UserControl相同的ID将您的DataObjectDefinitionTree
内容包装在div中。这是link解释这一点。
然后从UserControl声明您自己的函数访问RadTreeView
的客户端API(_getAllItems()
和get_selectedNode()
)。
答案 2 :(得分:0)
好的,我发现了错误:
<%=TableOverview.ClientID %>
提供错误的ID。
要获得正确的ID,我必须将以下内容添加到我的ASPX-Control DataObjectDefinitionTree
中:
public override string ClientID {
get { return TableTree.ClientID; }
//TableTree is the base object of DataObjectDefinitionTree
}
现在,当我拨打<%=TableOverview.ClientID %>
时,我会收到正确的身份证明
谢谢你的帮助。 :)