我有一个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事件时,我可以看到正在处理新的数据,因此该部分看起来工作正常。它只是没有在UI中更新。
发布于 2016-06-14 11:29:31
在页面的另一节中,按钮将触发数据源的更新。它在一个RadAjaxPanel里。我的treeView不在RadAjaxPanel里面。我把它搬进去了,现在它正在恢复元气。
发布于 2016-06-14 04:01:54
当底层数据源发生更改时,应该调用treeview上的DataBind()来刷新其数据。
https://stackoverflow.com/questions/37797811
复制相似问题