LINUX.ORG.RU

ajax-таблички в html


0

0

Последнее время пишу много всяких оперденей сталкиваюсь с желанием делать ajax-таблички (типа jqGrid).

Не могу найти ничего путного.

Вопрос в том что мне нужно:
1. Отображение данных из ajax
2. «Классы» строк, то есть «заявка покупателя», «предложение поставщика» и тд
3. Редактирование, причём разное в зависимости от «класса» строки.
4. (Опциональная) вставка строк
5. Изменение размеров столбцов (с запоминанием в базу)
и наверное ещё много чего.

Если кто знает - поделитесь.

Если не знает но хочет написать - давайте писать вместе ))

★★★

Это можно оформить в качестве бекэнда к моему тулкиту

1. Отображение данных из ajax

А какая разница, откуда данные подгружены? А если js выключен?

2. «Классы» строк, то есть «заявка покупателя», «предложение поставщика» и тд

И чем они отличаются? Провайдером автокомплита? Кнопкой с хистори (комбобокс)?

3. Редактирование, причём разное в зависимости от «класса» строки.

Это как? Проверка на регексп? Математические выражения? Или быть может нужны какие-то особенности виджетов, скажем раскрывающиеся списки в разные стороны с разноцветной подсветкой введенных букв? (такое есть в «бизнес-пак» при вводе длинных номеров)

4. (Опциональная) вставка строк

Куда вставка?

5. Изменение размеров столбцов (с запоминанием в базу)

А как же HIG и пользовательские предпочтения? Базу могут открывать на различных устройствах отображения, размеры могут быть неудовлетворительны для части пользователей.

simple_best_world_web_master
()
Ответ на: комментарий от simple_best_world_web_master

1. Я пишу веб-приложения а не веб-сайты и могу диктовать условия работы (потому что приложением будет пользоваться 50 человек а не 100500).
2. Что-то типа того.
То есть, например, у строчки «заказ» есть «ожидаемая цена», но нет «цена поставки» и «прибыль»
у строчки «предложение поставщика» есть «цена поставки»
у строчки «предложение менеджера» есть «цена продажи» и калькулируемая (не редактируемая) прибыль == «цена продажи-цена поставки»*количество, где цена поставки берётся из выбранного при создании строки предложения поставщика.
3. Ну соответственно в зависимости от класса строки поля могут быть редактируемыми или не редактируемыми. Соответственно нужна будет возможность кастомных виджетов, потому что я полагаю что стандартных может не хватить.
4. Вставка это значит по кнопке «вставить» оно вставляется в html-е, а потом при кнопке сохранить вызывается ajax сохранения.
5. Ну это как раз HIG и есть - у каждого пользователя свои настройки относительно ширины столбцов, количества строк на страницу и тд.

vahvarh ★★★
() автор топика
Ответ на: комментарий от vahvarh

> Я пишу веб-приложения а не веб-сайты и могу диктовать условия работы (потому что приложением будет пользоваться 50 человек а не 100500).

Тогда можно взять Flex или OpenLaszlo и делать все в них, это тебе и веб, это тебе и куча контролов, это тебе и быстрая реализация

2. Что-то типа того. То есть, например, у строчки «заказ» есть «ожидаемая цена», но нет «цена поставки» и «прибыль»

у строчки «предложение поставщика» есть «цена поставки» у строчки «предложение менеджера» есть «цена продажи» и калькулируемая (не редактируемая) прибыль == «цена продажи-цена поставки»*количество, где цена поставки берётся из выбранного при создании строки предложения поставщика.

И зачем все это городить в одну кучу? Заносишь все данные в отдельные поля, добавляешь expression eval, дабы пользователь сам себе калькулятор мог сделать (как в экселе) и все довольны. А то завтра у тебя будет поле «надежность поставщика» и калькулятор «суммы риска», вычисляемый из цены и надежности - эдак залюбишься новые классы добавлять.

3. Ну соответственно в зависимости от класса строки поля могут быть редактируемыми или не редактируемыми. Соответственно нужна будет возможность кастомных виджетов, потому что я полагаю что стандартных может не хватить.

Какие именно свойства виджетов могут быть нужны? disabled/enabled/readonly есть в стандартных

4. Вставка это значит по кнопке «вставить» оно вставляется в html-е, а потом при кнопке сохранить вызывается ajax сохранения.

рисуем кнопку «+», которая копирует tr-элемент таблицы, рисуем кнопку с дискетой, вызывающая submit() формы - в чем проблема? Дальше работа серверной стороны.

5. Ну это как раз HIG и есть - у каждого пользователя свои настройки относительно ширины столбцов, количества строк на страницу и тд.

Ты не говорил, что сохранение будет по-пользовательским, но и это не решение: 1 пользователь может выходить с разных компьютеров, опять провал

simple_best_world_web_master
()
Ответ на: комментарий от simple_best_world_web_master

1. не, flash не хочу. с ним потом проблемы будут это 100%.
2. не совсем понял.
3. я бы хотел несколько хитрее, опять же, возможность вставить какую нибудь неведомую фигню написанную на javascript в ячейку. скажем так, унаследованную от QWidget :)
4. ну просто не хочется это делать руками, средствами html. хочется иметь удобный интерфейс для быстрой разработки таких плюшек.

vahvarh ★★★
() автор топика
Ответ на: комментарий от simple_best_world_web_master

simple_best_world_web_master> но и это не решение: 1 пользователь может выходить с разных компьютеров, опять провал

У тебя совсем плохо с головой? Пользователь это не IP, a login-username. Ты на ЛОРе с разных компов по-разному отображаешься?

sdio ★★★★★
()
Ответ на: комментарий от vahvarh

1. У него есть единая VM, которая работает одинаково под всеми платформами, это тебе не JS с его миллионом реализаций.

И да, открой для себя mxml

2. Я имел в виду, что можно сделать ввод формул как в экселе, дабы оператор сам считал что ему нужно из имеющихся значений.

3. Какое отношение QWidget имеет к html/js?

4. Быстрее самому сделать

simple_best_world_web_master
()
Ответ на: комментарий от sdio

> У тебя совсем плохо с головой? Пользователь это не IP, a login-username. Ты на ЛОРе с разных компов по-разному отображаешься?

Если я подвигаю ширину столбцов, то она для моего логина сохранится в базе, и если я сейчас сижу за монитором в 2048 пикселей шириной, то подогнав значения «как мне удобно» я испытаю проблемы на мониторе в 1024 пикселя шириной, не говоря уже о всяких мобильных устройствах. Про IP тут и речи не шло.

simple_best_world_web_master
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.