开发工具与关键技术:Visual Studio、MVC
作者:幻奏
撰写时间:2019.6.2
我在做项目的时候遇到了一个问题,我要把时间显示到表格上,然后我像平常那样写,linq查询,然后返回数据,然后加载数据表格。我写完后是这个样子的。
它显示了这个东西,好吧,是它的类型没转换对,我数据库的类型是datatime,然后我就试着转换它的类型。没办法,我是一个萌新嘛,刚开始有很多不会的地方,所以我在网上看了很多解决方法,可是,还是不行。
然后我就去问了一下别人,他们教我这样写。
创建一个实体类,然后把它写进去
public string Time;
public string Times
{
get
{
try
{
Times = Convert.ToDateTime(Time).ToString("yyyy-MM-dd HH:mm:ss");
return Time;
}
catch (Exception)
{
return Time;
throw;
}
}
set
{
Time = value;
}
}
然后在控制器那里写linq表达式,那个时间类型的还要把它tostring才可以。
List<SWZLVo> listShiWuBg = (from tbCaim in myModel.PW_Claim
join tbClaimState in myModel.S_ClaimState on tbCaim.ClaimStateID equals tbClaimState.ClaimStateID
join tbOperator in myModel.PW_Operator on tbCaim.OperatorID equals tbOperator.OperatorID
select new SWZLVo
{
Name = tbOperator.Name,
ClaimState = tbClaimState.ClaimState,
GuesName = tbCaim.GuesName,
FangNumber = tbCaim.FangNumber,
PickUpPerson = tbCaim.PickUpPerson,
Times = tbCaim.PickUpDate.ToString(),
Detail = tbCaim.Detail,
ClaimPerson = tbCaim.ClaimPerson,
TimesTwo = tbCaim.ClaimDate.ToString(),
Remark = tbCaim.Remark,
ClaimStateID = tbClaimState.ClaimStateID,
ClaimID = tbCaim.ClaimID,
}).ToList();
注意:这里它会返回两个不同时间的值,一个是它原来的时间格式,另一个是转换后的时间格式,我们只要获取我们需要的时间就行了,其他的不管它。写完了之后还要计算数据的总条数,提取数据,实体化,赋值等等。
//计算总条数
int totalRow = listShiWuBg.Count();
//提取数据
List<SWZLVo> dbShiWuBg = listShiWuBg
.Skip(layuiTablePage.GetStartIndex())
.ToList();
//实例化
LayuiTableData<SWZLVo> layuiTableData = new LayuiTableData<SWZLVo>();
//赋值
layuiTableData.count = totalRow;
layuiTableData.data = dbShiWuBg;
最后返回数据。
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
之后我们再改一下视图那边,加载数据表格我用的是这个插件,然后加载数据表格的模块,再到cols里面改一下它的名字,改用Times接收,不用它原来的名字了,要不然数据会接收不到的。
这样写好后基本没什么问题了,时间就可以在layui的数据表格显示出来了。
好了,这个问题我就是这样子解决的,本来我想找更简单的方法的,可是我没有找到,你要是会就告诉我一下,这样子我就能懂多一点东西了。