在TextBox中显示来自XMLDataSource的数据

时间:2020-03-05 18:49:54  来源:igfitidea点击:

谁能给我一些关于如何使用代码(C#)在文本框中显示XPath查询结果的指针?一旦应用了XPath查询,我的数据查询似乎就可以正确地(重新)绑定,但是我找不到如何获取结果数据的方法。
任何帮助将不胜感激。

解决方案

回答

能够为我们提供一个体面的答案的一些更多信息将是很好的。我们是否可以在此处发布任何现有的代码段?

通常的想法是使用XmlDataSource.XPath属性作为XmlDataSource.Data属性的筛选器。我们是否尝试过在文本框中显示Data属性的内容?

回答

基于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>;
}

感谢时间。

回答

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>