我们有一个库存页面,我们需要填充70列的值,即70个差异控件类型。基于DropDown更改事件显示隐藏控件
但客户希望基于特定下拉类型选择输入强制性列,并且他也不想查看非强制性控件。他还希望有一个页面映射哪一列是强制性的哪种类型的
例子:
对于学生学院是一个强制性的领域,公司是一个非强制性领域的客户希望看到的学院单独的文本框不是公司文本框 对于员工学院和公司这两个都是强制性的因此,客户希望看到两个文本框。
尝试使用jQuery进行少数控件的性能很好,但对于70个控件来说性能很差。有没有其他办法可以有效地做到这一点。
70个输入控件和70个标签位于我的页面中所有控件的可见性必须基于单个下拉式更改事件进行更改。
Jquery Function;
function GetControlVisiblityByAssetID(assetID) {
var service = getAbsolutePath() + "/Services/CMDBServices.asmx/GetControlVisiblityByAssetID"
$.ajax({
type: "POST",
url: service,
data: "{'assetId' : '" + assetID + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var reference = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
for (var j = 0; j < reference.length; j++) {
ControlName[j] = reference[j].ControlName;
IsVisible[j] = reference[j].IsVisible;
ControlType[j] = reference[j].ControlType;
if (IsVisible[j]) {
$("\"" + GetSelectorType(ControlType[j]) + "\"[id$=" + ControlName[j] + "]").show();
}
else {
$("\"" + GetSelectorType(ControlType[j]) + "\"[id$=" + ControlName[j] + "]").hide();
}
}
}
});
}
function GetSelectorType(ControlType) {
switch (ControlType) {
case 'TextBox':
return "input";
break;
case 'DropDown':
return "select";
break;
case 'lable':
return;
break;
}
}
将jQuery转换为vanilla js – mshsayem
可以分享我什么是Vanila JS。 bcs我没有意识到它 – user1835696
香草JS没有什么特别的;只是原始的javascript:p – mshsayem