2011-03-08 77 views
0

我有一个Gridview喜欢这幅画。在我最后一栏中,我记下了那一行的记录。 (简单地说,我做了编辑,选择,更新的是GridView的经典特性。)导出错误到Excel的GridView列与文本框

enter image description here

正如你看到的,我的最后一列有TextboxMultiline

这是我的最后一列的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以优秀的代码;

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;

enter image description here

我并不想成为一个TextboxExcel文件。只需要一个正常的单元格,像左栏那样有一个NOT值。

我怎样才能做到这一点?

最佳Regars,

Soner

+0

我编辑我的答案,PLZ检查,让我知道,如果你有任何问题 – 2011-03-09 09:21:59

回答

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

+0

@Muhammed,但我有一个gridview再次获取数据表。你能告诉我一些例子吗?我可以在导出时删除Gridview中的所有文本框吗?它是不可变的吗? – 2011-03-09 06:52:29

+1

需要迭代你的GridView当你要出口。您必须从特定列中移除您的控件并替换这些列中的文本。所以你会得到你所有的东西 – 2011-03-09 07:03:49

+0

@穆罕默德我可以做到这一点与此代码(int i = 0;我 2011-03-09 08:18:29