權,附加屏幕上我有下面的代碼:
/// <reference path="~/GeneratedArtifacts/viewModel.js" />
var cri;
var hig;
var med;
var low;
myapp.AddEditAlarm.created = function (screen) {
//GET THE VALUES ON THE ADD/EDIT SCREEN CREATION
cri = screen.Alarm.Critical;
hig = screen.Alarm.High;
med = screen.Alarm.Medium;
low = screen.Alarm.Low;
};
myapp.AddEditAlarm.Save_execute = function (screen) {
if (screen.Alarm.AlarmStatus == null) {
//NEW ALARM STATUS
screen.Alarm.AlarmStatus = 0;
//WHATEVER YOU WANT TO SET IT AS HERE
}
else {
//HAS IT CHANGED?
if (screen.Alarm.Critical == cri) {
//VALUE CHANGED
screen.Alarm.AlarmStatus = screen.Alarm.Critical;
}
else if (screen.Alarm.High == hig) {
//VALUE CHANGED
screen.Alarm.AlarmStatus = screen.Alarm.High;
}
else if (screen.Alarm.Medium == med) {
//VALUE CHANGED
screen.Alarm.AlarmStatus = screen.Alarm.Medium;
}
else if (screen.Alarm.Low == low) {
//VALUE CHANGED
screen.Alarm.AlarmStatus = screen.Alarm.Low;
}
}
myapp.commitChanges();
};
我宣佈4個變量,是在兩個自定義的保存按鈕,創建的事件進行訪問。在屏幕創建時,我將這4個變量設置爲4個鬧鐘的當前值。
如果這些改變,那麼AlarmStatus的值會改變。目前我已經把它放在if,else if語句中,僅用於測試目的。現在,當您單擊保存時,如果沒有更改,顏色不會更改。如果任何4個報警值,然後更改數據綁定將視圖屏幕上使用下面的代碼被擊中:
myapp.ViewAlarm.AlarmStatus_postRender = function (element, contentItem) {
contentItem.dataBind("value", function (value) {
var critical = contentItem.screen.Alarm.Critical;
var high = contentItem.screen.Alarm.High;
var medium = contentItem.screen.Alarm.Medium;
var low = contentItem.screen.Alarm.Low;
element.style.fontWeight = 'bold';
element.style.fontSize = "18px";
if (critical == 50 || high == 50 || medium == 50 || low == 50) {
element.style.background = "RED"; //CRITICAL
//element.style.opacity = 0.4;
element.style.color = "white";
element.innerText = "Critical";
}
else if (contentItem.value == 2) {
element.style.background = "ORANGE"; //HIGH
//element.style.opacity = 0.4;
element.style.color = "black";
element.innerText = "High";
}
else if (contentItem.value == 3) {
element.style.background = "YELLOW"; //MEDIUM
//element.style.opacity = 0.4;
element.style.color = "black";
element.innerText = "Medium";
}
else if (contentItem.value == 4) {
element.style.background = "GREEN"; //LOW
// element.style.opacity = 0.4;
element.style.color = "white";
element.innerText = "Low";
}
else {
//WAIT FOR OPTION
}
});
};
現在我已經設置,如果任何一個值,在第一個if語句等於50,然後設置警報狀態爲CRITICAL。現在我已經把其他人當作2,3,4了。我不知道你是否想要一個範圍,或者只同時使用4個報警值中的一個,但是如果任何一個值發生變化,這個方法就可以工作。
在你的條件下,你有contentItem.value。我需要測試四個int屬性(Critical,High,Medium,Low)的條件。例如:如果我有一個值爲「50」的Critical,我需要將標籤更改爲一種顏色。如果高和中都是x值,則需要使用另一種顏色。如何去測試這些條件?如果「screen.findContentItem」對象對我可用,我會使用它,但它不是。 – HiTech
更新 - 我打算刪除我的評論,但我認爲這對其他人有幫助。爲了訪問與contentItem相同的數據集中的其他數據。你可以使用「contentItem.parent.data.propertyName」 – HiTech
contentItem.value指的是報警值,所以如果你將它設置爲50,那麼你會在上面寫(contentItem.value == 50)。這4個值是指一個文本框還是4個單獨的文本框?如果有4個文本框,則會觸發故障標籤?我將在明天與這場比賽取得聯繫,並回到你身邊,即時在英國,讓你知道GMT – Crezzer7