Это сводило меня с ума на выходные, и хотя я нашел то, что кажется приемлемым решением, мой вопрос заключается в том, есть ли что-то фундаментальное в использовании Dojo / Dijit, которое я пропускаю.
Вот проблема: всякий раз, когда я создаю страницу, на которой dgrid использует хранилище JsonRest и находится в скрытой вкладке TabContainer (та, которая изначально не выбрана), я получаю DOMExceptions и несколько облажался дгрид. В частности, dgrid имеет большое пустое пространство под последней строкой данных, а прокрутка к нижней или верхней части данных dgrid вызывает дополнительные исключения DOMExceptions.
Если я щелкаю один из заголовков столбцов для сортировки dgrid, он сбрасывает его макет и работает нормально. Если dgrid инициализируется на видимой части страницы вместо невыбранной вкладки, это нормально. Если я использую хранилище памяти вместо JsonRest, все в порядке (даже если dgrid инициализируется в скрытой вкладке). Если dgrid инициализируется на скрытой вкладке, но без хранилища, это нормально (но пусто).
Основываясь на доказательствах, я догадался, что проблема как-то связана с тем фактом, что запрос JsonRest занимает время, и по какой-то причине это нарушает работу dgrid при его инициализации. Мое решение состояло в том, чтобы создать dgrid без хранилища, а затем установить хранилище, когда будет показана вкладка, содержащая dgrid. Это кажется глупым, хотя. Я должен быть в состоянии создать dgrid с магазином и не должен возиться с ним внешне.
Итак, является ли мое несколько хакерское решение правильным (или, по крайней мере, разумным) способом для инициализации скрытой dgrid с данными, предоставленными сервером, или есть что-то в настройке TabContainer + dgrid + JsonRest, которую я ' м отсутствует?