将值从一个类传递到另一个类的方法

本文关键字:另一个 方法 一个 | 更新日期: 2023-09-27 18:24:55

我正在创建一个网站。主页有一个文本框和下拉框,用户可以在其中输入要搜索的电影名称和语言。当用户单击"搜索"按钮时,将显示搜索结果页面,搜索结果应显示在数据网格中。我创建了会话变量来传递文本框的文本和数据网格,以便在其他页面中使用。从数据库中获取数据的代码在一个类中。如何将从数据库接收的值传递给另一个页面的方法?这是我写的代码,它没有给出任何错误,但数据网格中没有填充结果。我做错了什么?

 //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();
    }
}

将值从一个类传递到另一个类的方法

在重定向之前设置会话变量,如下所示:

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

我建议避免将Session作为数据存储。

ASP.NET有一个很好的功能,叫做交叉发布:它使您能够将所有的页面控制和状态从一个页面转移到另一个页面。

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

就我个人而言,我真的很喜欢这个功能,因为你们可以将页面称为对象,并公开控件的广告属性!