Расширение / сворачивание RadTreeView не работает при внедрении в RadGrid
-
19-09-2019 - |
Вопрос
У меня есть Radtreeview, который находится внутри RadGrid.По какой-то причине кнопки развертывания / сворачивания Treeview не работают.Изначально я могу развернуть Treeview, однако событие NodeExpand никогда не срабатывает.(обратная передача на сервер действительно происходит, и у меня есть несколько кнопок на узле treeview, которые работают.) Как только узел был развернут, кнопка сворачивания не работает, и нажатие на нее ничего не делает.(нет обратной передачи на сервер).У меня установлен режим расширения на стороне сервера.Однако, если я изменю Expandmode на Clientside, он будет работать должным образом.
Мне действительно нужен элемент управления для работы с ExpandMode, установленным на стороне сервера, чтобы уменьшить нагрузку на большое дерево.
Я не уверен, имеет ли это значение.Но я добавляю События в RadTreeView при запуске события RadGrid_ItemDataBound.Я замечаю одно странное поведение, которое я также не могу объяснить: если я не прикрепляю событие к 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);
Вот расшифровка Treeview в файле ascx
<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>
Решение
попробуйте добавить свои события в созданный элемент RadGrid.