【发布时间】:2011-05-03 23:27:07
【问题描述】:
我在 JqGrid 中对条目进行排序时遇到问题。 Orderby 似乎不起作用。我在代码中设置了断点,我注意到 orderby 不会改变元素的顺序。知道有什么问题吗?
我正在使用 LINQ to SQL 和 MySQL(DbLinq 项目)。
我的操作代码:
public ActionResult All(string sidx, string sord, int page, int rows)
{
var tickets = ZTRepository.GetAllTickets().OrderBy(sidx + " " + sord).ToList();
var rowdata = (
from ticket in tickets
select new {
i = ticket.ID,
cell = new String[] {
ticket.ID.ToString(), ticket.Hardware, ticket.Issue, ticket.IssueDetails, ticket.RequestedBy, ticket.AssignedTo, ticket.Priority.ToString(), ticket.State
}
}).ToArray();
var jsonData = new
{
total = 1, // we'll implement later
page = page,
records = tickets.Count(),
rows = rowdata
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
-
什么是“sidx”和“sord”?我假设它们是列名和“asc”或“desc”?另外,ZTRepository.GetAllTickets() 返回什么?
-
sidx 和 sord - 如您所料; GetAllTickets() 返回 IQueryable
-
我修复了代码中的一些错误(请参阅我的答案)。我从我的应用程序中粘贴了一个代码示例,并将并非所有变量都替换为青春。我希望现在我做了所有需要的改变。此外,不要忘记在旧代码中使用
id = ticket.ID而不是i = ticket.ID(参见下面的代码)。
标签: c# jqgrid dynamic-linq dblinq linq-to-mysql