我有一个网格如下
<asp:GridView ID="gvFgOrder" runat="server" AutoGenerateColumns="false">
<EmptyDataTemplate>
<thead>
<tr>
<th>Order ID</th>
<th>Total Price</th>
</tr>
<tr>
<td colspan="2" style="text-align: center">No records found</td>
</tr>
</thead>
</EmptyDataTemplate>
<Columns>
<asp:BoundField HeaderText="Order ID" DataField="OrderID" />
<asp:BoundField HeaderText="Total Price" DataField="TotalPrice" />
</Columns>
</asp:GridView>
当数据源不为空时,数据按预期在<table><tbody>
中播种
每当数据源为null时,都会呈现空模板。但问题是在<tbody>
标记中添加了一个空行
<table>
<thead>
<tr>
<td>Order ID</td>
<td>Total Price</td>
</tr>
<tr>
<td colspan="2">No records found</td>
</tr>
</thead>
<tbody>
<tr><td></td><tr>
</tbody>
</table>
如何从tbody中消除此表行。我已将点击监听器附加到<tbody>
<tr>
因此,javascript中需要不必要的护理。
我怎样才能解决这个问题?
这是使用<EmptyDataTemplate>
的正确方法吗?
我的目标是在数据源为空时显示如下
答案 0 :(得分:1)
我建议你在emptydatatemplate中使用div而不是thead和tr标签。
答案 1 :(得分:0)
这是因为您要将其添加到thead
中。因此,即使是空的,也会生成常规tbody
。
只需指定行:
<EmptyDataTemplate>
<tr>
<td colspan="2" style="text-align: center">No records found</td>
</tr>
</EmptyDataTemplate>
您也可以使用EmptyDataText
<GridView ... EmptyDataText="[ No details available... ]" >
答案 2 :(得分:0)
最后我找到了解决方案
添加行
<EmptyDataRowStyle CssClass="hide" />
节省了我的一天。这会导致在数据源为空时隐藏额外的tbody tr。