Gridview控件隐藏列,在excel中导出时只显示表头,没内容

hedy_lu 2011-05-27 01:55:07
下面贴源码:
GridView1.AllowPaging = false;
GridView1.AllowSorting = false;
// GridView1.BottomPagerRow.Visible = false;
this.GridView1.Columns[11].Visible = true;

this.GridView1.Columns[12].Visible = true;
this.GridView1.Columns[13].Visible = true;
this.GridView1.Columns[14].Visible = true;
this.GridView1.Columns[15].Visible = true;
//this.GridView1.Columns[16].Visible = true;

System.Web.HttpContext HC = System.Web.HttpContext.Current;
HC.Response.Clear();
HC.Response.Charset = "GB2312";
HC.Response.Buffer = true;

Columns[11] 在页面上是隐藏的,但是在导出代码中设置的是显示,为什么只显示表头,不显示内容呢?
...全文
293 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ying25135 2011-12-18
  • 打赏
  • 举报
回复
楼主,你这个问题怎么解决的?我也碰到了同样的问题,请教下。
fa159004287 2011-06-07
  • 打赏
  • 举报
回复
先绑定数据,在隐藏你要隐藏的列!
子夜__ 2011-05-30
  • 打赏
  • 举报
回复
/// 将Web控件导出
/// </summary>
/// <param name="source">控件实例</param>
/// <param name="type">类型:Excel或Word</param>
public void ExpertControl(System.Web.UI.Control source, DocumentType type)
{
//设置Http的头信息,编码格式
if (type == DocumentType.Excel)
{
//Excel
Response.AppendHeader("Content-Disposition","attachment;filename=result.xls");
Response.ContentType = "application/ms-excel";
}
else if (type == DocumentType.Word)
{
//Word
Response.AppendHeader("Content-Disposition","attachment;filename=result.doc");
Response.ContentType = "application/ms-word";
}
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;

//关闭控件的视图状态
source.Page.EnableViewState =false;

//初始化HtmlWriter
System.IO.StringWriter writer = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);
source.RenderControl(htmlWriter);

//输出
Response.Write(writer.ToString());
Response.End();
}

//文档类型
public enum DocumentType
{
Word,
Excel
}
至尊贱客 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ly_lsz 的回复:]
可能是你在绑定数据之前就给这个列隐藏了,所以这个列没有值:


C# code
this.GridView1.Columns[11].Visible = false;
GridView1.DataSource = dt;
GridView1.DataBind();

你需要先将该列显示出来再绑定,然后再隐藏该列

C# code
this.GridView1.Columns[……
[/Quote]

++
ly_lsz 2011-05-27
  • 打赏
  • 举报
回复
可能是你在绑定数据之前就给这个列隐藏了,所以这个列没有值:

this.GridView1.Columns[11].Visible = false;
GridView1.DataSource = dt;
GridView1.DataBind();

你需要先将该列显示出来再绑定,然后再隐藏该列
this.GridView1.Columns[11].Visible = true;
GridView1.DataSource = dt;
GridView1.DataBind();
this.GridView1.Columns[11].Visible = false;

这样这个列就有值了。

hedy_lu 2011-05-27
  • 打赏
  • 举报
回复
我那Gridview 是绑定到数据库的临时表上的,所以就不知道怎么会出现这个问题,若是绑定直接数据源就没问题,不知道是什么情况




[Quote=引用 2 楼 ivenlove 的回复:]

不可能吧!!! 确定那列有内容?我也是一样的写法,完全没问题。
[/Quote]
ivenlove 2011-05-27
  • 打赏
  • 举报
回复
不可能吧!!! 确定那列有内容?我也是一样的写法,完全没问题。
hedy_lu 2011-05-27
  • 打赏
  • 举报
回复
怎么没人呢?
1、鼠标经过行改变行的样式 CssClassMouseOver - 鼠标经过行行的样式的CSS类名 2、给字段标题加上排序状态 设置其SortTip下的4个属性即可 SortAscImage - 升序提示图片 SortAscText - 升序提示文本 SortDescImage - 降序提示图片 SortDescText - 降序提示文本 3、单击命令按钮弹出确认框 设置其ConfirmButtons属性 CommandName - 命令按钮的CommandName属性 ConfirmMessage - 弹出的确认框所显示的文字 4、每行复选框的全选与取消全选 在模板的头模板处添加一个复选框,在模板的项模板处添加一个复选框,然后设置控件的CheckboxAlls属性 CheckboxAllID - 模板全选复选框ID CheckboxItemID - 模板项复选框ID 5、固定表头、指定行或指定 设置其FixRowCol下的6个属性 IsFixHeader - 固定表头否? IsFixPager - 固定分页行否? FixRowIndices - 需要固定的行的索引(用逗号“,”分隔) FixColumnIndices - 需要固定的的索引(用逗号“,”分隔) TableWidth - 表格的宽度 TableHeight - 表格的高度 EnableScrollState - 是否保持滚动条的状态 6、数据行响应鼠标的单击和双击事件 RowClickButtonID - 行单击事件所对应的按钮的ID RowDoubleClickButtonID - 行双击事件所对应的按钮的ID 7、改变通过CheckBox选的行的样式 CheckBoxID - 模板的项复选框的ID CssClassRowSelected - 选行的样式的CSS类名 8、导出ExcelGridView内加一个按钮 CommandName属性设置为“ExportToExcel” CommandArgument属性的值用“;”做分隔符分为两部分,左边的部分为导出Excel的文件名称,右边的部分为需要隐藏的索引(索引用“,”分开) 9、给数据行增加右键菜单 ItemType - 右键菜单的项的类别(Link,Command,Custom,Separator) Icon - 文字左边的图标的链接 Text - 菜单的文字 CommandButtonId - 所调用的命令按钮的ID NavigateUrl - 链接的url Target - 链接的target(Blank,Self,Top) Key - 自定义属性key Value - 自定义属性value 10、扩展分页功能 设置PagingStyle属性为Default
一、表头表尾 1、自定义多行表头合并,行合并 2、删除表身指定、行 3、固定表头,向下拉动滚动条表头固定不动 4、表脚行统计,总计、平均值 二、导入导出 1、导出Excel,Word 2、导入Excel 三、多层嵌套 1、在父GridView的编辑模板嵌套一个子GridView 2、三层GridView嵌套 四、分页排序 1、分页 2、排序,点击升序、降序排序 五、结合控件 1、CheckBox控件,多选、全选 2、DropDownList控件 3、隐藏控件,当选择处理状态选备注隐藏textbox显示 4、radio控件,选获取GridView表主键 5、GridViewDropDownList绑定数据,直接绑定显示,无需点击编辑按纽。 6、JavaScript操作checbox实现全选,多选 六、设置属性 1、JavaScript设置GridView行的背景颜色,单偶行的背景颜色,鼠标停留行背景,鼠标选的行背景 2、GridView的JavaScript的行单击,双击、删除提示框、快捷键事件 3、GridView设置属性,单元格文本颜色,单元格背景颜色,表增加空行 七、无代码 GridView排序、发送邮件、点击行查看详情,内容过长截取 八、选增删改 1、GridView自带的选、编辑、删除,即CommandField 2、GridView添加记录,在GridView表脚添加控件,用添加记录 3、更新所有记录,GridView直接绑定控件,然后更新 九、主键索引 根据主键多条记录删除,单条记录删除。

62,068

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧