2016-06-13 130 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

您如何以及在哪里更改数据? –