【问题标题】:GridView EmptyDataTemplateGridView 空数据模板
【发布时间】:2012-06-23 08:56:26
【问题描述】:

我有一个使用 EmptyDataTemplate 的 ASP.NET GridView。此模板用于在我的数据源中不存在记录的情况下收集数据。我的 GridView 源代码如下所示:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="Lecturer" CellPadding="4"
ForeColor="#333333" GridLines="None" style="text-align: center" allowsorting="True">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
    <asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" />
    <asp:HyperLinkField HeaderText="URL" SortExpression="url" DataNavigateUrlFields="url" Text="Link"  ItemStyle-Width="100" />  
</Columns>

<EmptyDataTemplate>
    No data found!
</EmptyDataTemplate>

<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 

这里的问题是我希望在单击按钮搜索后显示空数据模板,但现在每次我打开页面时,即使我还没有进行任何搜索,它也会显示空数据模板。

【问题讨论】:

  • 如果您希望在搜索结果为空时显示消息,那么您必须手动执行此操作,EmptyDataTemplate 不是为此,EmptyDataTemplate 将在网格不显示时显示'没有任何记录。

标签: asp.net gridview


【解决方案1】:

使用:

EmptyDataText="No data found!"

在像这样的网格中:

<asp:GridView ID="GridView1" EmptyDataText="No data found!" ....>

你的方式不正确。EmptyDataTemplate 不用于此目的。

【讨论】:

    【解决方案2】:

    去掉EmptyDataTemplate,当你搜索时如果没有匹配到的记录,设置你gridview的EmptyDataText

    【讨论】:

      【解决方案3】:

      听起来您将 GridView 绑定在 Page_Load 事件中,而不是单击“搜索”按钮。将您的绑定代码移动到一个单独的方法中,并在其单击事件中单击搜索按钮时调用该方法。

      【讨论】:

        【解决方案4】:

        试试这个:

        private DataTable GetDataTable(Boolean blnIsReturnNull)
        {
                DataTable tblReturnTable = new DataTable();
                tblReturnTable.Columns.Add("name");
                tblReturnTable.Columns.Add("URL");
                if (blnIsReturnNull)
                {
                    return tblReturnTable;
                }
                for (int intCounter = 0; intCounter < 10; intCounter++)
                {
                    //Build of tblReturnTable
                }
                return tblReturnTable;
        }
        
         protected void cmdEmptyGridView_Click(object sender, EventArgs e)
            {
                GridView1.DataSource = GetDataTable(true);
                GridView1.DataBind();
            }
        
        
        <asp:Button ID="cmdEmptyGridView" runat="server" Text="Empty GridView" OnClick="cmdEmptyGridView_Click"
                                    CssClass="Button" /></td>
        

        【讨论】:

          猜你喜欢
          • 2017-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多