最初はページコードでデータバインディングを行っているradtreeviewがありますが、ノード拡張はSVCWebサービスの呼び出しに依存しています。問題は、イベントが適切に発生し、Webサービスから次のメソッドを実行している間です。
[OperationContract]
[WebMethod]
public RadTreeNodeData[] TreeViewNodeExpand(RadTreeNodeData ExpandedNode,
object context) {
// blah blah some code
}
RadTreeNodeExpandedNoneパラメーターがnullです。コードビハインドで最初のツリーを構築したとき、
List<RadTreeNode> collection
= (data.Select(x => new RadTreeNode
{
Category = category,
ExpandMode = WebService,
Value = x.Value.ToString(),
Text = x.Text,
DataItem = 555
})).ToList();
DataItemを明示的に「555」に設定しました。Webサービスメソッドが起動したときにRadTreeNodeDataExpandedNodeがnullになる理由について何かが足りませんか?
私のradtreeviewマークアップは以下のとおりです。
<telerik:RadTreeView ID="treeView" CheckBoxes="true" PersistLoadOnDemandNodes="true"
TriStateCheckBoxes="True" runat="server" CheckChildNodes="True" CausesValidation="false"
EnableEmbeddedSkins="false" Skin="VBoD">
<WebServiceSettings Path="~/WebServices/Retriever.svc" Method="TreeViewNodeExpand">
</WebServiceSettings>
</telerik:RadTreeView>