【问题标题】:GridView doesn't display columns or empty records textGridView 不显示列或空记录文本
【发布时间】:2016-03-21 19:07:07
【问题描述】:

我有一个存储过程,它返回包含列名的数据。以下是空存储过程返回的内容。

当有数据返回时,我的 gridview 只显示列标题。

当数据表为 0 时,它确实显示列标题 (ShowHeaderWhenEmpty) 或未找到记录 (EmptyDataText)

protected void populateTableData(GridView gv, DataTable dt) {
            //CLEAR ANY PREVIOUS DATA
            gv.DataSource = null;
            gv.DataBind();

            //LOAD NEW DATA
            gv.DataSource = dt;
            gv.DataBind();
            gv.ShowHeaderWhenEmpty = true; 
            gv.EmptyDataText = "No records where found.";

            //REQUIRED FOR BOOTSTRAP TO MAKE THE TABLE LOOK CORRECTLY
            gv.UseAccessibleHeader = true;

        }

这是我在 aspx 方面的网格视图:

<asp:GridView runat="server" ID="gvFees" GridLines="None" CellPadding="0" CellSpacing="0" AutoGenerateColumns="true"  CssClass="table table-hover table-striped" OnRowDataBound="gvFees_RowDataBound" ></asp:GridView>

我做错了什么?我更喜欢代码隐藏解决方案。

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    将您的 DataBind() 呼叫移至末尾。在设置显示标题的选项之前绑定数据。

    protected void populateTableData(GridView gv, DataTable dt)
    {
        //CLEAR ANY PREVIOUS DATA
        gv.DataSource = null;
        gv.DataBind();
    
        //LOAD NEW DATA
        gv.DataSource = dt;
        gv.ShowHeaderWhenEmpty = true;
        gv.EmptyDataText = "No records where found.";
    
        //REQUIRED FOR BOOTSTRAP TO MAKE THE TABLE LOOK CORRECTLY
        gv.UseAccessibleHeader = true;
        gv.DataBind();
    }
    

    【讨论】:

    • 叹息,事情总是简单的!
    • 确实总是这样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多