2016-11-27 53 views
0

我有两页。在第一个我有两个下拉列表和按钮这样的:在asp.net中的代码中,从另一个页面返回值的最佳方式是什么?

enter image description here

代码这个按钮是:

protected void btnIzabraniProizvodi_Click(object sender, EventArgs e) 
{ 
    Session["Id_Dobavljaca"] = ddlDobavljaci.SelectedValue; 
    Session["Id_Kategorija"] = ddlKategorija.SelectedValue; 
    Response.Redirect("IzabraniProizvodi.aspx"); 
} 

当我点击这个按钮打开页面secont。 enter image description here

这两个会话是SQL查询的输入参数。这里是第二页上的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string idDobavljaca = Session["Id_Dobavljaca"].ToString(); 
    string idKategorija = Session["Id_Kategorija"].ToString(); 
    string konekcioniString = ConfigurationManager.ConnectionStrings["moja_konekcija"].ConnectionString; 
     using (SqlConnection sqlKonekcija = new SqlConnection(konekcioniString)) 
     { 
      SqlDataAdapter sqlDA = new SqlDataAdapter("spVratiIzabraneProizvode", sqlKonekcija); 
      sqlDA.SelectCommand.Parameters.AddWithValue("@Id_dobavljaca", idDobavljaca); 
      sqlDA.SelectCommand.Parameters.AddWithValue("@Id_kategorija", idKategorija); 
      sqlDA.SelectCommand.CommandType = CommandType.StoredProcedure; 

      DataSet ds = new DataSet(); 
      sqlDA.Fill(ds); 

      ds.Tables[0].TableName = "IzabraniProizvodi"; 
      gridView.DataSource = ds.Tables["IzabraniProizvodi"]; 
      gridView.DataBind(); 
     } 
    } 

我的问题是,当该数据集为空,我怎么能得到按钮下方的第一页上的一些信息:“这个数值没有信息,用不同的重试值“?任何想法?

+1

为什么不在第一页运行sql查询并将结果放入数据表中if dt.Rows.Count == 0 display message else将dt放在Session中并重定向到新页面 –

+0

这是选项之一可以尝试,我只是想知道是否有另一种方式可能... – Nemanja

回答

1

没有办法正常做到这一点,你有两个不好的方面:

  1. 您可以使用子和父页。第二页将是第一页的孩子,数据将通过javascript从孩子发送给父母。但问题是,出于安全原因,这不适用于Chrome。
  2. 第二种方法是在第一页由ajax方法在时间段内自动检查。

    的setInterval(函数(){AJAX-CHECK},5000)

如果你想那些senarios我会更多的解释中的每一个。

+0

最好的办法是,我不会复杂到很多。:)我会检查第一页上的所有内容,转到SQL基地,如果dataSet不是空的,我会通过会话将它发送到第二页。 Tnx给你们俩; ;-) – Nemanja

+0

当然这是最好的方法。 –

相关问题