2016-06-13 3 views
0

У меня есть RadTreeView, который не обновляется при изменении источника данных.Как обновить мой RadTreeView

Это код в моем ascx.

<div class="demo-container size-thin" style="display: inline-block"> 
    <telerik:RadTreeView RenderMode="Lightweight" ID="AssessmentCriteriaTree" runat="server" Width="200px" Height="620px" 
     OnClientNodeClicked="OnClientNodeClicked" OnNodeDataBound="AssessmentCriteriaTree_NodeDataBound"> 
     <DataBindings> 
      <telerik:RadTreeNodeBinding Expanded="True"></telerik:RadTreeNodeBinding> 
     </DataBindings> 
    </telerik:RadTreeView> 
</div> 

В коде, связывающем привязку данных, происходит с этим кодом.

DataTable dtTree = ds.Tables[0]; 
AssessmentCriteriaTree.DataTextField = "Val"; 
AssessmentCriteriaTree.DataFieldID = "ID"; 
AssessmentCriteriaTree.DataFieldParentID = "ParentID"; 
AssessmentCriteriaTree.DataSource = dtTree; 
AssessmentCriteriaTree.DataBind(); 

При загрузке страницы на начальном этапе, дерево строится правильно, но когда тот же самый код хит, который изменяет источник данных, дерево не меняется. При отладке события OnNodeDataBound я вижу, что новые данные обрабатываются, поэтому похоже, что эта часть работает правильно. Он просто не обновляется в пользовательском интерфейсе.

+0

Как и когда вы устанавливаете источник данных (Page_Init, контроль обратной передачи и т. Д.)? Вы вообще используете диспетчер ajax или панели обновления? – Joel

+0

Этот код работает в page_load. Я не использую панели управления ajax или обновления. – RUEMACHINE

ответ

0

В другом разделе на странице была кнопка запуска обновления к источнику данных. Это было в RadAjaxPanel. Мой TreeView не был внутри RadAjaxPanel. Я переместил его внутрь, и теперь он обновляется.

0

Когда есть изменение в базовом источнике данных, вы должны вызвать DataBind() в дереве для обновления своих данных.

+0

Я вызываю DataBind в treeview, но не обновляюсь. См. Код, который я опубликовал. – RUEMACHINE

+0

Как и где вы меняете данные? –

Смежные вопросы