asp:Gridview烦恼如何显示网格

时间:2014-03-24 20:42:25

标签: gridview

我为一个相当大的网站布置模板网页,许多网页将使用GridView控件。当然,我会将网格绑定到数据源。但就目前而言,当我布置模板页面时,我只想要显示一个空网格 - 我只需要查看列标题和空行。

可悲的是,除非它实际上绑定到数据源,否则这个控件似乎希望保持完全不可见。再一次,这最终会发生。但是现在,我试图为最终用户批准布置大量页面,我只需要一个小问题。空网格显示在页面应该是的位置。事实上,我们将从中提取数据的数据库正在开发中并且可能会发生变化,因此现在对数据的绑定是恕我直言,浪费时间。我只想模拟一堆页面!

我在搜索此主题时获得的所有StackOverflow命中处理已绑定到数据源的网格 - 在这种情况下对我没有帮助。我尝试过类似下面的事情。我可以尝试使用这种控制吗?

    <asp:GridView ID="grdReportList" runat="server" AllowPaging="True"   
        AllowSorting="True" AutoGenerateColumns="False">  
        <Columns>  
            <asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True"   
                SortExpression="Name" />  
            <asp:BoundField DataField="Description" HeaderText="Description"   
                SortExpression="Description" />  
            <asp:BoundField DataField="Type" HeaderText="Type"   
                SortExpression="Type" />  
            <asp:BoundField DataField="Inactive" HeaderText="Inactive"   
                SortExpression="Inactive" />  
        </Columns>  
    </asp:GridView>  

1 个答案:

答案 0 :(得分:0)

这应该有所帮助:GridView.EmptyDataTemplate

编辑:注意到没有设置这些GridView控件属性

ShowHeader=True (this is default)
ShowFooter=True (set if you want footer)
ShowHeaderWhenEmpty=True  ( Ahaaaaa!)

编辑:未绑定,仅标题Gridview示例:

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" ShowFooter="True" ShowHeaderWhenEmpty="True" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="Header A" HeaderText="Header A" ReadOnly="True" SortExpression="Header A"></asp:BoundField>
        <asp:BoundField DataField="Header B" HeaderText="Header B" ReadOnly="True" SortExpression="Header B" DataFormatString="{0:F2}"></asp:BoundField>
        <asp:BoundField DataField="Header C" HeaderText="Header C" ReadOnly="True" SortExpression="Header C"></asp:BoundField>
        <asp:BoundField DataField="Header D" HeaderText="Header D" ReadOnly="True" SortExpression="Header D" DataFormatString="{0:MM/dd/yyyy}"></asp:BoundField>
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="Select null as [Header A], 1234 as [Header B],'C' as [Header C], cast('1/1/2014' as datetime) as [Header D]" ConnectionString='<%$ ConnectionStrings:CMSConnectionString %>'>
</asp:SqlDataSource>

Gridview需要数据源,即使该数据源指向任何内容也是如此。上面有一个到有效数据库的连接字符串,但它严格地从select语句中提取数据(注意缺少FROM子句),它提供了头文本和一行伪数据。

正如您所看到的,我将返回一些类型的值并在绑定字段控件中进行格式化。但是,请注意,如果刷新网格并启用AutoGenerateColumns,则会丢失所有格式,因为gridview将替换字段。因此,一旦您根据需要填充了标题和数据的网格,在格式化之前在gridview上下文菜单中禁用AutoGenerateColumns 选项。

根据需要修改以填充网格。对所有网格进行清洗,冲洗,重复。

这可能就像App_Data目录中的本地数据源一样容易。这可能是您尝试进行快速原型制作所需要的。