根据类别动态隐藏和显示列

JQuery部分:
获取到当前的类别的名称RegimenName,用一个post请求去请求控制器的方法,把参数RegimenName传到控制器中去,在用一个回调函数来编写请求完成之后的操作!请求完成之后就重载表格,表格重载的方法是可以根据实际情况而定,让表格的列隐藏的主要的操作在表格加载完成之后的渲染done中。
For循环上面从控制器中返回的Date值,然后通过类名获取到layui的表格,如果当前的表格的数量过多,可以把(".layui−table−box")刚换为(".layui-table-box")刚换为(".layuitablebox")("[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值,方便在页面的使用的时候直接用,不需要再对返回的数据再进行下一步操作,然后再把处理后的字符串类别返回回页面当中!

### 如何在泛微OA系统中隐藏明细表的指定 #### 设置主表字段用于控制显示逻辑 为了实现动态隐藏显示明细表中的特定,在主表中创建一个字段作为开关,该字段可以是一个布尔型或者枚举类型的下拉框。此字段的作用在于提供一种机制来决定明细表中哪一应该被隐藏或是展示。 例如,如果希望基于某个条件来切换`附件`这一栏目的可见状态,则可以在主表里加入名为“是否隐藏”的字段[^2]。 #### 给目标明细表项添加CSS类名 对于想要实施隐藏/显示行为的具体明细,需为其设定唯一的CSS `class`属性以便后续通过JavaScript或其他前端技术手段识别并操作这些元素。假设现在要处理的是名称分别为`bzxx``num`两个字段的情况,那么就应当赋予它们相应的样式类别标签如`ptoc`等[^1]。 ```html <td class="ptoc">...</td> ``` #### 编写脚本以响应主表变化事件 编写一段客户端脚本来监听上述提到的那个用来触发显示规则改变的主表字段的变化情况。当检测到用户选择了不同的选项时,依据所选值判断是否需要调整关联明细项目的外观特性——即执行显示还是隐藏的动作: ```javascript // 假设使用jQuery库简化DOM操作 $(document).ready(function(){ $('#mainTable .switchField').change(function(){ // switchField代表那个起作用的选择器 var shouldHide = $(this).val() === 'true'; // 判断当前选择的状态 $('.detailRow td.ptoc').each(function(index, element){ if(shouldHide){ $(element).hide(); // 隐藏符合条件的单元格 }else{ $(element).show(); // 显示之前可能已被隐藏掉的内容 } }); }); }); ``` 以上方法展示了怎样利用HTML结构配合简单的JavaScript代码片段完成对泛微OA平台内明细表格部分可视性的灵活调控功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值