我还是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)行。如果我还不清楚,我会道歉,我会再次尝试更新我的问题,直到我能解释我想要回答的问题:)
答案 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。