我有一个数据集,我想显示数据库。我的目标是使用VS 2005在aspx页面上显示一个月的数据,每行5天。我写了这样的代码,但我对i和j感到困惑。此代码不显示任何内容
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
Table table = new Table();
table.ID = "Table1";
TableRow row = new TableRow();
TableCell cell = new TableCell();
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
// I am not sure what i and j should be here to display 5 per each row..
for (int i = 0; i < 5; i++)
{
if (int j == 0; j < ds.Tables[0].Rows.Count; j ++)
{
tb1.ID = "txtDateRow" + x + "Col" + j;
tb1.Text = ds.Tables[0].Rows[x]["Date"].ToString();
tb2.ID = "txtDetails" + x + "Col" + j;
tb2.Text = ds.Tables[0].Rows[x]["AmountSold"].ToString();
cell.Controls.Add(tb1);
cell.Controls.Add(tb2);
table.Rows.Add(row);
}
}
Panel1.Controls.Add(table);
}
如果有人能帮助我解决这个问题,我真的很感激。非常感谢。
答案 0 :(得分:1)
row.Controls.Add(cell)。此文本框控件的Bcoz未添加到表中,您无法看到任何内容。添加此行,它将帮助您查看。之后你可以考虑一下i&amp;学家
答案 1 :(得分:0)
你有一个带有计数器的循环,即i
,但你测试j==0
什么是j
?
某处j
是否已被初始化? j
甚至被宣布了吗?如果没有,您确定不想测试i == 0
吗?
这就是你在for循环中没有得到任何结果的原因。 代码:
tb1.ID = "txtDateRow" + x + "Col" + j;
tb1.Text = ds.Tables[0].Rows[x]["Date"].ToString();
tb2.ID = "txtDetails" + x + "Col" + j;
tb2.Text = ds.Tables[0].Rows[x]["AmountSold"].ToString();
cell.Controls.Add(tb1);
cell.Controls.Add(tb2);
table.Rows.Add(row);
在条件之内:
if (j == 0)
问题是这种情况会发生吗?如果是这样,您需要发布更多代码。 调试代码并设置断点并观察它的运行方式。根据你发布的编辑:
if (int j == 0; j < ds.Tables[0].Rows.Count; j ++)
这甚至不起作用,我认为在解决这个问题之前,你需要拿一本关于C#语法的书。
答案 2 :(得分:0)
我不确定代码中应该包含什么'x'。我认为一般结构应该是这样的,但下面的代码将为每列添加相同的东西:
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
Table table = new Table();
table.ID = "Table1";
// j is the row index
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
TableRow row = new TableRow();
// i is the column index
for (int i = 0; i < 5; i++)
{
TableCell cell = new TableCell();
TextBox tb1 = new TextBox();
TextBox tb2 = new TextBox();
tb1.ID = "txtDateRow" + j + "Col" + i;
tb1.Text = ds.Tables[0].Rows[j]["Date"].ToString();
tb2.ID = "txtDetails" + j + "Col" + i;
tb2.Text = ds.Tables[0].Rows[j]["AmountSold"].ToString();
cell.Controls.Add(tb1);
cell.Controls.Add(tb2);
row.Cells.Add(cell);
}
table.Rows.Add(row);
}
Panel1.Controls.Add(table);
}