Имам набор от данни от базата данни, която искамза показване. Целта ми е да покажа данни на месец на ассс страница използвайки VS 2005 с 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);
}
Ако някой може да ми помогне да разреша това, наистина го оценявам. Благодаря много.
Отговори:
1 за отговор № 1row.Controls.Add (cell) липсва. Скоростта на този контрол на текстовите полета не се добавя към таблицата и не можете да видите нищо. Добавете този ред и това ще ви помогне да видите. По-късно можете да помислите за i & j.
0 за отговор № 2
Имате линия с брояч, а именно, i
но тествате за j==0
какво е j
? е j
някъде? е j
дори обявени? Ако не, сигурен ли си, че не искаш да тестваш i == 0
?
Това е причината, поради която не получавате никакви резултати в цикъла за. Кодът:
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 #, преди да се справите с този проблем.
0 за отговор № 3
Аз не съм сигурен какво "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);
}