将值从一个类传递到另一个类的方法
本文关键字:另一个 方法 一个 | 更新日期: 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
就我个人而言,我真的很喜欢这个功能,因为你们可以将页面称为对象,并公开控件的广告属性!