Hello,
My grid is an inline editing grid, I started based on this example :
https://paramquery.com/demos/editing_customThe 1st column is an article code (editable), the 2nd column being the article description (read-only)
1st column being an autocomplete field based on a PHP JSON mysql query, this column works as expected but when i get the result i would like to set the description cell to the right value.
How can i achieve this ? where is it better to set the column in the validations or in the autocomplete editor definition ? I have put the code fragment below.
Thanks so much,
FX
var autoCompleteEditor = function (ui) {
var $inp = ui.$cell.find("input");
//initialize the editor
$inp.autocomplete({
appendTo: ui.$cell, //for grid in maximized state.
source: function (query, result) {
$.ajax( {
url: '/getArticlesCodes.php',
cache: false,
async: false,
data:'art_code=' + query.term,
dataType:"json",
type:"POST",
success: function (data) {
result ( $.map( data, function (item) {
return { art_code: item.art_code,
art_desc: item.art_desc,
label: item.art_code,
value: item.art_code
};
}
)
);
}
} );
},
selectItem: { on: true }, //custom option
highlightText: { on: true }, //custom option
minLength: 0
}).focus(function () {
//open the autocomplete upon focus
$(this).autocomplete("search", "");
});
}
var colM = [
{ title: "Article Code", dataIndx: "art_code", width: 50,
editor: {
type: "textbox",
init: autoCompleteEditor
},
validations: [
{ type: 'minLen', value: 1, msg: "Required" },
{ type: function (ui) {
var value = ui.value,
_found = false;
$.ajax({
url: '/checkArticleCode.php',
data: 'art_code=' + value ,
async: false,
type:"POST",
success: function (response) {
if (response == "true") {
_found = true;
// set description here ?
}
else {
// empty description here ?
}
}
});
if (!_found) {
ui.msg = value + " not found in list";
return false;
}
}
}
]
},
{ title: "Description", width: 100, dataIndx: "art_desc", editable: false }
];