我有一个位于 RadGrid 内的 Radtreeview。由于某种原因,Treeview 的展开/折叠按钮不起作用。我最初可以展开 Treeview,但是 NodeExpand 事件永远不会触发。(回发确实发生在服务器上,并且我在 treeview 节点上有几个可以工作的按钮。)一旦节点展开,折叠按钮就不起作用,然后单击它什么也不做。(没有回发到服务器)。我将 ExpandMode 设置为 ServerSide。但是,如果我将 Expandmode 更改为 Clientside 它可以正常工作。
我真的需要控件将 ExpandMode 设置为服务器端,以减少大型树的负载。
我不确定这是否重要。但是当事件 RadGrid_ItemDataBound 被触发时,我将事件添加到 RadTreeview。我注意到一个奇怪的行为,我也无法解释,如果我没有将事件附加到 NodeExpand 它无法打开或关闭。此外,NodeDataBound 事件成功触发,并且数据很好地加载到树中。
RadTreeView tree = (RadTreeView)e.Item.FindControl("RadTreeView1");
tree.NodeDataBound += new RadTreeViewEventHandler(RadTreeView1_NodeDataBound);
tree.NodeExpand += new RadTreeViewEventHandler(RadTreeView1_NodeExpand);
tree.NodeCollapse += new RadTreeViewEventHandler(tree_NodeCollapse);
这是ascx文件中Treeview的声明
<DetailTables>
<telerik:GridTableView Name="Detail Table" ShowHeader="false">
<Columns>
<telerik:GridTemplateColumn UniqueName="FooTreeview">
<ItemTemplate>
<telerik:RadTreeView ID="RadTreeView1" runat="server" DataValueField="CommunicationID"
LoadingStatusPosition="BelowNodeText" style="white-space: normal;">
<NodeTemplate>
<uc1:FooControl ID="r1" runat="server" FooBindings='<%#DataBinder.Eval(Container,"DataItem") %>' />
</NodeTemplate>
</telerik:RadTreeView>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>