当用户向表中添加新值时 - 用于组合框的可观察对象将刷新/重新填充。用户必须打开组合并找到最后输入的项目。而不是强制用户打开组合和搜索 - 如何将新条目作为选定项目?我正在考虑将该条目记忆为所谓的全局变量,并在循环中将其与刷新的可观察列表进行比较,当它匹配时 - 选择此项。但是对淘汰赛没有任何了解。
这是新项目的添加方式:
self.addRotorSNSave = function () {
var inputParams = {};
inputParams.PART_ID = self.currentPumpTest().RotorPartID();
if (inputParams.PART_ID == '--') {
datacontext.errorNotice("Rotor PART_ID is not selected!");
return;
}
inputParams.pumpModelDef = self.currentPumpTest().PumpModelDef();
inputParams.SerialNumber = self.addRotorSN();
inputParams.pumpPart = self.currentPumpTest().RotorPartID(); inputParams.CompPart = inputParams.PART_ID == datacontext.PART_ID_UNKNOWN_VALUE ? self.addRotorCompPart() : null;
datacontext.isRotorExists(inputParams, function (exists) {
if (exists) {
datacontext.errorNotice("Such serial number already exists in the database!");
}
else {
datacontext.insertDirtyRotor(inputParams, function (data) {
if (data > 0) {
$.modal.close();
datacontext.successNotice("SN has been added");
self.loadRotorsSN(self.currentPumpTest().PumpModelDef(), self.currentPumpTest().RotorPartID(), false);
}
else {
datacontext.errorNotice("Error while adding SN. Please contact a support team.");
}
});
}
});
}
这是组合列表的创建方式
self.loadRotorsSN = function (pumpModelDef, rotorPart, useCache) {
if (useCache === undefined) { useCache = true; };
var chacheIdx = "" + pumpModelDef + "_" + rotorPart;
if (useCache != true || self.RotorsSNCache[chacheIdx] == null) {
datacontext.loadRotorsSN(pumpModelDef, rotorPart, function (data) {
data.unshift({ Id: 0, Def: datacontext.DEFAULT_DEF });
self.rotorsSN(data);
self.RotorsSNCache[chacheIdx] = data;
});
}
else {
self.rotorsSN(self.RotorsSNCache[chacheIdx]);
}
}
我想在此行datacontext.successNotice(“SN已添加”)之后将inputParams.SerialNumber保存到变量中; 而不是以下代码创建一个循环来比较列表中的变量和项目:
data.unshift({ Id: 0, Def: datacontext.DEFAULT_DEF });
我认为到目前为止它根本没有设定选定值。