0

谁能给我一些关于如何使用代码(C#)在文本框中显示 XPath 查询结果的指示?应用 XPath 查询后,我的数据源似乎(重新)正确绑定,但我找不到如何获取结果数据。

任何帮助将不胜感激。

4

3 回答 3

1

XMLDataSource 旨在与数据绑定控件一起使用。ASP.NET 的 TextBox 不是数据绑定控件。所以要完成你想要的,你要么必须找到一个带有数据绑定的文本框控件,要么以其他方式显示结果。

例如,您可以使用Repeater 控件并为其创建自己的呈现模板。

<asp:Repeater id="Repeater1" runat="server" datasource="XMLds">
  <ItemTemplate>
    <input type="text" value="<%# XPath("<path to display field>")%>" />
  </ItemTemplate>
</asp:Repeater>
于 2008-09-09T12:09:10.593 回答
0

如果能够给你一个体面的答案,更多的信息会很好。您是否有任何可以在此处发布的现有代码片段?

一般的想法是使用 XmlDataSource.XPath 属性作为 XmlDataSource.Data 属性的过滤器。您是否尝试在文本框中显示 Data 道具的内容?

于 2008-09-09T09:52:53.057 回答
0

根据 DropDownList 中的选择,当 SelectedIndexChanged 事件触发时,XMLDataSource 对象的 XPath 会更新:

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    XMLds.XPath = "/controls/control[@id='AuthorityType']/item[@text='" + ddl.SelectedValue + "']/linkedValue";
    XMLds.DataBind();
}

XPath 字符串很好,我可以输出并测试它是否正常工作并解析到正确的节点。我遇到的问题是获取应该存储在 XmlDataSource 中的数据;具体来说,获取数据并将其输出到 TextBox 中。我希望能够将其作为上述功能的一部分,即

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    XMLds.XPath = "/controls/control[@id='AuthorityType']/item[@text='" + ddl.SelectedValue + "']/linkedValue";
    XMLds.DataBind();
    myTextBox.Text = <FieldFromXMLDataSource>;
}

感谢您的时间。

于 2008-09-09T10:12:49.030 回答