出于某种原因,我无法在我的页面上显示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());
}
}
输出显示添加到网格中的列,因此我知道数据表中包含数据,但页面上没有显示网格。
我不知道我在这里失踪了什么。
答案 0 :(得分:1)
您的数据为空。您可以通过添加EmptyDataText属性来验证这一点。
<asp:GridView ID="gvCustomers" runat="server" EmptyDataText="No data found!"
CssClass="auto-style2" Width="1057px" AutoGenerateColumns="true"
ViewStateMode="Enabled" />
如果没有数据,则不会显示任何列。
要修复,请查看您绑定到GridView的数据。它会是空的。
答案 1 :(得分:-2)
您需要在gridview中添加列。要将数据源绑定到什么位置?您必须在gridview的columns属性中指定BoundField或TemplateFields。