与literalControl ASP.net一起使用时的排序表

时间:2014-12-09 08:09:14

标签: asp.net sorting

我在排序此表时遇到问题。这只是一个传递给我的项目,他们希望我对代码进行一些更改。这是用于创建包含数据的表的代码。

                DataTable dt = common.get_entry(sname);
                if (dt.Rows.Count != 0)
                {
                    error_msg.Visible = false;
                    loader4.Visible = true;
                }
                else
                {
                    loader4.Visible = false;
                    error_msg.Visible = true;
                }

                int maxsize = 10;
                int rpage = Convert.ToInt32(p);
                int startrow = ((rpage - 1) * maxsize) + 1;
                int endrow = (rpage * maxsize);
                if (dt.Rows.Count > 0)
                {
                    int rcnt = dt.Rows.Count;
                    var tbl = view_tbl;
                    view_tbl.CssClass = "table table-hover table-bordered";
                    var maxpage = rcnt / maxsize;
                    var excess = rcnt % maxsize;
                    if (excess > 0) maxpage++;
                    TableHeaderRow r1 = new TableHeaderRow();
                    r1.TableSection = TableRowSection.TableHeader;
                    TableHeaderCell c2 = new TableHeaderCell();
                    c2.Controls.Add(new LiteralControl(""));
                    c2.Width = 45;
                    r1.Cells.Add(c2);
                    TableHeaderCell c8 = new TableHeaderCell();
                    c8.Controls.Add(new LiteralControl("Store Code"));
                    c8.Width = 120;
                    r1.Cells.Add(c8);
                    TableHeaderCell c3 = new TableHeaderCell();
                    c3.Controls.Add(new LiteralControl("Store Name"));
                    c3.Width = 250;
                    r1.Cells.Add(c3);
                    TableHeaderCell c4 = new TableHeaderCell();
                    c4.Controls.Add(new LiteralControl("Line of Business"));
                    c4.Width = 150;
                    r1.Cells.Add(c4);
                    TableHeaderCell c5 = new TableHeaderCell();
                    c5.Controls.Add(new LiteralControl("Visitors Name"));
                    c5.Width = 170;
                    r1.Cells.Add(c5);
                    TableHeaderCell c7 = new TableHeaderCell();
                    c7.Controls.Add(new LiteralControl("Date of Visit"));
                    c7.Width = 100;
                    r1.Cells.Add(c7);
                    TableHeaderCell c9 = new TableHeaderCell();
                    c9.Controls.Add(new LiteralControl("Added Date"));
                    c9.Width = 170;
                    r1.Cells.Add(c9);
                    TableHeaderCell c6 = new TableHeaderCell();
                    c6.Controls.Add(new LiteralControl("Action"));
                    c6.Width = 100;
                    r1.Cells.Add(c6);
                    tbl.Rows.Add(r1);
                    for (int cnt = startrow - 1; cnt < rcnt && cnt < endrow; cnt++)
                    {

                        TableRow r = new TableRow();
                        String sn = dt.Rows[cnt][3].ToString();
                        String lo = dt.Rows[cnt][5].ToString();
                        String id = dt.Rows[cnt][0].ToString();
                        String vn = dt.Rows[cnt][4].ToString();
                        String ed = dt.Rows[cnt][1].ToString();
                        String da = dt.Rows[cnt][6].ToString();
                        String sc = dt.Rows[cnt][7].ToString();
                        string[] edd = new string[2];
                        edd = ed.Split(' ');
                        ed = edd[0] + " " + dt.Rows[cnt][2].ToString();
                        TableCell cc1 = new TableCell();
                        cc1.Controls.Add(new LiteralControl("<input class='check_box' rel='" + id + "'type='checkbox'> <a href='#'><i class='icon-star-empty'></i></a>"));
                        r.Cells.Add(cc1);

                        TableCell cc2 = new TableCell();
                        cc2.Controls.Add(new LiteralControl("<strong>" + sc + "</strong>"));
                        r.Cells.Add(cc2);
                        TableCell cc7 = new TableCell();
                        cc7.Controls.Add(new LiteralControl("<strong>" + sn + "</strong>"));
                        r.Cells.Add(cc7);
                        TableCell cc3 = new TableCell();
                        cc3.Controls.Add(new LiteralControl("<strong>" + lo + "</strong>"));
                        r.Cells.Add(cc3);
                        TableCell cc4 = new TableCell();
                        cc4.Controls.Add(new LiteralControl("<strong>" + vn + "</strong>"));
                        r.Cells.Add(cc4);
                        TableCell cc5 = new TableCell();
                        cc5.Controls.Add(new LiteralControl("<strong>" + ed + "</strong>"));
                        r.Cells.Add(cc5);
                        TableCell cc8 = new TableCell();
                        cc8.Controls.Add(new LiteralControl("<strong>" + da + "</strong>"));
                        r.Cells.Add(cc8);
                        TableCell cc6 = new TableCell();
                        cc6.Controls.Add(new LiteralControl("<a data-target='#viewentry' data-toggle='modal' class='btn btn-mini btn-success view_btn' rel='" + id + "'><i class='icon-th-list icon-white'></i>&nbsp;View</a>&nbsp;<a data-target='#delentry' data-toggle='modal' class='btn btn-mini btn-danger del_btn hidden' rel='" + id + "'><i class='icon-trash icon-white'></i></a>"));
                        r.Cells.Add(cc6);
                        tbl.Rows.Add(r);
                    }

                    var dpagi = pagi;
                    LiteralControl ul = new LiteralControl();

                    ul.Text = "<ul>";
                    for (int cnt5 = 1; cnt5 <= maxpage; cnt5++)
                    {
                        if (cnt5 == rpage)
                            ul.Text = ul.Text + "<li class='disabled'><a href='StoreVisitView.aspx?page=" + cnt5 + "'>" + cnt5 + "</a></li>";
                        else
                            ul.Text = ul.Text + "<li><a href='StoreVisitView.aspx?page=" + cnt5 + "' class='pgn'>" + cnt5 + "</a></li>";
                    }
                    ul.Text = ul.Text + "</ul>";
                    dpagi.Controls.Add(ul);
                    pagi.CssClass = "pagination";
                    loader4.Visible = false;

我不知道如何对此进行排序,因为该表是通过literalcontrol等制作的。

1 个答案:

答案 0 :(得分:0)

如果要对服务器端的数据进行排序,我建议使用DataView对其进行排序。在排序之后,您可以像现在一样手动渲染它(迭代DataView的行)或将DataGrid绑定到它。

DataView view = new DataView(dt);
view.Sort = "Column ASC, Column2 ASC";
// Now iterate through rows of dataview
foreach (DataRowView row in view) {...}

其他选项是使用某些排序插件在客户端对其进行排序。 例如,Tablesorter似乎很容易使用。或者只是谷歌“排序表javascript”...