2012-02-15 222 views
0

我正在創建一個網站。主頁有一個文本框和下拉框,用戶在其中輸入要搜索的電影名稱和語言。當用戶點擊搜索按鈕時,顯示搜索結果頁面,搜索結果應顯示在數據網格中。我創建了會話變量來傳遞要在其他頁面中使用的文本框和數據網格的文本。從數據庫中獲取數據的代碼是在一個類中,我如何將從數據庫接收到的值傳遞給另一個頁面的方法?這是我寫的代碼,它沒有給出任何錯誤,但數據網格沒有得到結果填充我做錯了什麼?將一個類的值傳遞給另一個類的方法

//Code for search button in home page 
protected void Btnsearch_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("SearchResults.aspx"); 
     Session["moviename"] = TextBox3.Text; 
     Session["language"] = DropDownList1.Text; 
    } 

//Code to fetch data from database 
public class movie 
    { 
    public SqlDataAdapter searchmovie(object moviename, object language) 
    { 
     connection.con.Open(); 
       SqlDataAdapter adapter1 = new SqlDataAdapter("select 
           select movieName,language,director,price from movie  
             where moviename = '" + moviename + "' and 
             language = '" + language + "'", 
       return adapter1; 

} 
    } 

    //Code in search page to fill data grid with search results 
     public partial class SearchResults : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     movie m = new movie(); 
     SqlDataAdapter movieDetails = m.searchmovie(Session["moviename"], 
            Session["language"]); 
     DataSet data = new DataSet(); 
     movieDetails.Fill(data, "movieD"); 
     GridView1.DataSource = data.Tables["movieD"]; 
     GridView1.DataBind(); 
    } 
} 
+1

傳遞短字符串時,使用QueryStrings而不是Session會好得多。如果您使用會話,您需要擔心之前調用的值仍然存在,那麼只要您呈現搜索頁面,就會使用不需要的數據堵塞會話(除非您刪除它們,這是更多的時間/精力),您需要擔心在應用程序的不同位置使用相同的會話變量(您可能會或可能不打算重新使用相同的對象)。作爲一般規則,除非你別無選擇,否則應始終避免使用會話。在這裏你有一個選擇。 – Servy 2012-02-15 16:50:12

回答

2

重定向,這樣之前設置會話變量:

protected void Btnsearch_Click(object sender, EventArgs e) 
{ 
    Session["moviename"] = TextBox3.Text; 
    Session["language"] = DropDownList1.Text; 
    Response.Redirect("SearchResults.aspx");   
} 
+0

現在好了,它工作正常 – 2012-02-15 16:20:47

2

我想建議,以避免會話數據存儲。

ASP.NET有一個很好的功能稱爲交叉發佈:它使你能夠實現從一個頁面到另一個頁面的所有頁面控制和狀態。

http://msdn.microsoft.com/en-us/library/ms178139.aspx

就個人而言,我真的很喜歡的功能,因爲你可以參考頁面作爲對象,具有控制曝光的廣告屬性!