为了账号安全,请及时绑定邮箱和手机立即绑定

服务器端排序和分页 Mvc

服务器端排序和分页 Mvc

C#
慕婉清6462132 2022-07-23 17:19:49
您好我开发了一个 Mvc 应用程序,它使用 select 语句从 Sql 服务器检索数据。我需要在数据表上实现服务器端分页和排序,我可以使用 json 检索数据并显示它。这是一个非常简单的表格,用于测试目的,数据不是很大。    [HttpPost]    public ActionResult GetList()    {        int start = Convert.ToInt32(Request["start"]);        int length = Convert.ToInt32(Request["length"]);        string sortColumnName = Request["columns[" + Request["order[0][column]"] + "][name]"];        string sortDirection = Request["order[0][dir]"];        List<YesNoModel> yesno = new List<YesNoModel>();        using (SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["TestApp"].ToString()))        {            YesNoModel yesNoMopdel = new YesNoModel();             SqlCommand sqlCmd = new SqlCommand();            sqlCmd.CommandType = CommandType.Text;            sqlCmd.CommandText = "Select ynID,ynName FROM [Yes_No] WITH (NOLOCK)";            sqlCmd.Connection = sqlCon;            sqlCon.Open();            using (SqlDataReader sdr = sqlCmd.ExecuteReader())            {                while (sdr.Read())                {                    yesno.Add(new YesNoModel                    {                        ynID = Convert.ToInt32(sdr["ynID"].ToString()),                        ynName = sdr["ynName"].ToString(),                        Action = "<a class='btn btn-info btn-xs' style='margin-top:6px'  href='" + this.Url.Action("Edit", "YesNo", new { Id = Convert.ToInt32(sdr["ynID"].ToString()) }) + "'>Edit</a>" + "<a class='btn btn-danger btn-xs' style='margin-top:6px' onclick='return confirm()' href='" + this.Url.Action("Delete", "YesNo", new { Id = Convert.ToInt32(sdr["ynID"].ToString()) }) + "'>Delete</a>"                    });                }            }        }        yesno.OrderBy(sortColumnName + " " + sortDirection);        yesno.Skip(start).Take(length);        return Json(new { data = yesno }, JsonRequestBehavior.AllowGet);    } 当我在调试模式下运行时单击排序时,我可以看到它正在选择正确的列并更改排序方向,我可以看到表格正在处理,但它实际上并没有改变顺序。谁能帮帮我吗。
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

如果您认为 OrderBy 效果很好,试试这个

    yesno = yesno.OrderBy(sortColumnName + " " + sortDirection).ToList();

它不起作用的原因是 yesno.OrderBy(sortColumnName + " " + sortDirection) 返回数组样式并生成新的样式。

生成的和yesno(你定义的)完全不同


查看完整回答
反对 回复 2022-07-23
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号