【问题标题】:How to export labels from a gridview dynamically created with javascript?如何从使用 javascript 动态创建的 gridview 中导出标签?
【发布时间】:2020-02-26 01:36:33
【问题描述】:

我在一页上有多个网格视图,有些带有文本框,有些带有标签/文本。标签是使用 javaScript 从其他文本框值计算出来的,并以这种方式放置在 gridview 中。问题是,标签没有导出到 excel。我想知道是不是因为它们是用 javaScript 动态创建的。但是,我也需要这些值来导出。任何帮助表示赞赏!

我在导出点击时再次尝试了数据绑定,但没有成功。

protected void export_Click(object sender, EventArgs e)
    {
        Response.ClearContent();
        Response.AppendHeader("content-disposition", "attachment; filename=AvailableFundsCosts.xls");
        Response.ContentType = "application/excel";

        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);

        gridSFS.RenderControl(htw);
        gridTLS.RenderControl(htw);
        gridPCOTotals.RenderControl(htw);
        gridPTA.RenderControl(htw);
        gridPC.RenderControl(htw);
        gridTL.RenderControl(htw);
        gridFinal.RenderControl(htw);


        Response.Write(sw.ToString());
        Response.End();
    }

以下是 javascript 使用网格将标签值放置在网格视图的另一部分的示例:

function calculateGTASemestersOtherActivity()
        {
            var GTASemestersOtherActivity = parseFloat(document.getElementById("cphMain_gridPTA_iTxtAmount_4").value);
            var GTASemesterStipend = parseFloat(document.getElementById("cphMain_gridTLS_iTxtAmount_5").value);

            if(isNaN(GTASemestersOtherActivity))
            {GTASemestersOtherActivity = 0.00;}
            if(isNaN(GTASemesterStipend))
            {GTASemesterStipend = 0.00;}

            var OtherActivityCost = parseFloat(GTASemestersOtherActivity * GTASemesterStipend);

            var cell = document.getElementById("cphMain_gridPC").rows[8].cells;

            cell[1].innerHTML = OtherActivityCost.toLocaleString('en-US', { style: 'currency', currency: 'USD' });
        }

我需要标签值来导出 excel 以及文本框。

【问题讨论】:

  • 开始使用专门的库来创建 Excel 文件,例如 EPPlusExample herehere。您现在所做的只是创建一个扩展名为 .xls 的 HTML 页面。并且 javascript 数据在后面的代码中不可用,因此您无法导出它。最好把后面代码中的数据也拿到GridView上,然后也可以导出。
  • 原来我在后面的代码中也创建了这些值,我的解决方案是将这些值重新加载到 gridview。

标签: c# asp.net excel gridview


【解决方案1】:

需要在后面的代码中将值重新加载到 GridView 中。 JavaScript 不会将值直接存储到网格中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2019-06-22
    相关资源
    最近更新 更多