平时我们经常会碰见一些表格的上方有几个输入框的情况,并且输入框里面的数据是表格数据中的第一条数据,然后一些表格的数据在控制器经过封装之后无法直接赋值给输入框了,所以需要重新在控制器再写一个方法,用来回填输入框里面的数据!
控制器部分:
List list1 = new List();
----先声明一个空的字符串列表,用来存放接下来查询出来的数据!
var Famous = myModels.B_Famous.OrderByDescending(S => S.FamousID).ToList();
list1.Add(Famous[0].FamousName);
----查询出你所需要的数据,因为我在表格查询的时候使用的倒序的排序方法,所以这里的排序方法也要相对应的使用倒序的排序方法。然后就是给上面声明的空的字符串列表赋值,注意这里赋值是赋具体的某一个字段的值(Famous[0].)。
var Provision = myModels.B_Provision.OrderByDescending(S => S.ProvisionID).ToList();
list1.Add(Provision[0].ProvisionCompany);
list1.Add(Provision[0].Contact);
list1.Add(Provision[0].ProvisAddress);
list1.Add(Provision[0].ProvPhone);
list1.Add(Provision[0].Cellphone);
list1.Add(Provision[0].Facsimile);
----如果你需要查询出来的数据中的某一条数据,但是这条数据中有很多的字段的话也是用上面的方法给字符串列表一个个添加某个字段的值,因为这里声明的是字符串列表,如果添加的是一整条数据的话控制器是无法执行的,到时候我们在取值的时候也比较麻烦,
var Type = (from tbVip in myModels.S_VipType
join tbDisCount in myModels.R_Discount on tbVip.levelID equals tbDisCount.levelID
orderby tbVip.levelID descending
select new { tbVip.level, tbDisCount.Discount }).ToList();
list1.Add(Type[0].level);
list1.Add(Type[0].Discount.ToString());
----如果需要不同表中的某个字段的值的话可以使用多表联查的方式,当然不管使用什么方法查询,你在表格查询的时候使用了倒序,那么在这里查询的时候也要使用倒序,不然输入框的数据无法要表格查询中的第一条数据对应,接下来在查询的时候 new 一下想要查询的字段就可以了,查询出来之后就把数据添加回字符串列表中。
return Json(list1, JsonRequestBehavior.AllowGet);
----再一个return 把上面的字符串列表返回回页面!
Jquery(页面)部分:
首先用一个post请求,写入请求的控制器的方法的路径,再写一个function回调函数,里面的 returnJson 来收返回的数据(这里返回的是控制器中的字符串列表list1)。
再然后就是一些基础的JQuery的写法—通过ID获取到需要赋值的输入框,设置它的val值,至于要设置的值由实际情况决定,当然也可以先用一个控制台输出一下这个返回值,再相对应地找到你需要的数据,并一个个地给它赋值。
因为在控制器中返回回的是字符串列表,所以在页面这边接收到的数据是一个数组的形式,需要通过索引值来获取到里面的数据!
$.post("/InformationManagement/BaseInformation/Selectasdas", function (returnJson) {
$("#brandinput").val(returnJson[0]);
$("#shengchaninput").val(returnJson[1]);
$("#jijieinput").val(returnJson[2]);
$("#yansebianhao").val(returnJson[3]);
$("#yansemingcheng").val(returnJson[4]);
$("#SizeNum").val(returnJson[5]);
$("#SizeName").val(returnJson[6]);
$("#Numbers").val(returnJson[7]);
$("#gongyingshangmingcheng").val(returnJson[7]);
});
输入框赋完值后,点击了表格中的数据来再次进行回填数据:
//监听表格行单击事件
layuiTable.on(‘row(tabbrand)’, function (obj) {
var data = obj.data;//获取点击行数据
//标注选中行样式
obj.tr.addClass(“layui-table-click”).siblings().removeClass(“layui-table-click”);
//选中行,勾选复选框
//obj.tr.find(“div.layui-unselect.layui-form-checkbox”)[0].click();
$("#brandinput").val(obj.data.FamousName);
});