JQuery部分:
获取到当前的类别的名称RegimenName,用一个post请求去请求控制器的方法,把参数RegimenName传到控制器中去,在用一个回调函数来编写请求完成之后的操作!请求完成之后就重载表格,表格重载的方法是可以根据实际情况而定,让表格的列隐藏的主要的操作在表格加载完成之后的渲染done中。
For循环上面从控制器中返回的Date值,然后通过类名获取到layui的表格,如果当前的表格的数量过多,可以把(".layui−table−box")刚换为(".layui-table-box")刚换为(".layui−table−box")刚换为("[lay-id=’(当前表格的id)’] “),
然后在通过find方法去匹配(”[data-field=’" + Date[i] + “’]”)的类,注意Date[i]的值要与表头的field相对应。
然后设置它的display值为none或者用这种方法(.addClass(‘layui-hide’)),就可以把表格中的这一列隐藏,显示的操作则反之,就是把display值设置为block或者把(.removeClass(‘layui-hide’));
var RegimenName = $("#IsRegimen").val();
$.post("/DayWorkManagement/PurchaseStocks/SelectSizeNames", { RegimenName: RegimenName }, function (Date) {
tabInsetPurchase.reload({
url: '/DayWorkManagement/PurchaseStocks/SelectColorSize',
where: { Fums: Fums },
page: { curr: 1 },
done: function (res) {
for (var i = 0; i < Date.length; i++) {
$(".layui-table-box").find("[data-field='" + Date[i] + "']").css({ "display": "none", "width": "0px" });
}
for (var i = 0; i < res.data.length; i++) {
int = res.data[i].ID;
CommIDS += res.data[i].ID + ';';
}
}
});
});
MVC控制器:
编写一个方法并且接收从页面传过来的参数RegimenName,通过类别名称查出对应的数据,因为我这里表格不是直接关联,所以需要通过分开两步才能查询出来需要的数据,然后声明一个空的字符串列表,再要一个for循环到查询出来的数据进行分割、处理,把处理之后的数据放入到字符串列表中!
public ActionResult SelectSizeNames(string RegimenName){
var list = myModels.R_Regimentation.Where(S => S.RegimenName.Trim() == RegimenName.Trim()).Select(S => S.SizeGroupID).Single();
var size = (from tbSizeDeRe in myModels.B_SizeDeRelut
join tbSize in myModels.B_Size on tbSizeDeRe.SizeID equals tbSize.SizeID
where tbSizeDeRe.SizeGroupID != list
select new
{
Size = tbSize.Size.Trim()
}).ToList();
List<string> Size = new List<string>();
for (int i = 0; i < size.Count(); i++)
{
var Name = size[i].ToString();
string[] list2 = Name.Split('=');
Size.Add((list2[1].Substring(0, list2[1].Length - 1)).Trim());
}
for (int i = 0; i < Size.Count(); i++)
{
var Name = Size[i];
if (Name == "38"){Name = "SB";}
if (Name == "39"){Name = "SJ";}
if (Name == "40"){Name = "SS";}
if (Name == "41"){Name = "SY";}
if (Name == "42"){Name = "SE";}
if (Name == "70A"){Name = "A";}
if (Name == "70B"){Name = "B";}
if (Name == "70C"){Name = "C";}
if (Name == "70D"){Name = "D";}
if (Name == "70E"){Name = "E";}
Size[i] = Name;
}
return Json(Size, JsonRequestBehavior.AllowGet);
}
再然后循环字符串列表,把里面的数据一个个地提取出来,再一个个地把里面的数据的名称替换为页面中的表格的表头的field值,方便在页面的使用的时候直接用,不需要再对返回的数据再进行下一步操作,然后再把处理后的字符串类别返回回页面当中!