私はしばらく検索しましたが、これを行う正しい方法について、またはそれが可能であったとしても、明確な答えを得ることができません。SQL のテーブルから 2 行を取得して、DataTable に返します。行を反復処理し、その行の div を動的に作成してから、保存された値を含む各列のラベルを作成し、次の行のプロセスを繰り返します。
それを機能させるために欠けているのは、ラベルをリストに保存して、divが作成されるプレースホルダーに戻すことだけです.
ここにスニペットがあります...また、学習目的でグリッドビューやテーブルを使用するのではなく、この方法でやりたいのですが、グリッドビューとテーブルを使用してこれを行う方法は既に知っています。この SQL テーブルには合計 7 つの列があり、無制限の数の行を持つことができます。
編集
public void AddDiv(DataTable gameData)
{
for (int i = 0; i < gameData.Rows.Count; i++)
{
//newControl.InnerHtml = AddLabel(gameData, i);
//PlaceHolder1.Controls.Add(newControl);
HtmlGenericControl newControl = new HtmlGenericControl("div");
newControl.ID = "div" + i++;
Label lblTitle = new Label();
lblTitle.Text = gameData.Rows[i]["Game_Title"].ToString();
this.Controls.Add(lblTitle);
PlaceHolder1.Controls.Add(lblTitle);
Label lblPublisher = new Label();
lblPublisher.Text = gameData.Rows[i]["Game_Publisher"].ToString();
this.Controls.Add(lblPublisher);
PlaceHolder1.Controls.Add(lblPublisher);
Label lblGenre = new Label();
lblGenre.Text = gameData.Rows[i]["Game_Genre"].ToString();
this.Controls.Add(lblGenre);
PlaceHolder1.Controls.Add(lblGenre);
Label lblESRB = new Label();
lblESRB.Text = gameData.Rows[i]["Game_ESRB"].ToString();
this.Controls.Add(lblESRB);
PlaceHolder1.Controls.Add(lblESRB);
Label lblUserRating = new Label();
lblUserRating.Text = gameData.Rows[i]["Game_UserRating"].ToString();
this.Controls.Add(lblUserRating);
PlaceHolder1.Controls.Add(lblUserRating);
Label lblWebsite = new Label();
lblWebsite.Text = gameData.Rows[i]["Game_Website"].ToString();
this.Controls.Add(lblWebsite);
PlaceHolder1.Controls.Add(lblWebsite);
}
}