c# - ShowHeaderWhenEmpty、EmptyDataText 和 EmptyDataTemplate 在 gridview 中不起作用

标签 c# asp.net gridview

Gridview 在返回数据时正确填充,但是 ShowHeaderWhenEmptyEmptyDataTextEmptyDataTemplate 都不起作用,即使没有返回任何记录。我已经阅读了有关 CSSFriendly 的其他解决方案以及 CSSFriendly 禁用控件的一些冲突,但这似乎并没有解决问题。

这是我的ASP gridview

<asp:GridView runat="server" class="table table-striped table-hover" ID="gvPendingRequestsEP" GridLines="None" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="submitted_by" HeaderText="submitted by" />
        <asp:BoundField DataField="date_submitted" HeaderText="date submitted" />
        <asp:BoundField DataField="card_number" HeaderText="Card Number" />
        <asp:BoundField DataField="beginning_date" HeaderText="Date" />
        <asp:BoundField DataField="beginning_time" HeaderText="time" />
        <asp:BoundField DataField="total_time" HeaderText="hours" />
        <asp:BoundField DataField="in_place_rank" HeaderText="Time/ Pay" />
        <asp:BoundField DataField="status_id" HeaderText="Status" />
        <asp:TemplateField>
            <HeaderTemplate>
                edit
            </HeaderTemplate>
            <ItemTemplate>
                <a href="EPRequest.aspx?id=<%#Eval("card_number") %>">edit</a>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

这是我的代码隐藏

protected void PopulateCardManagers(object sender, EventArgs e)
{
    string connstring = ConfigurationManager.ConnectionStrings["TimeHubDBCS"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(connstring))
        {
            SqlCommand cmdFillEP = new SqlCommand();
            cmdFillEP = new SqlCommand("spSelectPendingRequestsEP", conn);
            cmdFillEP.CommandType = System.Data.CommandType.StoredProcedure;
            cmdFillEP.Parameters.Add("@UserId", SqlDbType.VarChar).Value = lblUserLoggedIn.Text;

            DataSet dsRequests = new DataSet();
            DataTable dtEPCards;

            dsRequests.Tables.Add("dtEPCards");
            dtEPCards = dsRequests.Tables[0];

            SqlDataAdapter daPendingRequestsEP = new SqlDataAdapter();
            daPendingRequestsEP.SelectCommand = cmdFillEP;

            conn.Open();

            try
            {
                daPendingRequestsEP.Fill(dtEPCards);

                gvPendingRequestsEP.DataSource = dtEPCards;
                gvPendingRequestsEP.DataBind();
            }
            catch (Exception ex)
            {
                PopupTitle = "error populating EP Card Manager: ";
                message = ex.Message;
                ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup('" + message + ex.Message + "');", true);
            }

        }
}

提前致谢

最佳答案

要使 ShowHeaderWhenEmpty 正常工作,您必须向 gridview 控件提供一个非空数据源。因此,如果您当前的代码提供 null,解决该问题的一种方法是创建一个空的 datatable 并将其绑定(bind)到您的 gridview

关于c# - ShowHeaderWhenEmpty、EmptyDataText 和 EmptyDataTemplate 在 gridview 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740150/

相关文章:

c# - 无法将AllowDrop、CanDragItems、CanReorderItems 属性添加到Gridview

c# - ASP.NET:何时以及如何在代码后面动态更改 Gridview header 文本?

c# - 将匿名类型转换为已知类型

C# BitmapData 类 Scan0 和 Stride 属性含义

c# - 如何设置条件编译变量?

c# - 关闭 Firefox 后 ASP.NET 身份验证 cookie 不会删除

android - RecyclerView - GridLayoutManager - 双向滚动

c# - NumericUpDown 控件中的小数位

c# - 在每个页面回发时弹出 jQuery 对话框

c# - 使用c#将图像插入到excel单元格中