开发工具与关键技术: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_Claimjoin tbClaimState in myModel.S_ClaimState on tbCaim.ClaimStateID equals tbClaimState.ClaimStateIDjoin tbOperator in myModel.PW_Operator on tbCaim.OperatorID equals tbOperator.OperatorIDselect 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的数据表格显示出来了。
好了,这个问题我就是这样子解决的,本来我想找更简单的方法的,可是我没有找到,你要是会就告诉我一下,这样子我就能懂多一点东西了。