|
Вопрос # 4 530/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
мне очень требуется ваша помощь!!!
внутри дельфи написала код 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 (статус: Посетитель)
Вопрос отправлен: 23 августа 2010, 20:38
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 24 августа 2010, 21:36; участников в обсуждении: 4.
|
Вадим К (статус: Академик), 23 августа 2010, 20:51 [#1]:
Вы с делфи генерируете html, который отрисует таблицу с даными и хотите, что бы при клике по ячейке в броузере, она ставала редактируемой?
тогда Вам нужно используя свойства вида innerHTML (кажеться так оно называется) сделать вставку туда правильного кода, что то вида
<input type=text>значение ячейки</input>
Ну и конечно как то идентифицировать ячейки.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Lefleur (статус: Посетитель), 23 августа 2010, 21:10 [#2]:
да, я поняла что это так и будет, но синтаксис.... я начинающий программер! плз, можете в примере показать...спасибо вам..
|
|
Вадим К (статус: Академик), 23 августа 2010, 21:35 [#3]:
идеей помочь могу, синтаксисом - сложнее, так как это не моя парафия - жаваскрипты.
В целом, идея такая. при выводе таблицы, нужным ячейкам (где нужно будет делать редактирование) даем уникальные имена, например вида rec_NNN, где NNN - это автоинкрементное поле или какой то ключ таблицы, если это будет просто номер таблицы - будет сложнее в будущем). имя элемента - это свойство id, если я не ошибаюсь.
Теперь процедуре перехода в состояние редактирования не нужно знать текущее состояние ячейки - она ее может узнать и так.
Правда наверно не достаточно показывать только поле ввода, наверное ещё и кнопку добавить нужно.
Код кнопки, сделав простую проверку, может сделать двояко
- отправив данные на сервер, перегрузить таблицу (это просто, но...)
- отправив ajax запрос на сервер, просто перейти в состояние просмотра ячейки.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
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 (статус: Посетитель), 24 августа 2010, 06:09 [#6]:
таблица небольшая.
plus процедура идентична Responce.Content
|
|
bugmenot (статус: 3-ий класс), 24 августа 2010, 06:35 [#7]:
plus я понял что велосипед, гораздо интереснее предполагаемый код edit(), и всё остальное не попавшее в текст вопроса (sl?)
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
24 августа 2010, 10:51: Вопрос перемещён из тематического раздела Разные вопросы в раздел Delphi » Прочее модератором Ерёмин А.А.
|
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 (статус: Посетитель), 24 августа 2010, 21:36 [#9]:
еще,код внутри Javascript может и не правильный....(
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|