private void SetThreadData(掲示板リターンデータセット rdataset) { pn.Controls.Clear(); foreach (var data in rdataset.掲示板データ) { foreach (var data2 in data) { var 投稿Ent = data2.Key; DateTime dt; if (DateTime.TryParse(投稿Ent.投稿日, out dt) == false) { dt = new DateTime(); } string html = "<table width=\"100%\" class=\"tbContribute\">" + //投稿 "<tr>" + "<td colspan=\"5\">" + "<span class=\"MainNo\">" + 投稿Ent.No + " " + "</span>" + "<span class=\"MainTitle\">" + 投稿Ent.Title + " " + "</span>" + "<span class=\"MainPersonNameHeader\">投稿者名:</span>" + "<span class=\"MainPersonName\">" + 投稿Ent.投稿者名 + " " + "</span>"; pn.Controls.Add(new LiteralControl(html)); if (投稿Ent.HomepageUrl != "http://" && 投稿Ent.HomepageUrl != "") { Image img = new Image(); img.ImageUrl = "~/Images/Icon/homepage.png"; img.Width = 15; img.Height = 15; LinkButton lb = new LinkButton(); lb.PostBackUrl = 投稿Ent.HomepageUrl; lb.Controls.Add(img); pn.Controls.Add(lb); } string html10 = " " + "<span class=\"MainDateHeader\">投稿日:</span>" + "<span class=\"MainDate\">" + dt.ToString("yyyy/MM/dd HH:mm:ss") + " " + "</span>" + "</td>" + "<td align=\"right\">"; pn.Controls.Add(new LiteralControl(html10)); string 記事No = 投稿Ent.No.Replace("No:", ""); 返信用Button b = new 返信用Button(記事No, 投稿Ent.Title); b.Text = "返信"; b.ID = "hn" + 投稿Ent.カテゴリ名 + 記事No; b.Click += new EventHandler(btn返信_Click); pn.Controls.Add(b); string 記事ColorCode = Convert文字色ToColorCode(投稿Ent.文字色); string html2 = "</td>" + "</tr>" + "<tr>" + "<td colspan=\"6\" style=\"padding:10px 0px 0px 50px;color:" + 記事ColorCode + ";\">" + 投稿Ent.記事.Replace("\n", "<br/>"); if (投稿Ent.添付ファイルlist.Count() != 0) { html2 += "<br/><br/><br/>"; } pn.Controls.Add(new LiteralControl(html2)); int counter = 1; foreach (var ls in 投稿Ent.添付ファイルlist) { ダウンロード用LinkButton lkb = new ダウンロード用LinkButton(投稿Ent.No.Replace("No:", ""), ddlスレッド選択.SelectedValue); lkb.ID = "dl" + 投稿Ent.カテゴリ名 + 記事No + counter; lkb.Click += new EventHandler(lkbDownLoad_Click); lkb.Text = ls; lkb.Style.Add(HtmlTextWriterStyle.FontSize, "12px"); pn.Controls.Add(lkb); string html3 = "<br/>"; pn.Controls.Add(new LiteralControl(html3)); counter++; } string html4 = "</td>" + "</tr>" + "<tr>" + "<td><br/></td>" + "</tr>"; // 返信があれば水平線を入れる if (1 <= data2.Value.Count()) { html4 += "<tr>" + "<td colspan=\"6\">" + "<hr />" + "</td>"; } pn.Controls.Add(new LiteralControl(html4)); foreach (var 返信ent in data2.Value) { DateTime dt2; if (DateTime.TryParse(返信ent.投稿日, out dt2) == false) { dt2 = new DateTime(); } string html5 = // 返信 "<tr >" + "<td colspan=\"6\" style=\"padding:20px 0px 0px 50px\">" + "<span class=\"SubNo\">" + 返信ent.No + " " + "</span>" + "<span class=\"SubTitle\">" + 返信ent.Title + " " + "</span>" + "<span class=\"SubPersonNameHeader\">投稿者名:</span>" + "<span class=\"SubPersonName\">" + 返信ent.投稿者名 + " " + "</span>"; pn.Controls.Add(new LiteralControl(html5)); if (返信ent.HomepageUrl != "http://" && 返信ent.HomepageUrl != "") { Image img = new Image(); img.ImageUrl = "~/Images/Icon/homepage.png"; img.Width = 15; img.Height = 15; LinkButton lb = new LinkButton(); lb.PostBackUrl = 返信ent.HomepageUrl; lb.Controls.Add(img); pn.Controls.Add(lb); } string 記事ColorCode2 = Convert文字色ToColorCode(返信ent.文字色); //+ (返信ent.HomepageUrl == "http://" ? "" : 返信ent.HomepageUrl) + " " string html9 = " " + "<span class=\"SubDateHeader\">投稿日:</span>" + "<span class=\"SubDate\">" + dt2.ToString("yyyy/MM/dd HH:mm:ss") + " " + "</span>" + "</td>" + "</tr>" + "<tr>" + "<td colspan=\"6\" style=\"padding:20px 0px 0px 105px;color:" + 記事ColorCode2 + ";\">" + 返信ent.記事.Replace("\n", "<br/>"); if (返信ent.添付ファイルlist.Count() != 0) { html9 += "<br/><br/><br/>"; } pn.Controls.Add(new LiteralControl(html9)); string 記事No2 = 返信ent.No.Replace("No:", ""); int counter2 = 1; foreach (var ls in 返信ent.添付ファイルlist) { ダウンロード用LinkButton lkb = new ダウンロード用LinkButton(記事No2, ddlスレッド選択.SelectedValue); lkb.ID = "dl" + 投稿Ent.カテゴリ名 + 記事No2 + counter2; lkb.Click += new EventHandler(lkbDownLoad_Click); lkb.Text = ls; lkb.Style.Add(HtmlTextWriterStyle.FontSize, "12px"); pn.Controls.Add(lkb); string html6 = "<br/>"; pn.Controls.Add(new LiteralControl(html6)); counter2++; } string html7 = "</td>" + "</tr>" + "<tr>" + "<td><br/></td>" + "</tr>"; pn.Controls.Add(new LiteralControl(html7)); } string html8 = "</table>"; pn.Controls.Add(new LiteralControl(html8)); } } // 表示しているページ番号をセッションに保存 Session["PageNumber"] = rdataset.作成グループNo; SetPageSelector(rdataset); Session["MaxPageNumber"] = (int)Math.Ceiling((double)rdataset.メイン記事数 / 10); //Session["Panel"] = pn; }
private void SetPageSelector(掲示板リターンデータセット dataset) { pnLinkButton.Controls.Clear(); // ページ選択ボタンを追加 List <string> pages = new List <string>(); Stack <string> backBages = new Stack <string>(); if (dataset.メイン記事数 <= 0) { //ページセレクターは作らずスルーする キーワード検索時用 } else { double d = (double)dataset.メイン記事数 / 10; int maxpage = ((int)Math.Ceiling(d) < dataset.作成グループNo + 9) ? (int)Math.Ceiling(d) : dataset.作成グループNo + 9; if (dataset.作成グループNo != 1) { // (int)Math.Ceiling(d) < dataset.作成グループNo + 9 がtrueの時 if ((int)Math.Ceiling(d) < dataset.作成グループNo + 9) { // 差分を前に追加する int 前に追加する差分数 = dataset.作成グループNo + 9 - (int)Math.Ceiling(d); for (int i = 1; ; i++) { // 1になったら最後 if ((dataset.作成グループNo - i) == 1) { backBages.Push((dataset.作成グループNo - i).ToString()); break; } // 追加する差分数になったら最後 else if (i == 前に追加する差分数) { backBages.Push((dataset.作成グループNo - i).ToString()); break; } backBages.Push((dataset.作成グループNo - i).ToString()); } } } // スタックから順番に取り出す foreach (var stack in backBages) { pages.Add(stack); } for (int i = dataset.作成グループNo; i <= maxpage; i++) { pages.Add(i.ToString()); } string Previous = "前"; string Next = "次"; string First = "<<"; string End = ">>"; // Link作成 if (pages == null || pages.Count == 0) { throw new Exception("pagesが設定されてません。"); } if (dataset.作成グループNo <= 1 ? false : true) { pages.Insert(0, First); pages.Insert(1, Previous); } if (dataset.作成グループNo * 10 < dataset.メイン記事数 ? true : false) { pages.Insert(pages.Count, Next); pages.Insert(pages.Count, End); } foreach (var str in pages) { LinkButton lkb = new LinkButton(); lkb.Text = str; lkb.Click += new EventHandler(lkb_Click); lkb.ID = "pageselector" + str; if (str == dataset.作成グループNo.ToString()) { pnLinkButton.Controls.Add(new LiteralControl("<span style=\"font-weight:bold;\">")); lkb.ForeColor = System.Drawing.Color.Red; } pnLinkButton.Controls.Add(lkb); pnLinkButton.Controls.Add(new LiteralControl("</span>")); pnLinkButton.Controls.Add(new LiteralControl(" ")); } } }