在另一页上数据绑定网格视图

时间:2013-08-02 07:07:29

标签: c# asp.net gridview

我在webform1.aspx上有一个网格视图(gridView1),其中有一个可以触发弹出窗口的按钮。弹出窗口链接到webform2.aspx,允许用户导入excel文件以获取数据。预计数据将显示在webform1.aspx的网格视图中。但是,如果加载excel文件,我怎样才能对gridView1进行数据绑定?

我有一些想法,不确定逻辑是否正确。

WebForm1.aspx.cs中

//tempDT is a DataTable type to store the data of the grid    
Session["data"] = tempDT;
/*Open a popup with webform2.aspx*/

webform2.aspx.cs

//Get data from original data table and add new data get from excel
DataTable tempDT = (DataTable)Session["data"];
/* Add new data from excel to tempDT here */
Session["data"] = tempDT;

但是之后我对Databind网格视图没有任何想法,因为我无法在webform2.aspx中调用网格视图

3 个答案:

答案 0 :(得分:2)

我不确定这会帮助你不是

   GridView grv = ((GridView)this.Page.PreviousPage.FindControl("gridview1"));

但另一种方式是你的想法,只要确保为webform1做回发,比如重定向到webform1和表单加载

您可以检查会话是否为空,然后与会话数据绑定

答案 1 :(得分:1)

你想要做的是:
1.当你点击按钮时,它会弹出一个窗口(你说的是webform 2)
2.现在用户从Excel文件加载数据 3.您希望在 web form1

中将该数据绑定到Grid中

好的,现在创建如下所述的过程:

  1. 获取一个会话变量,检查它是否为null webform1 上的数据,如下所示:
  2. if (Session["ExcelData"]!=null)
    {
       //Code here of binding the grid
       DataTable dt= (DataTable)Session["ExcelData"];
       GridView1.DataSource= dt;
       GridView1.DataBind();
    }
    
    1. 现在转到第二个webform的按钮,点击你要从excel加载数据。
    2. 创建一个dataTable并使用excel中的数据(从excel加载的数据)填充它
    3. 并将该数据表存储在Session中,如下所示:
    4.   

      会话[ “ExcelData”] = dtExceldata;

      1. 关闭弹出窗口并调用 GridBind 方法。
      2. <强>更新:

        这就是全部。 希望这会对你有所帮助

答案 2 :(得分:0)

您必须在'ebform2.aspx中添加一个网格视图并将其放在面板控件中,以帮助您隐藏网格视图。在导入按钮中,使面板可见,以便具有新值的网格视图将出现在同一页面上。