html:
<div class="lists-tab-tags01">
<a <%=status == "-1"?"class=cur":"" %> href="UnShelveRecordMgr.aspx?status=-1&chestkey=<%=chestkey %>&start=<%=tbStart.Text %>&end=<%=tbEnd.Text %>"
title="点击">全部状态(<%=alls %>)</a> |<a <%=status == "0"?"class=cur":"" %> href="UnShelveRecordMgr.aspx?status=0&chestkey=<%=chestkey %>&start=<%=tbStart.Text %>&end=<%=tbEnd.Text %>"
title="点击">待下架(<%=news%>)</a> |<a <%=status == "1"?"class=cur":"" %> href="UnShelveRecordMgr.aspx?status=1&chestkey=<%=chestkey %>&start=<%=tbStart.Text %>&end=<%=tbEnd.Text %>"
title="点击">处理中(<%=doings%>)</a>|<a <%=status == "3"?"class=cur":"" %> href="UnShelveRecordMgr.aspx?status=3&chestkey=<%=chestkey %>&start=<%=tbStart.Text %>&end=<%=tbEnd.Text %>"
title="点击">已完成(<%=finishs%>)</a>
</div>
后台:
if (!IsPostBack)
{
BindUStatusCounts();
}
#region 下架单状态
public int alls
{//全部
get
{
return ViewState["alls"] == null ? 0 : (int)ViewState["alls"];
}
set
{
ViewState["alls"] = value;
}
}
public int news //待下架
{
get
{
return ViewState["news"] == null ? 0 : (int)ViewState["news"];
}
set
{
ViewState["news"] = value;
}
}
public int doings //处理中
{
get
{
return ViewState["doings"] == null ? 0 : (int)ViewState["doings"];
}
set
{
ViewState["doings"] = value;
}
}
public int finishs //已完成
{
get
{
return ViewState["finishs"] == null ? 0 : (int)ViewState["finishs"];
}
set
{
ViewState["finishs"] = value;
}
}
#endregion
private void BindUStatusCounts()
{
#region 搜索条件
if (string.IsNullOrEmpty(this.tbStart.Text) && string.IsNullOrEmpty(this.tbEnd.Text))
{
tbStart.Text = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddDays(-3).ToString("yyyy-MM-dd");
tbEnd.Text = DateTime.Now.ToString("yyyy-MM-dd");
}
if (!string.IsNullOrEmpty(tbStart.Text))
datest = tbStart.Text;
if (!string.IsNullOrEmpty(tbEnd.Text))
dateend = tbEnd.Text;
#endregion
var urss = new UnShelveRecordServices();
List<UnShelveRecordServices.UStatusCount> usc = urss.GetUStatusCount(string.IsNullOrEmpty(tbStart.Text) ? DateTime.Now.AddHours(-24) : Convert.ToDateTime(tbStart.Text + " 00:00"),
string.IsNullOrEmpty(tbEnd.Text) ? DateTime.Now.AddHours(24) : Convert.ToDateTime(tbEnd.Text + " 23:59"),
(string.IsNullOrEmpty(ddl_yg.SelectedValue) ? "0" : ddl_yg.SelectedValue));
#region 状态数量
//新建
if (usc.Select(C => C.UStatus == UnShelveState.New.GetHashCode()).Count() > 0)
news = usc.Where(C => C.UStatus == UnShelveState.New.GetHashCode()).Select(C => C.Count).Sum();
else
news = 0;
//处理中
if (usc.Select(C => C.UStatus == UnShelveState.Processing.GetHashCode()).Count() > 0)
doings = usc.Where(C => C.UStatus == UnShelveState.Processing.GetHashCode()).Select(C => C.Count).Sum();
else
doings = 0;
//已完成
if (usc.Select(C => C.UStatus == UnShelveState.Finished.GetHashCode()).Count() > 0)
finishs = usc.Where(C => C.UStatus == UnShelveState.Finished.GetHashCode()).Select(C => C.Count).Sum();
else
finishs = 0;
alls = news + doings + finishs;
#endregion
}
linq:
/// <summary>
/// 下架单状态,数量
/// </summary>
public class UStatusCount
{
public UStatusCount() { }
public UStatusCount(int ustatus, int count)
{
this.UStatus = ustatus;
this.Count = count;
}
public int UStatus { get; set; }
public int Count { get; set; }
}
/// <summary>
/// 获取下架单状态数量方法
/// </summary>
public List<UStatusCount> GetUStatusCount(DateTime dtFrom, DateTime dtTo, string key)
{
MS_Entities entities = MyDynEntities;
var result = entities.UnShelveRecord.Join(entities.Chest, c => c.ChestKey, x => x.ChestKey, (usr, ch) => new { usr, ch })
.Where(c => c.usr.UnShelveTime >= dtFrom && c.usr.UnShelveTime <= dtTo && c.ch.ChestType != -1);
if (key != "0")
result = result.Where(c => c.usr.ChestKey.Contains(key));
var ag = result.GroupBy(c => new { c.usr.State });
List<UStatusCount> usc = new List<UStatusCount>();
foreach (var a in ag)
{
usc.Add(new UStatusCount(a.Key.State.Value, a.Count()));
}
return usc;
}
声明:此文系舞林cuzn(www.wulinlw.org)原创稿件,转载请保留版权