Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 530

Раздел: Delphi » Прочее
/ вопрос открыт /

Приветствую, уважаемые эксперты!
мне очень требуется ваша помощь!!!
внутри дельфи написала код java script
plus('<script language="java script">;
plus('function edit(p,n,m){');
....

и вызов этой функции
while not OracleDataSet.EOF do begin
plus('<tr>');
for i:=0 to OracleDataSet.FieldCount-1 do begin
plus('<td onclick=edit(" '+sl'+'IntoStr(i)'+'Intostr(OracleDataSet.RecNo)+' ")>');
.....

edit должен сделать ячейку таблицы редактируемой, как вы думаете? надо закончить функцию... помогите..

Lefleur Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Lefleur (статус: Посетитель)
Вопрос отправлен: 23 августа 2010, 20:38
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 24 августа 2010, 21:36; участников в обсуждении: 4.
Вадим К

Вадим К (статус: Академик), 23 августа 2010, 20:51 [#1]:

Вы с делфи генерируете html, который отрисует таблицу с даными и хотите, что бы при клике по ячейке в броузере, она ставала редактируемой?
тогда Вам нужно используя свойства вида innerHTML (кажеться так оно называется) сделать вставку туда правильного кода, что то вида
<input type=text>значение ячейки</input>
Ну и конечно как то идентифицировать ячейки.
Галочка "подтверждения прочтения" - вселенское зло.
Lefleur

Lefleur (статус: Посетитель), 23 августа 2010, 21:10 [#2]:

да, я поняла что это так и будет, но синтаксис.... я начинающий программер! плз, можете в примере показать...спасибо вам..
Вадим К

Вадим К (статус: Академик), 23 августа 2010, 21:35 [#3]:

идеей помочь могу, синтаксисом - сложнее, так как это не моя парафия - жаваскрипты.

В целом, идея такая. при выводе таблицы, нужным ячейкам (где нужно будет делать редактирование) даем уникальные имена, например вида rec_NNN, где NNN - это автоинкрементное поле или какой то ключ таблицы, если это будет просто номер таблицы - будет сложнее в будущем). имя элемента - это свойство id, если я не ошибаюсь.

Теперь процедуре перехода в состояние редактирования не нужно знать текущее состояние ячейки - она ее может узнать и так.
Правда наверно не достаточно показывать только поле ввода, наверное ещё и кнопку добавить нужно.
Код кнопки, сделав простую проверку, может сделать двояко
- отправив данные на сервер, перегрузить таблицу (это просто, но...)
- отправив ajax запрос на сервер, просто перейти в состояние просмотра ячейки.
Галочка "подтверждения прочтения" - вселенское зло.
bugmenot

bugmenot (статус: 3-ий класс), 24 августа 2010, 05:45 [#4]:

>>edit должен сделать ячейку таблицы редактируемой, как вы думаете?
>> plus('function edit(p,n,m){');
>> ....
Не видя кода мы ничего не думаем.

>> <script language="java script"
«JavaScript», кстати
виконання програми розпочинається з того самого мiсця, де призупинилося.

Егор

Егор (статус: 10-ый класс), 24 августа 2010, 05:49 [#5]:

таблица большая будет? и потом как изменённые данные обратно на сервер передавать собираемся?
это вопросы для уточнения, чтобы подобрать наиболее оптимальное решение.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Lefleur

Lefleur (статус: Посетитель), 24 августа 2010, 06:09 [#6]:

таблица небольшая.

plus процедура идентична Responce.Content
bugmenot

bugmenot (статус: 3-ий класс), 24 августа 2010, 06:35 [#7]:

plus я понял что велосипед, гораздо интереснее предполагаемый код edit(), и всё остальное не попавшее в текст вопроса (sl?)
виконання програми розпочинається з того самого мiсця, де призупинилося.

24 августа 2010, 10:51: Вопрос перемещён из тематического раздела Разные вопросы в раздел Delphi » Прочее модератором Ерёмин А.А.

Lefleur

Lefleur (статус: Посетитель), 24 августа 2010, 21:34 [#8]:

plus ('<script language="JavaScript">');
plus (' function edit(obj) {');
plus ('obj = document.getElementById('+id+');');
plus ('obj.innerHtml="<input type=text size=50 value=''>";');
plus (' ');
plus ('}');
plus('</script>');


==========================

while NOT ods.EOF do begin
plus('<tr id="'+id+'">');
for i:=0 to ods.FieldCount-1 do BEGIN
plus('<td onclick=edit("''")>'#10);
plus(VarToStr(ods.Fields.Fields[i].AsVariant));
plus('</td>');
end;
plus('</tr>');
============================

что надо написать внутри onclick=edit()???

пока не известно как на сервер данные передавать..щас задача как сделать ячейку редактируемой..никакой кнопки не надо,так как когда кликаем делаем onclick ,а это событие стоит внутри <td>!!

sl - переменная кот определяет имя таблицы, i-номер строки, ods.RecNo- тут ods-TOracleDataSet,а вместе с RecNo номер записи.вот так вот!

жду ваших предложений, уважаемые эксперты!
Lefleur

Lefleur (статус: Посетитель), 24 августа 2010, 21:36 [#9]:

еще,код внутри Javascript может и не правильный....(

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:47
Выполнено за 0.02 сек.