【问题标题】:How to use <EmptyDataTemplate> in asp gridview如何在 asp gridview 中使用 <EmptyDataTemplate>
【发布时间】:2014-11-12 10:04:38
【问题描述】:

我有一个网格如下

<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>

当数据源不为空时,数据按预期播种在&lt;table&gt;&lt;tbody&gt;

只要数据源为空,就会呈现空模板。但问题是&lt;tbody&gt;标签中添加了一个空行

<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 中消除此表行。我已将点击侦听器附加到 &lt;tbody&gt; &lt;tr&gt; 所以在 javascript 中需要不必要的照顾。

我该如何解决这个问题?
这是使用&lt;EmptyDataTemplate&gt; 的正确方法吗?

我的目标是在数据源为空时显示如下

【问题讨论】:

  • 你的意思是如果数据源为空,你想隐藏整个网格对吗?如果源为空,您是否尝试隐藏网格?
  • 没有。我想在源为空时显示空模板,并在那时删除 tbody 中的空行。我想知道为什么要添加一个空行
  • 网格为空时是否需要显示表头?
  • 是的。这对用户很有吸引力。我在一些网站上看到过这种情况

标签: javascript c# asp.net gridview


【解决方案1】:

我建议你在 emptydatatemplate 中使用 div 而不是 thead 和 tr 标签。

【讨论】:

  • +1。这是正确的。 div 应该用于 EmptyDataTemplate
【解决方案2】:

那是因为您将其添加到 thead 中。因此,常规的tbody 也正在生成,尽管它是空的。

只需指定行:

<EmptyDataTemplate>
        <tr>
           <td colspan="2" style="text-align: center">No records found</td>
        </tr>
</EmptyDataTemplate>

你也可以使用EmptyDataText

<GridView ... EmptyDataText="[ No details available... ]" >

【讨论】:

  • 现在显示了 2 行。一个没有找到记录和空行我想在数据源为空时也显示标题
  • @Robert_Junior:使用div 而不是@Dev 建议的表格行。
【解决方案3】:

终于找到了解决办法
添加行

<EmptyDataRowStyle CssClass="hide" />

拯救了我的一天。这会导致当数据源为空时隐藏额外的 tbody tr。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多