igGrid の 入力検証機能 (igValidator) をご利用頂くと、特定セルの値に応じて入力検証ができます。
var editedCellRowID;
$(function () {
//igGrid
$("#grid").igGrid({
autoGenerateColumns: false,
primaryKey: "ID",
width: "auto",
autoCommit: true,
columns: [
{ headerText: "ID", key: "ID", dataType: "number" },
{ headerText: "数値", key: "Number", dataType: "number" },
{ headerText: "最大値", key: "MaxNumber", dataType: "number" }
],
dataSource: SampleData,
features: [
{
name: "Updating",
editCellStarted: function(evt, ui){
// 対象行IDを取得
editedCellRowID = ui.rowID;
},
columnSettings: [
{
columnKey: "ID",
required: true,
readOnly: true,
},
{
columnKey: "Number",
required: true,
readOnly: false,
editorOptions:{
validatorOptions: {
// カスタム検証用メソッド
custom: function (value, fieldOptions) {
// 入力チェック
// 同行の最大値を取得
var maxValue = $("#grid").igGrid("getCellValue", editedCellRowID, "MaxNumber");
if(maxValue < value){
return false;
}
return true;
},
errorMessage : "MaxNumber より大きい値が設定されています。"
}
}
},
{
columnKey: "MaxNumber",
editorOptions: {
readOnly: true,
disabled: false,
},
},
]
}
]
});
});
実行結果
