我有一个在 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 上选中
当我尝试将根节点设置为选中时出现此错误:
指数超出范围。必须是非负数且小于集合的大小。参数名称:索引
由于某种原因,我绑定数据源后树视图为空。
有谁知道我该怎么做?