Exemple #1
0
        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;
        }
Exemple #2
0
        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(" "));
                }
            }
        }