2016-06-13 135 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中。我的樹視圖不在RadAjaxPanel中。我把它移到裏面,它現在正在刷新。

0

當底層數據源發生變化時,應該在樹視圖上調用DataBind()以刷新其數據。

+0

我在treeview上調用DataBind,但沒有更新。查看我發佈的代碼。 – RUEMACHINE

+0

您如何以及在哪裏更改數據? –