我的gridview源代码如下
<asp:GridView ID="g1" runat="server"></asp:GridView>
我的代码是,
bindGridView(ds.Tables[0], g1, lblErrorActivityGrid, lblActivityGridCount);
private void bindGridView(DataTable dt, GridView grd, Label lblError, Label GrdRowCount)
{
grd.DataSource = dt;
grd.DataBind();
}
我的问题是为什么我的gridview没有显示数据? 我正在使用数据集并在我的数据集中手动添加数据,然后在第0个表返回表。
请帮忙。提前致谢
答案 0 :(得分:2)
在标记集AutogenerateColumns="true"
中:
<asp:GridView ID="g1" AutoGenerateColumns= "true" runat="server"></asp:GridView>
以下是我测试代码的方法:
在我的标记中,我有gridview。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="g1" AutoGenerateColumns= "true" runat="server"></asp:GridView>
<br />
<asp:Label ID="lblErrorActivityGrid" runat="server" Text="Error Activity Grid"></asp:Label>
<br />
<asp:Label ID="lblActivityGridCount" runat="server" Text="Activity Grid Count"></asp:Label>
</div>
</form>
</body>
</html>
在我的代码中,在页面加载中,我将DataTable添加到DataSet并调用bindGridView
方法:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("Column1", typeof(string));
dt.Columns.Add("Column2", typeof(string));
ds.Tables.Add(dt);
for (int i=0; i<5; i++)
{
DataRow nw = ds.Tables[0].NewRow();
nw[0] = (i + 1).ToString();
nw["Column1"] = (i + 1).ToString();
nw["Column2"] = String.Format("Item {0}", i);
ds.Tables[0].Rows.Add(nw);
}
bindGridView(ds.Tables[0], g1, lblErrorActivityGrid, lblActivityGridCount);
}
}
private void bindGridView(DataTable dt, GridView grd, Label lblError, Label GrdRowCount)
{
grd.DataSource = dt;
grd.DataBind();
}
这是我的浏览器中的网格显示:
答案 1 :(得分:0)
尝试设置
grd.DataSource = dt.DefaultView;
您必须从DataTable中将视图设置为Gridview ..
确保表格有数据。