我在2个嵌套RadSplitters内的MasterPage上有一个RadTreeView。我正在使用LoadOnDemand,但需要能够从服务器端代码扩展节点。我试图通过调用我编写的方法将节点扩展到ResponseScripts来做到这一点。此方法位于RadCodeBlock中,如下所示:
<telerik:RadCodeBlock ID="RadCodeBlock2" runat="server">
<script type="text/javascript">
function expandNode(nodeid) {
var treeView = $find("<%= NavigationTreeView.ClientID %>");
var node = treeView.findNodeByValue(nodeid);
if (node) {
node.expand();
return true;
}
return false;
}
</script>
</telerik:RadCodeBlock>
我的问题是我无法访问RadTreeView来扩展节点。我将非常感谢有关如何使用$ find。
从javascript访问此树视图的任何指导谢谢!
Lauren Kirschner
答案 0 :(得分:1)
如果您尝试从javascript扩展树视图,那么您所拥有的代码就可以正常工作。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
function expandNode(nodeid){
var treeView = $find("<%= NavigationTreeView.ClientID %>");
var node = treeView.findNodeByValue(nodeid);
alert(node);
if (node)
{
node.expand();
return true;
}
return false;
}
</script>
</telerik:RadCodeBlock>
<telerik:RadSplitter ID="RadSplitter1" runat="server">
<telerik:RadPane ID="RadPane" runat="server">
<telerik:RadTreeView ID="NavigationTreeView" runat="server" >
<Nodes>
<telerik:RadTreeNode Text="Node 1" Value="0">
<Nodes>
<telerik:RadTreeNode Text="Child1" Value="1"></telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeView>
</telerik:RadPane>
</telerik:RadSplitter>
<asp:Button ID="BtnExpand" runat="server" Text="Expand jscript" OnClientClick="expandNode(0);" />
<asp:Button ID="BtnExpandServer" runat="server" Text="Expand Server" OnClick="BtnExpandServer_Click" />
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
如果您尝试扩展服务器端,以下工作将基于我上面发布的示例。
protected void BtnExpandServer_Click(object sender, EventArgs e)
{
RadTreeNode node = NavigationTreeView.FindNodeByValue("0");
node.Expanded = true;
}