【问题标题】:GridView not showingGridView 不显示
【发布时间】:2014-07-25 17:31:00
【问题描述】:

由于某种原因,我无法在我的页面上显示 Gridview。

<asp:GridView ID="gvCustomers" runat="server" 
CssClass="auto-style2" Width="1057px" AutoGenerateColumns="true" 
ViewStateMode="Enabled">
    </asp:GridView>

代码背后

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!Page.IsPostBack)
        {
            if (Session["DirtyData"] != null)
            {
                Dirty dirty = Session["DirtyData"] as Dirty;
                char delimiter = '\t';

                DataTable customer = new DataTable();

                #region customer
                string[] customerCol1 = dirty.Customer[0].Split(delimiter);

                foreach (string col in customerCol1)
                {
                    DataColumn column = new DataColumn();
                    column.ColumnName = col;
                    customer.Columns.Add(column);
                    Response.Write(string.Format("Adding Customer Column: {0}<br />", col));
                }

                for (int i = 1; i < dirty.Customer.Count; i++)
                {
                    DataRow row = customer.NewRow();

                    string[] split = dirty.Customer[i].Split(delimiter);

                    for (int x = 0; x < split.Length; x++)
                    {
                        row[i] = split[x];
                    }
                    customer.Rows.Add(row);
                }

                Response.Write("binding customer<br />");
                gvCustomers.DataSource = customer;
                gvCustomers.DataBind();
                gvCustomers.Visible = true;
                #endregion

                Session["DirtyData"] = null;
            }
            else
            {
                Response.Redirect("Login.aspx");
            }
        }
    }
    catch (Exception ex)
    {
        Response.Write(ex.ToString());
    }
}

输出显示正在添加到网格的列,因此我知道数据表中有数据,但页面上没有显示网格。

我看不出我在这里缺少什么。

【问题讨论】:

  • 显示您与数据绑定的事件/方法......可能为时已晚。
  • 只是一个实验,尝试在gvCustomers上设置EmptyDataText="No data found"
  • @mason 如果没有行,列不会显示?我看到显示“未找到数据”。
  • 是的,完全正确。如果没有行,则没有理由显示列。查看您绑定到 GridView 的数据并确保它不为空。
  • @mason 好的,我不知道这一点。是的,我知道目前只有列,没有行。

标签: c# asp.net gridview


【解决方案1】:

您的数据为空。您可以通过添加 EmptyDataText 属性来验证这一点。

<asp:GridView ID="gvCustomers" runat="server" EmptyDataText="No data found!" 
CssClass="auto-style2" Width="1057px" AutoGenerateColumns="true" 
ViewStateMode="Enabled" />

如果没有数据,则不会显示任何列。

要解决此问题,请查看您绑定到 GridView 的数据。它将是空的。

【讨论】:

    【解决方案2】:

    您需要将列添加到您的网格视图。您想将数据源绑定到什么?您必须在 gridview 的 columns 属性中指定 BoundField 或 TemplateFields。

    【讨论】:

    • 它必须是动态的并且不针对任何特定的列名。这就是我使用自动生成列的原因
    • -1 使用自动生成列时不需要手动添加列。
    猜你喜欢
    • 2020-04-02
    • 2012-06-18
    • 2012-10-04
    • 1970-01-01
    • 2019-07-29
    • 2016-10-05
    • 2016-10-16
    • 2014-02-21
    • 1970-01-01
    相关资源
    最近更新 更多