在我的应用程序中,我在 ASPX 中定义了一个 XMLDataSource:
<asp:XmlDataSource ID="XmlThickness" runat="server"
DataFile="~/XML/Data/products.xml" EnableCaching="False"
EnableViewState="False"
></asp:XmlDataSource>
该数据源为网格提供数据。
在我的代码中,我将 XPath 设置在特定函数中的特定点,然后在 XMLDataSource 上发出一个新的 DataBound(),从而导致网格更新:
XmlThickness.XPath = "/Item[@label='" + tvwMaterials.SelectedNode.Text + "']/Thickness/Thick";
XmlThickness.DataBind();
所有这些都很有效,但是当我尝试从不同的函数中读取 XPATH 时,我会收到一条错误消息。
XmlNode thick = myDataSource.SelectSingleNode(XmlThickness.XPath.ToString());
调试显示 XPath 表达式实际上是空的。
我试图将 DataSource 的创建移动到代码中,然后才设置网格的 DataSourceID,但这不起作用。
在尝试此操作之前,我在 XMLDataSource 定义中定义了一个默认 XPath,此时,该XMLNode thick
行返回了此默认字符串。
我有点困惑,为什么 XPath 没有保留在 XMLDataSource 中,因为我在前面的函数中明确设置了它。有人可以为我解释一下吗?