2014-10-30 97 views
0

我還是ASP.NET和C#的初學者。在我目前的項目中,我必須做一個「簡單搜索」。在主頁上簡單搜索並在不同頁面上顯示結果

我的搜索欄位於母版頁上,我希望搜索結果顯示在Searchside.aspx上。我只想在我的數據庫中搜索slips_navn(tie_name)。

這是我現在有的,我不知道如何從這裏繼續前進。

母版按鈕/文本框

<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 =藍色因爲它應該,但我不知道我應該如何連接到數據庫,通過代碼隱藏和如何?或通過sql-datasource/repeater和如何?。我包括我期望從中搜索的2個數據庫表,我再次想要搜索tie_name(slips_navn)行。我很抱歉,如果即時通訊仍然不清楚,我會嘗試再次更新我的問題,直到希望我能解釋我想要回答:)

+0

那麼問題是什麼?如果您重定向到搜索頁面並將搜索參數作爲查詢字符串傳遞,您可以在搜索頁面上閱讀該參數。 – 2014-10-30 10:07:45

+0

@TimSchmelter你能告訴我該怎麼做嗎?目前,當我按搜索按鈕它重定向到searchside.aspx,因爲我應該,並且還將文本字段輸入添加到查詢字符串「searchside.aspx?SearchText =藍色」等,然後顯示框中我想要的關係到顯示,但沒有數據,所以我的問題是,我如何,我想連接到數據庫從這裏?一個SQL數據源?代碼在後面?如果你能給我一個視覺效果會很棒。 – tekar 2014-10-30 10:13:32

+0

目前尚不清楚你卡在哪裏。如果這個問題只是關於SQL,你應該刪除所有的ASP.NET的東西,因爲它是誤導。如果您不知道如何顯示結果:根據搜索結果使用像Panel這樣的服務器控件(對於div)和一個Label來將它設置爲Text屬性。或者,也許你想列出多個,然後使用'ListBox'或甚至'GridView'。但不要在一個問題中提出多個問題。順便說一句,如果這是一個sql問題,您應該提供有關數據模型的更多信息。 – 2014-10-30 10:17:16

回答

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的數據源,並獲得通過查詢字符串參數querystringfield。

0

首先使用gridview或datalist綁定數據在Searchside.aspx 之後在Searchside.aspx的頁面加載事件中檢查您過去進行篩選的查詢字符串。

如果您在頁面加載中發現查詢字符串,則根據新搜索的數據集綁定該數據列表或grindview。

+0

謝謝,但由於某種原因,我無法在頭腦中看到如何繼續,如果你能告訴我一個很好的例子。 – tekar 2014-10-31 10:21:51

相關問題