У меня есть сетка с handsontable но эта сетка шире экрана. Вот снимок того, как это выглядит:
Как видите, полоса прокрутки у меня есть, потому что сетка слишком широкая.
Пользователь вставляет некоторые данные в эту сетку, и я делаю запрос в ajax для проверки содержимого (обязательное поле, числовое поле, ...). Когда возникает ошибка, я возвращаю число, чтобы узнать, какая ячейка неверна. Я использую этот номер так:
$(cells).eq(jsonobject[item]-11).css("background-color","red");
С помощью функции .eq
я могу выбрать нужную ячейку. Но когда сетка шире экрана, я чувствую, что индекс каждой ячейки перемещается.
Вот замечательный набросок того, что я думаю:
Таким образом, индексы зависят от экрана, но не от сетки.
Как я могу преодолеть эту проблему, пожалуйста?
ИЗМЕНИТЬ:
Код, в котором я объявляю свой hot :
var container = document.getElementById('tab_traitement');
var hotTraitement = new Handsontable(container, {
data: data_traitement,
stretchH: 'all',
minSpareRows: 1,
observeChanges : true,
rowHeaders: false,
colHeaders: false,
contextMenu: true,
height: 550,
... //more options
В ответе ajax я получаю массив значений с некоторыми индексами, где данные неверны, и я пытаюсь покрасить соответствующую ячейку. Итак, я пробовал так:
for(var i=1; i<(data_traitement[0].length);i++ )
{
for(var item in jsonobject)
{
if((item % 2 ) == 0) //Si l'indice est pair, on affiche la couleur
{
hotTraitement.getCell(i,jsonobject[item]-j).css("background-color","red"); //Here, firebug tells me "hotTraitement is undefined"
}else
{
$(cells).eq(jsonobject[item-1]-1).qtip({
content : '<div id="bulle">'+jsonobject[item]+'</div>',
position: {
adjust: {
x: -100
}
},
style: {
classes: 'myCustomClass',
def: false
}
});
}
}
j = j+3; //Just to loop through the rows (I have 3 cells in a row)
}