【问题标题】:gridview row count returns 0gridview 行数返回 0
【发布时间】:2017-11-17 17:43:18
【问题描述】:

我有一个带有 C# 代码的 aspx 页面。

在此页面中,有 3 个网格视图和一个按钮 - 导出到 excel。

点击按钮后,3个gridviews的内容将被导出到3个excel表中。

gridviews的数据绑定在类文件中完成,gridview被返回。

string sql1="something1";
classFile.gvBind(gv1,sql1);

string sql2="something2";
classFile.gvBind(gv2,sql2);

string sql3="something3";
classFile.gvBind(gv3,sql3);

而且效果很好。现在单击按钮,我正在遍历网格视图的列和行并导出它们。但是所有网格视图的行数总是显示为零。但是,列标题可以正常工作。

这是点击按钮的代码:

XLWorkbook wb = new XLWorkbook();
GridView[] gvExcel = new GridView[] { gv1, gv2, gv3};
string[] name = new string[] { "sheetName1", "sheetName2", "sheetName3"};
        for (int i = 0; i < gvExcel.Length; i++)
        {
            if (gvExcel[i].Visible)
            {
                gvExcel[i].AllowPaging = false;
                gvExcel[i].DataBind();
                DataTable dt = new DataTable(name[i].ToString());
                for (int z = 0; z < gvExcel[i].Columns.Count; z++)
                {
                    dt.Columns.Add(gvExcel[i].Columns[z].HeaderText);
                }


                int x = gvExcel[i].Rows.Count;
                foreach (GridViewRow row in gvExcel[i].Rows)
                {
                    dt.Rows.Add();
                    for (int c = 0; c < gvRow.Cells.Count; c++)
                    {
                        dt.Rows[dt.Rows.Count - 1][c] = gvRow.Cells[c].Text;
                    }
                }

                wb.Worksheets.Add(dt);
                gvExcel[i].AllowPaging = true;
            }

int x 始终为 =0。我在哪里做错了?有什么帮助吗? 谢谢。!!

【问题讨论】:

  • 您可以在绑定到网格之前直接将源添加到 Datatable 并将您的网格视图数据源转换为 Datatable 并使用它而不是复杂化。

标签: c# gridview


【解决方案1】:

永远不会输入您的 foreach 循环体,因为 gvExcel[i].Rows 是一个空列表

所以该行永远不会添加

【讨论】:

  • 是的,当然。但为什么?网格视图有行,它们在执行查询时显示。
【解决方案2】:

好的,我发现了问题。我注释掉了这一行

gvExcel[i].DataBind();

现在行数即将到来。 我猜由于数据集和数据绑定不是在此页面中执行,而是从不同的 .cs 文件执行,所以当我再次将数据绑定到 gridview 时,其基本上为空的数据集得到绑定,rowcnt 也是=0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多