2016-06-13 7 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イベントをデバッグすると、新しいデータが処理されているように見えるので、その部分が正しく動作しているように見えます。これはUIで更新されません。

+0

データソース(Page_Init、コントロールポストバックなど)をいつ、どのように設定していますか?あなたはajaxマネージャーを使用していますか、あるいはパネルを更新していますか? – Joel

+0

このコードはpage_loadで実行されます。私はajaxマネージャーや更新パネルを使用していません。 – RUEMACHINE

答えて

0

ページの別のセクションでは、ボタンがデータソースの更新をトリガーする場所がありました。それはRadAjaxPanelにありました。私のtreeViewはRadAjaxPanelの中​​にいませんでした。私はそれを内部に移動し、今それはリフレッシュされています。

0

基礎となるデータソースに変更がある場合は、そのデータを更新するためにツリービューでDataBind()を呼び出す必要があります。

+0

私はTreeview上でDataBindを呼び出していますが、更新していません。私が掲示したコードを見てください。 – RUEMACHINE

+0

どのようにデータを変更しますか? –