在TextBox中显示XMLDataSource的数据

时间:2008-09-09 09:02:17

标签: c# xmldatasource

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

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

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

例如,您可以使用Repeater control并为其创建自己的渲染模板。

<asp:Repeater id="Repeater1" runat="server" datasource="XMLds">
  <ItemTemplate>
    <input type="text" value="<%# XPath("<path to display field>")%>" />
  </ItemTemplate>
</asp:Repeater>

答案 1 :(得分:0)

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

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

答案 2 :(得分: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>;
}

感谢您的时间。