2012-10-11 2 views
0

Я использую SlickGrid и хочу добавить динамически класс css в строку или ячейку в строке.динамически добавлять класс css в строку

Этот подход добавляет класс highlight к колонке Name в строке 0:

grid.setCellCssStyles("highlight", { 
    0 : { 
     Name: "highlight", 
     } 
}); 

В то время как я хочу добиться, чтобы установить класс CSS к строке, определенной в другой переменной. Я попробовал его, как показано ниже, но это не работает:

row = 0; 
grid.setCellCssStyles("highlight", { 
    row : { 
     Name: "highlight", 
     } 
}); 
+0

Вы используете jQuery? –

+0

есть. Но я думаю, что я не могу выбрать строки с jquery, поскольку у них нет уникального набора идентификаторов. –

+0

Вы знаете номер столбца и номер строки, не так ли? –

ответ

2

Try:

var row=0; 
var obj={}; 
obj[row]={Name:"highlight"}; 
grid.setCellCssStyles("highlight",obj); 

Пояснение: Когда JS читает «строку: ...» в качестве ключевой пары значений, он создает свойство, называемое строкой на объекте, и присваивает это значение вместо оценки строки переменной и использования ее значения в качестве ключа. Это связано с синтаксисом JSON, и я не знаю, как это обойти. Однако объекты javascript также доступны как ассоциативные массивы, что означает, что вы можете выполнить трюк, который я сделал выше: установить свойство (оценка строки) obj на любое требуемое значение.

+0

Как это отличается от буквальной нотации? –

+0

Я не знаю, но это работает! вау .. –

+0

Спасибо Асад! Не могли бы вы объяснить, почему это работает, и мой первый подход не сделал !? –

Смежные вопросы