我有一个网格视图。如果没有任何数据,如何在页面中看到列标题? 我试试这个:
<Empty Data Template>
no data.
</Empty Data Template>
但这不是我想要的。我想显示网格视图的列,即使其中没有数据。请帮帮我!
答案 0 :(得分:1)
如果您的目标是c#4.0+,则可以使用ShowHeaderWhenEmpty
属性,否则,您需要添加一些自定义代码。
答案 1 :(得分:1)
试试这个
1)将ShowHeaderWhenEmpty="True"
添加到GridView
<asp:GridView ShowHeaderWhenEmpty="true" runat="server" />
2)你的GridView必须绑定到数据源(至少是一个空集合)才能显示空模板
GridView1.DataSource = [Some DataSource Here];
GridView1.DataBind();
答案 2 :(得分:0)
在这里,您将找到所需内容:
http://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
我尝试过它有效!
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
runat="server">
<emptydatarowstyle backcolor="LightBlue"
forecolor="Red"/>
<emptydatatemplate>
<asp:image id="NoDataImage"
imageurl="~/images/Image.jpg"
alternatetext="No Image"
runat="server"/>
No Data Found.
</emptydatatemplate>
</asp:gridview>
答案 3 :(得分:0)
你有2种方法可以做到:
1 - 通过模拟
中的输入字段第一个细胞 第二细胞 第三细胞 2 - 创建空数据集并将其绑定到GirdView。
如果ds.Tables(0).Rows.Count&gt; 0然后 grd_codes.DataSource = ds grd_codes.DataMember = ds.Tables(0).TableName
grd_codes.DataBind()
Else
Try
If ds.Tables(0).Rows.Count = 0 Then
ds.Tables(0).Rows.Add(ds.Tables(0).NewRow())
grd_codes.DataSource = ds
grd_codes.DataBind()
Dim columnCount As Integer = grd_codes.Rows(0).Cells.Count
grd_codes.Rows(0).Cells.Clear()
grd_codes.Rows(0).Cells.Add(New TableCell)
grd_codes.Rows(0).Cells(0).ColumnSpan = columnCount
grd_codes.Rows(0).Cells(0).Text = "No Records Found."
End If
我更喜欢第一种方式,因为绑定空DataSet有一些问题。