Ich würde Ihre Hilfe sehr zu schätzen wissen. Das ist mein Problem:Populating dynamische Tabelle in asp.net?
Ich habe eine ArrayList von Produktobjekten. Jedes Produkt hat eine ID, einen Namen und einen Lieferanten. Wenn ich die Arraylist iteriere und eine Tabelle erstelle, um diesen Wert in Zellen zu setzen, komme ich zu dem Problem, dass ein Produkt mehr als einen Lieferanten haben kann. Wenn dies der Fall ist, sind die ID und der Name identisch, aber mit einem anderen Lieferanten in der Arraylist. Mein bisheriger Code kümmert sich darum, indem ich leere Zellen für ID und Name erstelle und den anderen Lieferanten in eine neue Zelle bringe.
Aber es sieht nicht gut aus, neue Zeilen für jeden Lieferanten zu erstellen. Ich möchte, dass wenn ein Produkt mehr als einen Lieferanten hat, ich alle Lieferanten in derselben Zelle in der Reihe für die Produkt-ID möchte.
string id = string.Empty;
int count = 0;
public void CreateResultTable(ArrayList result)
{
TableRow row;
TableCell cell;
if (result != null && result.Count > 0)
{
foreach (Item item in result)
{
if (count == 0)
{
row = new TableRow();
id = item.id;
cell = new TableCell();
cell.Text = item.id;
row.Cells.Add(cell);
cell = new TableCell();
cell.Text = item.product;
row.Cells.Add(cell);
cell = new TableCell();
ArrayList levList = item.suppliers;
if (levList != null)
{
string lev = string.Empty;
for (int i = 0; i < levList.Count; i++)
{
lev += levList[i];
}
cell.Text = lev;
row.Cells.Add(cell);
}
else
cell.Text = string.Empty;
row.Cells.Add(cell);
count++;
}
else if (id != item.id)
{
row = new TableRow();
id = item.id;
cell = new TableCell();
cell.Text = item.id;
row.Cells.Add(cell);
cell = new TableCell();
cell.Text = item.product;
row.Cells.Add(cell);
cell = new TableCell();
ArrayList levList = item.suppliers;
if (levList != null)
{
string lev = string.Empty;
for (int i = 0; i < levList.Count; i++)
{
lev += levList[i];
}
cell.Text = lev;
}
else
cell.Text = string.Empty;
row.Cells.Add(cell);
}
else
{
row = new TableRow();
cell = new TableCell();
cell.Text = string.Empty;
row.Cells.Add(cell);
cell = new TableCell();
cell.Text = string.Empty;
row.Cells.Add(cell);
cell = new TableCell();
ArrayList levList = item.suppliers;
if (levList != null)
{
string lev = string.Empty;
for (int i = 0; i < levList.Count; i++)
{
lev += levList[i];
}
cell.Text = lev;
row.Cells.Add(cell);
}
else
cell.Text = string.Empty;
row.Cells.Add(cell);
}
SearchResultLev.Rows.Add(row);
}
SearchResultLev.Visible = true;
SearchResult.Visible = false;
NoSearchResult.Visible = false;
}
else
{
SearchResultLev.Visible = false;
SearchResult.Visible = false;
NoSearchResult.Visible = true;
}
}
Ich denke, Sie können Lieferanten durch eine Gruppierung Ursache in der sql.Pls versuchen mit diesem – kbvishnu
Harie - ich habe keinen Zugriff auf die Datenbank mein Selbst, so dass ich wirklich nett wäre, wenn es in Code getan werden könnte. Wenn es unmöglich ist, muss ich natürlich Zugriff auf die Datenbank haben. – Andy