一个较优雅的GridView隐藏列解决方法

现在有一个这样的GridView,先看代码:

<asp:GridView ID="gv_Wait" runat="server" AutoGenerateColumns="False"  Width="100%" BorderWidth="0px" CellPadding="0" CellSpacing="0" >
    <Columns>
        <asp:BoundField DataField="TaskID" HeaderText="
项目名称" />                        
        <asp:BoundField DataField="PROCESSNAME" HeaderText="
流程名称" />
        <asp:BoundField DataField="INCIDENT" HeaderText="
实例编号" />
        <asp:BoundField DataField="STEPNAME" HeaderText="步骤" />
        <asp:BoundField DataField="OWNER" HeaderText="
当前处理人" />
        <asp:BoundField DataField="STARTTIME" HeaderText="
开始时间" />
    </Columns>
</
asp:GridView>

我想在显示的时候,隐藏实例编号这个字段,但是在RowDataBound的事件中,用到该字段,那怎么办呢?
基本思想仍然是用css使得单元格不可见,而不妨碍它的数据绑定,但我的方法却不需要在cs文件中多加一行代码,其思路如下:
(1)设置一个css类:
 .hidden { display:none;}
(2)随后在GridView的列编辑对话框中,对需要进行隐藏的列进行设置,分别设置FootStyle,HeaderStyle,ItemStyle的CssClass属性为“hidden”
Ok,这样我们就实现了隐藏列的目的,同时又能保证对其进行数据绑定。

修改后的代码是:

<asp:BoundField DataField="INCIDENT" HeaderText="实例编号">
    <HeaderStyle CssClass="hidden" />
    <ItemStyle  CssClass="hidden" />
    <FooterStyle CssClass="hidden" />
</
asp:BoundField>

posted @ 2008-12-17 16:16  天秤水  阅读(6477)  评论(4编辑  收藏  举报