看板ajax动态获取后台传来json数据,加载到页面表格中
Posted 厦门德仔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看板ajax动态获取后台传来json数据,加载到页面表格中相关的知识,希望对你有一定的参考价值。
ajax动态获取后台传来json数据,加载到页面表格中
摘要
近期需要在汽车产品车间开发几个看板,其中一个看板需要动态加载表格。通过ajax动态获取webapi传过来的json数据,加载表格。
1.WebApi
[Route("api/[controller]/[action]")]
[ApiController]
public class KanbanController : ControllerBase
readonly EFCoreMISDbContext misContext = new();
/// <summary>
/// 获取汽车生产产品资料
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<IEnumerable<KanbanCarProduct>> GetKanbanCarProductsAsync()
return misContext.KanbanCarProducts.Where(k=> EF.Functions.DateDiffDay(k.CreatedTime, DateTime.Now)==2).DefaultIfEmpty();
/// <summary>
/// 获取汽车产品每日资料
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<IEnumerable<KanbanCarDaily>> GetKanbanCarDailiesAsync()
var kanbanCarDailies = from u in misContext.KanbanCarDailies
select u;
return kanbanCarDailies.DefaultIfEmpty();
2.看板html
<div class="content">
<img class="guang" src="~/SmartBigScreen/banktpl/img/title.png" />
<div class="tb tb_left">
<h3>生产管理看板(汽车产品)</h3>
<table class="table1">
<tr class="tb_title"><td>型号</td><td>工单</td><td>工单数</td><td>预计入库日</td><td>实际完成日</td><td>预计完成数</td><td>实际完成数</td><td>备注</td></tr>
<tbody id="t1">
</tbody>
</table>
</div>
<div style="clear:both"></div>
<div class="tb tb_left">
<h3>汽车产品每日追踪</h3>
<table class="table1">
<tr class="tb_title"><td>型号</td><td>工单</td><td>生产时间段</td><td>不良项</td><td>生产数</td><td>不良率</td><td>原因分析</td><td>对策</td><td>责任人</td><td>完成时间</td></tr>
<tbody id="t2">
</tbody>
</table>
</div>
</div>
3.ajax获取后台传来的数据:在这里要注意声明提升,所以需要在for循环外var str1 = “”; 要不然页面中的第一个数据就会打印undefined。
原本可以直接构造一个table(见注释部分),因为样式暂时无法调整,改成标题采用HTML构造。数据部分由ajax请求后动态构造。
<script>
$(function()
$.ajax(
type: "get",
url: baseUrl + "/api/Kanban/GetKanbanCarProducts", //后台数据请求地址,
dataType: "json",
success: function(res)
var list = res;
// var table = $("<table class='table1' ><tr class='tb_title'><td>型号</td><td>工单</td><td>工单数</td><td>预计入库日</td><td>实际完成日</td><td>预计完成数</td><td>实际完成数</td><td>备注</td></tr>");
//table.appendTo($("#createtable"));
//for (var i = 0; i < list.length; i++)
// var tr = $("<tr></tr>");
// tr.appendTo(table);
// var td = $("<td>" + list[i].model + "</td><td>" + list[i].workOrder + "</td><td>" + list[i].estimatedQty + "</td><td>"+ list[i].expectedCompletionDate + "</td><td>"
// + list[i].actualCompletionDate + "</td><td>"+ list[i].expectedCompletionQty+"</td><td>"+ list[i].actualCompletionQty+"</td><td>"+ list[i].actualCompletionQty+"</td><td>"+ list[i].remark+"</td>");
// td.appendTo(tr);
//
//console.log(table);
var str1 = "";
for (var i = 0; i < list.length; i++) //遍历
str1 += "<tr cate-id='0' fid='0'>" +
"<td>" + list[i].model + "</td>" + //i代表下标,获取数据中的下标为i的1的值
"<td>" + list[i].workType+'-'+list[i].workOrder + "</td>" +
"<td>" + list[i].estimatedQty + "</td>" +
"<td>" + new Date(list[i].expectedCompletionDate).Format("yyyy-MM-dd") + "</td>" +
"<td>" +new Date( list[i].actualCompletionDate).Format("yyyy-MM-dd") + "</td>" +
"<td>" + list[i].expectedCompletionQty + "</td>" +
"<td>" + list[i].actualCompletionQty + "</td>" +
"<td>" + list[i].remark + "</td>"; //i代表下标,获取数据中的下标为i的n的值,1-n是属性名
t1.innerHTML = str1; //将数据写入html中
);
//$("#createtable").append("</table>");
$.ajax(
type: "get",
url: baseUrl + "/api/Kanban/GetKanbanCarDailies", //后台数据请求地址,
dataType: "json",
success: function(res)
var list = res;
var str1 = "";
for (var i = 0; i < list.length; i++) //遍历
str1 += "<tr >" +
"<td>" + list[i].model + "</td>" + //i代表下标,获取数据中的下标为i的1的值
"<td>" + list[i].workType+'-'+list[i].workOrder + "</td>" +
"<td>" + list[i].startTime + '-' + list[i].endTime + "</td>" +
"<td>" + list[i].badItem + "</td>" +
"<td>" + list[i].estimatedQty + "</td>" +
"<td>" + list[i].badRate*100+'%' + "</td>" +
"<td>" + list[i].causeAnalysis + "</td>" +
"<td>" + list[i].countermeasure + "</td>" +
"<td>" + list[i].personLiable + "</td>" +
"<td>" + list[i].toc + "</td>";
t2.innerHTML = str1; //将数据写入html中
);
);
</script>
效果展示
尚待解决问题:UI颜搭配,UI的自适应问题。
后续解决!
以上是关于看板ajax动态获取后台传来json数据,加载到页面表格中的主要内容,如果未能解决你的问题,请参考以下文章
急!!!!! Ext发送的Ajax在前台怎么接受后台传来的JSON对象(List集合) 修改我的代码也行,好了再加分
《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中