Good Day、みんな。入れ子にされたforeach()がうんざりしています
私は現在、ナビゲーション用のフルページオーバーレイを作成しています。私は入れ子になったforeach()ループに関して過去2日間この問題を解明しようとしています。
私はこれらのページを投稿とリンクしている可能性があります。私は
public DataTable GetMain()
{
string sql = "SELECT Id,Title,Slug from Pages";
SqlCommand SQLComm = new SqlCommand(sql, con);
SqlDataAdapter SQLAd = new SqlDataAdapter(SQLComm);
DataTable dt = new DataTable();
SQLAd.Fill(dt);
return dt;
}
private void GetAll()
{
DataTable dt = new DataTable();
HyperLink newhyperlink = new HyperLink();
Label newlabel = new Label();
foreach (DataRow row in GetMain().Rows)
{
newlabel.ID = "li";
MainMenu.Controls.Add(newlabel);
newlabel.Text = @"<li class""dropdown"" data-toggle=""collapse""";
newlabel = new Label();
newhyperlink.ID = "Main";
MainMenu.Controls.Add(newhyperlink);
newhyperlink.Text = row["Title"].ToString();
newhyperlink.NavigateUrl = row["Slug"].ToString();
newhyperlink = new HyperLink();
html.Append("></li>");
html.Append("<ul class=\"list-group\">");
var sql2 = "SELECT po.Id as PostId, po.Slug as PostSlug, po.Title as PostTitle, pa.Slug as PageSlug, pa.Id as PageId FROM Posts po " +
"LEFT JOIN PagesPostsMap m ON po.Id = m.PostId " +
"LEFT JOIN Pages pa ON m.PageId = pa.Id " +
"WHERE pa.Id = "+row["Id"] + "";
SqlDataAdapter SQLAd = new SqlDataAdapter(sql2, con);
SQLAd.Fill(dt2);
foreach (DataRow row2 in dt2.Rows)
{
object value = row2["PostId"];
if (value != DBNull.Value)
{
if (row["Id"] != row2["PageId"])
{
newlabel.ID = "li";
MainMenu.Controls.Add(newlabel);
newlabel.Text = @"<li class""dropdown-menu""";
newlabel = new Label();
newhyperlink.ID = "Sub" + i.ToString();
MainMenu.Controls.Add(newhyperlink);
newhyperlink.Text = row2["PostTitle"].ToString();
newhyperlink.NavigateUrl = row2["PageSlug"].ToString() + "/" + row2["PostSlug"].ToString();
newhyperlink = new HyperLink();
newlabel.ID = "li";
MainMenu.Controls.Add(newlabel);
newlabel.Text = "</li>";
newlabel = new Label();
}
}
}
}
}
:
Home Page Technologies Page Post 1/ Post 2/ Post3 Contact Us Page About Us Page
しかし、私は取得していことです::そしてここで私が達成しようとしているものです。ここ
Home Page Technologies Page Post 1/ Post 2/ Post3 Contact Us Page Post 1/ Post 2/ Post3 About Us Page Post 1/ Post 2/ Post3
は私のコードですクラスやものが合わないのなら、ごめんなさい。私はまだCSSとJSの仕組みを理解しようとしています。
ご協力いただきありがとうございます。
こんにちはを追加すること自由に感じ、あなたは、Visual Studioを使用していますか? – chrillelundmark
@chrillelundmark。はい。 – SlicedBread
その質問は実際には無関係でした。最初はあなたのSQLに何か問題があったと思っていましたが、あなたの質問を正しく読んでいました。サーバーエクスプローラでSQLを実行して、作成した行の数を確認することができたら、私は考えましたが、正しい行数を生成することができます。 – chrillelundmark