我正在设置一个简单的页面,它只显示XML文件的内容,并允许用户按关键字过滤。
我是一个严肃的.NET新手,但我已经设置了一个XmlDataSource:
<asp:XmlDataSource ID="RSSFeedDataSource" runat="server" DataFile="test.xml"
XPath="/rss/channel/item[contains(title,"theKeyword")]"></asp:XmlDataSource>
所以我想允许用户输入关键字并根据它更改数据源。
我想我会使用文本输入中的关键字进行回发,抓取该关键字并以某种方式插入XPath表达式...
我现在只是为了简单,但这是最简单的方法吗?
答案 0 :(得分:0)
您可以在页面内部执行此操作,如下所示:
<asp:XmlDataSource ID="RSSFeedDataSource" runat="server"
DataFile="test.xml"
XPath="/rss/channel/item[contains(title,"<%=Request.QueryString["filter"] %>")]"></asp:XmlDataSource>
如果这不起作用,为什么不使用查询字符串或发布值在代码隐藏中设置XPath属性?
答案 1 :(得分:0)
通过后面的代码和按钮回发来获取它的方法
ASP页面:
<asp:TextBox id="txtKeyword" runat="server" />
<asp:Button id="btnKeyword" OnClick="btnKeyword_Click" runat="server" />
代码背后:
public void btnKeyword_Click(Object sender, EventArgs e)
{
// Assuming C#
// Retrieve the keyword from the text box
string keyword = txtKeyword.Text
// Next step would be to modify the XPath of your XmlDataSource
RSSFeedDataSource.XPath = "/rss/channel/item[contains(title," + keyword + ")]"
}
答案 2 :(得分:0)
在回发上,你应该能够做到
RSSFeedDataSource.XPath = "/rss/channel/item[contains(title,'" + txtKeyword.Text + "')]";
假设关键字来自id为txtKeyword的服务器控件