我有一个放在雷达网格里的雷达视图。出于某种原因,TreeView的展开/折叠按钮不起作用。我可以首先展开TreeView,但是NodeExpand事件永远不会触发。(回发确实发生在服务器上,并且TreeView节点上有几个按钮可以工作。)一旦展开节点,折叠按钮就不工作,单击它什么也不做。(不回发到服务器)。我将ExpandMode设置为Serverside。但是,如果我将ExpandMode更改为ClientSide,它将正常工作。
我真的需要控件将expandMode设置为serverside,以减少大型树的负载。
我不确定这是否重要。但当事件radgrid_itemdatabound被激发时,我正在将事件添加到radtreeview中。我注意到一个奇怪的行为,我也无法解释,如果我不将事件附加到nodeexp,它将无法打开或关闭。节点化禁忌事件也会成功触发,并且数据会很好地加载到树中。
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>