【问题标题】:How do I refresh my RadTreeView如何刷新我的 RadTreeView
【发布时间】:2016-06-13 19:35:59
【问题描述】:

我有一个 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 中更新。

【问题讨论】:

  • 如何以及何时设置数据源(Page_Init、控制回发等)?您使用的是 ajax 管理器还是更新面板?
  • 此代码在 page_load 中运行。我没有使用 ajax 管理器或更新面板。

标签: c# telerik radtreeview


【解决方案1】:

当底层数据源发生变化时,您应该在树视图上调用 DataBind() 以刷新其数据。

【讨论】:

  • 我在树视图上调用 DataBind 但它没有更新。请参阅我发布的代码。
  • 如何以及在何处更改数据?
【解决方案2】:

在页面的另一部分中,按钮用于触发对数据源的更新。它在 RadAjaxPanel 中。我的 treeView 不在 RadAjaxPanel 内。我把它移了进去,现在它正在刷新。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多