Я забираю чужой проект и сталкиваюсь с ошибкой ТОЛЬКО В ИНТЕРНЕТ-ЭКСПЛОРЕРЕ, когда пытаюсь щелкнуть строку в GridPanel. Я могу получить данные, которые правильно отображаются в таблице, но когда я нажимаю на строку, желая получить индекс строки для выполнения некоторых других вещей, я получаю «ноль» для индекса строки в IE 7 и 8. Нет проблем в FF , Chrome, Safari.
Сообщение: «0» является нулем или не является объектом
Линия: 10
Char: 1601
Код: 0
URI: http://mysite.com/Proj/js/ext/adapter/yui/ext-yui-adapter.js
Сообщение: «0» является нулем или не является объектом
Линия: 10
Char: 1601
Код: 0
URI: http://mysite.com/Proj/js/ext/adapter/yui/ext-yui-adapter.js
Это код для генерации значений в gridPanel:
grid.getEl().mask("Searching for codes, please wait...", true);
AsyncCallback<LinkedHashMap<Long, Map>> acb = new AsyncCallback<LinkedHashMap<Long, Map>>() {
public void onFailure(Throwable caught) {
grid.getEl().unmask();
MessageBox.alert("Failed :" + caught.getMessage());
}
public void onSuccess(LinkedHashMap<Long, Map> result) {
Set key = result.entrySet();
Iterator it = key.iterator();
grid.setVisible(true);
while (it.hasNext()) {
Map.Entry en = (Map.Entry) it.next();
Map m = (Map) en.getValue();
String code = m.get("code").toString();
try {
Date activationDate = new Date(Long.parseLong(m.get("activationtime").toString()));
Date deactivationDate = new Date(Long.parseLong(m.get("deactivationtime").toString()));
String actDateF = DateTimeFormat.getFormat("dd-MM-yyyy KK:mm:ss").format(activationDate);
String deactDateF = DateTimeFormat.getFormat("dd-MM-yyyy KK:mm:ss").format(deactivationDate);
Object[] obj = new Object[]{
actDateF,
deactDateF,
code
};
Record record = recordDef.createRecord(obj);
grid.getStore().add(record);
} catch (Exception e) {
codeNotReading.add(code);
codeNotReading.add(e.getMessage());
}
}
grid.getView().refresh();
grid.getEl().unmask();
if (codeNotReading.size() > 0) {
MessageBox.alert(" \n Following code(s) cann't be added. : " + codeNotReading.toString());
}
}
};
и код для получения индекса строки:
grid.addGridCellListener(new GridCellListenerAdapter() {
@Override
public void onCellDblClick(GridPanel grid, int rowIndex, int colIndex, EventObject e) {
MessageBox.alert("Row "+rowIndex);
}
});