Ram*_*ngh 2 linq asp.net sorting
我想在我的查询中使用多个order,我使用LINQ.i是LINQ的新手,我已经尝试了stackoverflow上给出的示例.但我不知道为什么这些不适合我,我相信我错了.以下是我的情况.我有一个使用LINQ创建的项目.我没有设置列顺序的任务.实际上我的任务是什么,现在有一个列创建日期.现在我想使用Createddate以及sortOrder列进行排序.Below是用于它的代码:页面加载方法中的代码
ViewState["SortDirection"] = "desc";
ViewState["SortColumn"] = "createddate";
BindAllTopics(ViewState["SortDirection"].ToString(), ViewState["SortColumn"].ToString());
Run Code Online (Sandbox Code Playgroud)
我的BindAllTopic方法如下:
protected void BindAllTopics(string SortType, string SortColumn)
{
var LstTopics = (from topic in Dbobj.T_topic select topic).ToList();
if (LstTopics.Count() > 0)
{
if (SortType == "ASC")
{
LstTopics = LstTopics.OrderBy(q => q.Name).ToList();
}
else
{
LstTopics = LstTopics.OrderByDescending(q => q.Name).ThenBy(q => q.SortOrder).ToList();
}
GrdTopics.DataSource = LstTopics.ToList();
GrdTopics.PageSize = 25;
GrdTopics.DataBind();
}
else
{
GrdTopics.DataSource = null;
GrdTopics.DataBind();
lblMsg.DisplayMessage(StatusMessages.InfoMessage, "No Topics Found.");
}
}
Run Code Online (Sandbox Code Playgroud)
我想先按排序顺序排序,它是int类型,然后是Createddate.
请帮我..
你可以在追踪中再添加一个ThenBy()
LstTopics.OrderByDescending(q => q.Name).ThenBy(q => q.SortOrder).ThenBy(m=>m.date)
Run Code Online (Sandbox Code Playgroud)