【问题标题】:Export Error to Excel Gridview Column with Textbox使用文本框将错误导出到 Excel Gridview 列
【发布时间】:2011-03-08 09:09:56
【问题描述】:

我有一个Gridview 喜欢这张照片。很容易在我的最后一列中,我为该行保留了一个注释。 (简单地说,我让它编辑、选择、更新那个 gridview 经典属性。)

如你所见,我的最后一个专栏有一个Textbox (Multiline)

这是我最后一列gridview的代码;

<EditItemTemplate>
            <asp:TextBox ID="txtTNOT" runat="server" Height="35" TextMode="MultiLine" DataSourceID="SqlDataSource8"></asp:TextBox>
            <asp:SqlDataSource ID="SqlDataSource8" runat="server" 
              ConnectionString="<%$ ConnectionStrings:SqlServerCstr %>" 
              SelectCommand="SELECT [T_NOT] FROM [TAKIP] WHERE T_HESAP_NO = @T_HESAP_NO ">
                <SelectParameters>
                  <asp:Parameter Name="T_HESAP_NO" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
            </EditItemTemplate>

然后我将这个Gridview 导出到Excel 中使用这个代码;

protected void LinkButton1_Click(object sender, EventArgs e)
  {
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=TahTakip.xls");
    Response.Charset = "";


    Response.ContentType = "application/vnd.xls";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
    GridView1.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();
  }

自此步骤以来没有问题。问题是当我打开这个 excel 文件时,NOT 列与其他列不同。它有一个像这张图片的Textbox

我不想在我的Excel 文件中成为Textbox。只需要一个普通的单元格,其值与左列类似。

我该怎么做?

最好的问候,

声纳

【问题讨论】:

  • 我已经编辑了我的答案,请检查一下,如果您有任何问题,请告诉我

标签: c# .net asp.net excel gridview


【解决方案1】:

您需要导出数据表而不是您的 GridView,因为您在 gridview 中有无法导出到 excel 的控件

编辑:你可以这样做..

protected void btnExportExl_Click(object sender, EventArgs e)
{
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    string attachment = "attachment; filename=BusinessUnit.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);

    GridView grd = new GridView();
    grd.DataSource = datatable.DefaultView; // you get the datatable from DB that will not have controls!!!
    grd.DataBind();

    grd.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.Flush();
    Response.End();
}

请注意,在实际的网格中,我有一些图像按钮,当我导出时,我会再次从 DB 中获取数据表

【讨论】:

  • @Muhammed 但我有一个网格视图。你能告诉我一些例子吗?导出时可以删除 Gridview 中的所有文本框吗?不可能吗?
  • 您需要在导出时迭代您的gridview。您必须从特定列中删除控件并替换这些列中的文本。所以你会得到你所有的东西
  • @Muhammed 我可以用这个代码来做到这一点吗 (int i = 0; i
  • 我正在寻找一些相关的例子,但还找不到。但应该是这样的。
  • @Muhamemed 我用你的代码写了这段代码,比如i1103.hizliresim.com/2011/3/9/4380.jpg,但仍然不起作用。我删除了数据绑定,因为 gridview 已经有一个数据源。 (SqlDataSource)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
相关资源
最近更新 更多