如何在asp.net的masterpage中显示搜索框的结果

时间:2017-04-21 10:38:39

标签: c# asp.net search master-pages

我在主页中有一个搜索框,在asp.net项目中,我不知道两件事:

1)如何将结果传输到新页面(因为它在母版页中)

2)如何显示结果?

对于第一个问题,我尝试使用数据表的答案创建一个会话,并在页面加载功能的新页面(构建在主页面上)检查Session!= null但是它不起作用好吧,因为页面加载功能在母版页功能之前。

对于我试过的第二个问题:

users += "<div class='divusers'>";
users += "<h5>" + dt.Rows[0][0].ToString() + "</h5>";
users += "<h5>" + dt.Rows[0][1].ToString() + "</h5>";
users += "</div>";

但是有更好的方法来显示结果吗?

3 个答案:

答案 0 :(得分:1)

您无需传输只需将搜索字符串发送到页面的结果,请尝试此操作 在搜索按钮上单击母版页

protected void SearchButton1_Click(object sender, EventArgs e)
{
  Response.Redirect("~/SearchPage.aspx?searchTerm="+txtSearchter.Text);
}

在结果页面的页面加载

protected void Page_Load(object sender, EventArgs e)
{
  if(!IsPostBack)
   {
     string SearchTerm = Request.QueryString["searchTerm"];
     //Do database search and bind to a gridview
   }
}

答案 1 :(得分:0)

在母版页上,您可以设置一个控件来显示结果。

<div class="divusers">
    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            <h5><%# Eval("columnName") %></h5>
        </ItemTemplate>
    </asp:Repeater>
</div>

然后在使用Mater的页面的aspx上,使用FindControl在主页面上找到控件并将数据绑定到它。

protected void SearchButton1_Click(object sender, EventArgs e)
{
    Repeater rep = this.Master.FindControl("Repeater1") as Repeater;
    rep.DataSource = DataTable;
    rep.DataBind();
}

答案 2 :(得分:0)

最好在Dialog(弹出窗口)中显示结果,而不是将其转移到新页面

<GridView>
<Columns>
    <asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="True" Visible="True" />
//other Boundfields
    <asp:TemplateField HeaderText="Search">
    <ItemTemplate>
       <asp:Button Id="Searchbtn" runat="server" Text="Search" onClick="Searchbtn_Onclick"/>
    </ItemTemplate>
   </asp:TemplateField>
</columns>
</GridView>

背后的代码

protected void Searchbtn_Onclick(object sender, EventArgs e)
{
    //bind the gridview
    ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "MyFun1", "javascript:ShowDialog(" + "'Result " + "');", true);
}

然后在剧本

script type="text/javascript">
    function ShowDialog() {
       $("#dialog").dialog({
            autoOpen: false,
            hide: "puff",
            show: "slide",
            width: "70%",
            modal: true,
            close: function(event, ui) {
                $("#dialog").find("form").remove();
                $("#dialog").dialog('destroy');

            }
        });
        $("#dialog").dialog("open");

    }