如何使用asp.net上的会话在按钮单击时在gridview中将数据从一个页面显示到另一个页面

时间:2017-11-03 22:01:23

标签: c# asp.net gridview master-pages buttonclick

提前完成。 我在将数据从主页的gridview传输到另一个搜索reasult页面时遇到了问题。页面只显示空白。没有数据显示。 我正在使用母版页。 我试图从文本框中获取数据,以便从文本框中获取源和目标等搜索结果。

参考以下代码:home.aspx.cs

protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=IT_APPS_SUPP;Initial Catalog=dotnet;Integrated Security=True; MultipleActiveResultSets=true");
        con.Open();
        string str1 = "Select * from busbooking where zone='" + txtSourceBus.Text + "' " + "and destination='" + txtDestBus.Text + "'";
        SqlCommand cmd1 = new SqlCommand(str1, con);
        cmd1.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter(str1, con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
        Label1.Text = "";          
        SqlDataReader dr = cmd1.ExecuteReader();
        if (dr.HasRows)
        {
            dr.Read();

            GridView1.Visible = true;
            dr.Close();
        }
        else
        {
            GridView1.Visible = true;
            Label1.Text = "Data not  found";
        }

        DataTable dt = GridView1.DataSource as DataTable;//set the datasource
        Session["GridData"] = dt;
        Response.Redirect("~/BusSearch.aspx",true);
    }

=============================================== ==========

bussearch.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["GridData"] != null)
            {
                DataTable dt = (DataTable)Session["GridData"];
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
        }
    }

=============================================== =================== 任何人都可以帮忙。我的第二页只显示空白。

2 个答案:

答案 0 :(得分:0)

尝试传递DataSet而不是像此一样的DataTable

Session["GridData"] = ds.Tables[0];

所有其他代码都可以保持不变。

答案 1 :(得分:0)

你好,你可以这样使用 在bussearch.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["GridData"] != null)
            {
                DataTable dt = new DataTable();
                dt = Session["GridData"] as DataTable;
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }
        }
    }