首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在单独的页面上显示搜索结果

如何在单独的页面上显示搜索结果
EN

Stack Overflow用户
提问于 2014-05-09 16:44:10
回答 2查看 2.3K关注 0票数 0

在我的search.aspx上,我使用ListView显示搜索结果:

标记:

代码语言:javascript
复制
<asp:TextBox runat="server" ID="txtSearch" placeholder="search" />

<asp:Button runat="server" ID="btnSubmit" Text="Search" OnClick="btnSubmit_Click" />

<asp:ListView ID="ListView1" runat="server">

    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" ImageUrl='<%# String.Format("../Images/books/{0}.jpg", Eval("Id").ToString()) %>' NavigateUrl='<%#  "../books/bookdetails.aspx?BookId=" + Eval("Id").ToString() %>'></asp:HyperLink>

        <asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />
        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Publisher") %>' />
        <asp:Label ID="Label2" runat="server" Text='<%# Eval("Author") %>' /></p>
    </ItemTemplate>

</asp:ListView>

代码背后:

代码语言:javascript
复制
protected void btnSubmit_Click(object sender, EventArgs e)
{
    using (ELibraryEntities entities = new ELibraryEntities())
    {
        var search = from books in entities.Reviews
                    where books.Title.Contains(txtSearch.Text.Trim())
                    select books;
        ListView1.DataSource = search;
        ListView1.DataBind();
    }
}

它运行良好,搜索结果显示在search.aspx页面中。

现在,我希望将搜索文本框<asp:TextBox runat="server" ID="txtSearch" placeholder="search" />移动到MasterPage,因此当用户搜索时,搜索结果将在新的search.aspx页面上打开。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-09 17:02:57

微软有一篇很好的关于MSDN上的在ASP .NET之间传递值的文章,我推荐你阅读。在当前的设置中,您在页面上执行一个操作,然后根据该操作运行代码,从页面上的一个元素检索数据并执行另一个操作。为了拆分搜索框和搜索结果,您需要确保操作在两个页面之间进行沟通,并确保内容(搜索查询)在两个页面之间进行交流。

总之,您可以采取以下几种方法:

  • 使用URL查询字符串参数*这是最常用的搜索!
  • HTTP将数据发布到新页面。
  • 传递参数服务器端(例如。(会话状态)

我建议阅读查询字符串方法。总结如下:

代码语言:javascript
复制
//1) On the source page with the search box, you would redirect the user 
//     to the search results page and append the search query to the URL: 
Response.Redirect("search.aspx?search=" + HttpUtility.UrlEncode(query));

//2) On the search results page, parse the query string values
String searchQuery = Request.QueryString["search"];

//3) Perform your search action in code and display the results.
protected void btnSubmit_Click(object sender, EventArgs e){
    //your search code
    using (ELibraryEntities entities = new ELibraryEntities())
    {
        var search = from books in entities.Reviews
                where books.Title.Contains(searchQuery)
                select books;
        ListView1.DataSource = search;
        ListView1.DataBind();
    }
}

注意Response.RedirectHttpUtility.UrlEncodeRequest.QueryString的用法。

票数 0
EN

Stack Overflow用户

发布于 2014-05-09 16:54:34

使用后重定向-获取:

  1. 帖子:让母版页处理单击事件
  2. 重定向:然后重定向到搜索页面,包括搜索URL中的搜索参数
  3. GET:将搜索页面的btnSubmit_Click中的逻辑移动到其页面加载事件,同时考虑到通过URL传递的搜索词,而不是直接从文本框中发布。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23569917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档