當GridView的綁定數據源為空時,GridView是不顯示標題列的,用下面的方法可以顯示。
分如下步驟
1、先讓GridView的數據源有數據,也就是在頁面上能夠顯示標題列;
2、打開頁面源文件,並將GridView生成的標題列<tr></td>復制到一個<div></div>中
3、將這個復制到aspx頁面中的指定位置上
4、編寫控制顯示腳本
代碼如下:
<div id="div_gridViewHeader">
<table class="Winstar-table">
<tr><th scope="col">文件名称</th><th scope="col">本库记录</th><th scope="col">接收类型</th><th scope="col">接收时间</th><th scope="col">调入状态</th><th scope='col'>过滤</th><th scope='col'>处理人</th><th scope='col'>操作</th></tr>
</table>
</div>
<asp:GridView ID="gvList" runat="server" AutoGenerateColumns="False" CssClass="Winstar-table" OnRowDataBound="gvList_RowDataBound">
<Columns>
<asp:BoundField DataField="guid" Visible="False" />
<asp:TemplateField HeaderText="文件名称">
<ItemTemplate>
<%# Eval("DOCTITLE") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="本库记录">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("DOCID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="接收类型">
<ItemTemplate>
<%# Eval("MODIFYSTATE")%></ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="MODIFYDATE" HeaderText="接收时间" DataFormatString="{0:yyyy-MM-dd}" />
<asp:TemplateField HeaderText="调入状态">
<ItemTemplate>
<%# Eval("INPUTSTATE")></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="过滤">
<ItemTemplate>
<%# Eval("HIDESTATE")%></ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="DEALUSERNAME" HeaderText="处理人" />
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="lbtnImport" runat="server">调入</asp:LinkButton>
<asp:LinkButton ID="lbtnDelete" runat="server">删除</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script type="text/javascript">
var grid = document.getElementById('<%=gvList.ClientID %>');
if(grid&&grid.getElementsByTagName('td')!=null&&grid.getElementsByTagName('td').length>0)
{
document.getElementById('div_gridViewHeader').style.display='none';
}
</script>