PageLoad イベントで動的にロードするツリー ビューがあります。これが私のツリー ビューとデータ ソースです。
<asp:TreeView ID="tv" runat="server" DataSourceID="xds"
SelectedNodeStyle-ForeColor="Red" NodeStyle-ForeColor="Black">
<DataBindings>
<asp:TreeNodeBinding DataMember="Node"
ValueField="Id" TextField="Title" />
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource ID="xds" runat="server" EnableCaching="false" />
これは私が PageLoad で実行するコードです
StringBuilder sb = new StringBuilder();
XmlWriter xw = XmlWriter.Create(sb);
WriteTreeViewXml(xw);
xw.Flush();
xw.Close();
xds.Data = sb.ToString();
xds.DataBind();
tv.Nodes[0].Selected = true; // error here
これは正常に機能し、ツリー ビューが正しく読み込まれます。今、SelectedNode にスタイリングを追加しようとしています。これは、特定のノードをクリックすると機能しますが、ページの読み込み時にルート ノードのスタイルが設定されません。だから私はPageLoadで選択されたルートノードを設定しようとしています
ルート ノードを選択済みとして設定しようとすると、次のエラーが発生します。
インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス
データ ソースをバインドした後、何らかの理由でツリー ビューが空になります。
誰も私がこれを行う方法を知っていますか?