在母版页上进行简单搜索,并在不同页面上显示结果

时间:2014-10-30 10:01:45

标签: c# asp.net

我还是ASP.NET和C#的初学者。在我目前的项目中,我必须进行简单的搜索"。

我的搜索栏位于母版页上,我希望搜索结果显示在Searchside.aspx上。我只想在我的数据库中搜索slips_navn(tie_name)。

这就是我现在所拥有的,而且我不知道如何继续前进。

MasterPage按钮/文本框

<asp:TextBox ID="SearchTextBox" runat="server"></asp:TextBox>
<asp:Button ID="ButtonSearch" runat="server" Text="Søg" OnClick="ButtonSearch_Click" />

母版页背后的代码

protected void ButtonSearch_Click(object sender, EventArgs e)
{

    Response.Redirect("~/searchside.aspx?SearchText=" + SearchTextBox.Text);   

}

Searchside.aspx

这就是我想要显示结果的地方。

 <div id="randomslips">
     <b><%#Eval("maerke_navn") %></b>
     <p><%#Eval("slips_navn") %></p>
     <img alt="" src='prod_image2/<%# Eval("billede") %> ' height="100px" width="100px" />
     <b>DKK<%#Eval("slips_pris") %>,-</b>
     <a class="Infoknap" href='EnkeltSlips.aspx?id=<%#Eval("Slips_id") %>'>INFO</a>
 </div>

我的领带表。(单据)

CREATE TABLE [dbo].[slips] (
    [slips_id]    INT             IDENTITY (1, 1) NOT NULL,
    [slips_tekst] NVARCHAR (MAX)  NOT NULL,
    [slips_pris]  DECIMAL (18, 2) NOT NULL,
    [billede]     NVARCHAR (MAX)  NOT NULL,
    [slips_navn]  NVARCHAR (50)   NOT NULL,
    [FK_maerke]    INT             NOT NULL,
    [status]      INT             NOT NULL,
    PRIMARY KEY CLUSTERED ([slips_id] ASC),
    CONSTRAINT [FK_Slips_maerke] FOREIGN KEY ([FK_maerke]) REFERENCES [dbo].[maerke] ([maerke_id]) ON DELETE CASCADE
);

Maerke表(品牌)

( 

CREATE TABLE [dbo].[maerke] (
    [maerke_id]   INT           IDENTITY (1, 1) NOT NULL,
    [maerke_navn] NVARCHAR (50) NOT NULL,
    PRIMARY KEY CLUSTERED ([maerke_id] ASC)
);

所以到目前为止,当我按下母版页上的搜索按钮时,我会被重定向到 searchside.aspx?SearchText = blue ,因为它应该,但我不知道我应该如何连接到数据库,通过代码隐藏和如何?或通过sql-datasource / repeater以及如何?我包括我希望搜索的2个数据库表,我再次想要搜索 tie_name(slips_navn)行。如果我还不清楚,我会道歉,我会再次尝试更新我的问题,直到我能解释我想要回答的问题:)

2 个答案:

答案 0 :(得分:0)

首先使用gridview或datalist绑定Searchside.aspx中的数据 之后在Searchside.aspx的页面加载事件中检查您过去进行搜索的查询字符串。

如果您在页面加载中找到查询字符串,则根据新搜索的数据集绑定该数据列表或grindview。

答案 1 :(得分:0)

哦好好想通了,实际上很容易。我猜我的大脑只是在星期五搞定了。这是我的结果。

我仍然使用

Response.Redirect("~/searchside.aspx?SearchText=" + SearchTextBox.Text);

这是在 searchside.aspx 上。我没有 sarchside.cs

的代码
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource3">
        <ItemTemplate>
       <div id="randomslips">
                <b><%#Eval("maerke_navn") %></b>
             <p><%#Eval("slips_navn") %></p>
             <img alt="" src='prod_image2/<%# Eval("billede") %> ' height="100px" width="100px" />
             <b>DKK<%#Eval("slips_pris") %>,-</b>
             <a class="Infoknap" href='EnkeltSlips.aspx?id=<%#Eval("Slips_id") %>'>INFO</a>

        </ItemTemplate>
            </asp:Repeater>
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>" SelectCommand="SELECT * FROM [slips] INNER JOIN maerke ON slips.FK_mærke = maerke.maerke_id WHERE ([slips_navn] LIKE '%' + @slips_navn + '%')"><SelectParameters>
    <asp:QueryStringParameter QueryStringField="SearchText" Name="slips_navn" Type="String"></asp:QueryStringParameter>
    </SelectParameters>
    </asp:SqlDataSource>

所以你可以看到我只使用了一个转发器和sql-datasource并通过一个querystring参数得到了querystringfield。