【问题标题】:Databind a gridview on another page数据绑定另一个页面上的gridview
【发布时间】:2013-08-02 07:07:28
【问题描述】:

我在 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 中调用网格视图

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    我不确定这对你有没有帮助

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

    但另一种方式可能是您的想法,只需确保为 webform1 回发,例如重定向到 webform1 和表单加载

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

    【讨论】:

    • 谢谢,但 FindControl 似乎不起作用,因为它返回 null。弹出窗口或网格视图不可能吗?我以前从未使用过它,所以我对它没有任何概念。无论如何,谢谢!
    • 是的。与您相同,但返回此错误:对象引用未设置为对象的实例。
    • 你用过吗,this.Page.PreviousPage.Findcontrol or PreviousPage.FindControl
    • 我都试过了,但还是一样。顺便说一句,我的问题通过使用弹出控件而不是 javascript 弹出来解决。非常感谢您的宝贵时间。
    【解决方案2】:

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

    上的 Grid 中绑定该数据

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

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

    会话["ExcelData"]=dtExceldata;

    1. 关闭弹窗并调用GridBind方法。

    更新:

    就是这样。 希望对你有帮助

    【讨论】:

    • 谢谢。但主要问题在于第 5 步。我应该如何或何时调用 GridBind 方法,因为它应该位于 webform1? webform1 不应该知道弹出窗口何时关闭。另一方面,我不能在 webform2 中调用 GridBind,因为 gridView1 属于 webform1。那是我的问题。您的解决方案的更多细节?提前致谢!
    【解决方案3】:

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

    【讨论】:

    • 但是从 excel 加载数据后弹出窗口将关闭,屏幕显示仅显示 webform1.aspx,新数据显示在网格视图上。还是我误解了你的建议?无论如何,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多