22.01.2007, 11:56 | #1 |
MCTS
|
MenuItem у контрола Web-формы
Добрый день!
Возник вопрос: у контрола на Web-форме можно задать значение свйства MenuItemName, и тогда поле на форме превращается в ссылку, по которой открывается заданный пункт меню. Имеется ли возможность перекрыть выполнение данного действия, или хотя бы задать параметры вызова MenuItem'а? Заранее спасибо! Последний раз редактировалось cherv; 22.01.2007 в 12:03. |
|
22.01.2007, 13:48 | #2 |
Member
|
Web работает не через через Args(), а через WebArgs(). Последние прямым текстом закатываются в URL. Оттудова же потом разбирается обратно в WebArgs(), а потом в Args() с потерей всей начинки. В результате в качестве параметра можно передать только ID таблицы и RecId записи, а также строковый параметр длиною в 80 символов.
О передаче объектов речи идти не может. По крайней мере я так понял это безобразие.
__________________
С уважением, glibs® |
|
22.01.2007, 16:46 | #3 |
MCTS
|
glibs, спасибо за ответ.
Я имел в виду немного другое. Если я хочу по кнопке открыть другую Web-форму с параметром, то я могу сделать это так: Код: WebLink = new WebLink(); WebLink.menufunction(New MenuFunction(...)); WebLink.parm(x); Код: aaa = new WebArgs(); par = aaa.getParm("aaa"); Дело в том, что не я хотел бы открывать другую форму через эту ссылку, а открыть нужно ту же самую форму, но, например, на другой закладке. Какую закладку открывать - я бы понял посредством передаваемого параметра открытии формы. Задача состоит в следующем: на одной закладке есть WebGrid с данными из Таблицы 1. По клику на ссылке (идентификаторе записи из таблицы 1) необходимо показать WebGrid со списком записей из таблицы 2, связанных с выбранной записью из таблицы 1. Так как форма достаточно громоздкая, не хотелось бы делать ее полную копию и открывать уже ее, а работать все время с той же самой. Последний раз редактировалось cherv; 22.01.2007 в 16:49. |
|
22.01.2007, 21:10 | #4 |
Member
|
Так а контрол web button с установленным SaveRecord в No, например, вас не устраивает?
__________________
С уважением, glibs® |
|
23.01.2007, 10:48 | #5 |
MCTS
|
Web Button меня устраивает, но проблема остается в выборе конкретной записи из таблицы 1. Я вижу сейчас только одну возможность выбора: отображать у WebGrid'а флажки и передавать параметром ту запись, которая помечена флажком. Вариант не очень красивый, тем более что необходима проверка на наличие только одного такого отмеченного флажка. Если есть другая возможность - подскажите, буду очень рад. В любом случае спасибо за участие.
|
|
23.01.2007, 11:54 | #6 |
Member
|
Если вы разместите Web Button в гриде, то при нажатии на эту кнопку она автоматически добавит в WebArgs() запись таблицы (web-грид без источника данных не работает). Если таблица не временная, конечно.
См. Рис. 1. Чтобы затолкать туда еще и параметр, можно сделать так. #Define.separator("~") void clicked() { MenuFunction menuFunction = new MenuFunction(menuitemdisplaystr(PaymOrderCheckBudgetDetailed), MenuItemType:isplay); WebLink webLink = new WebLink(); ; super(); menuFunction = new MenuFunction(menuitemdisplaystr(PaymOrderCheckBudgetDetailed), MenuItemType:isplay); webLink.menufunction(menuFunction); webLink.parm(con2Str([TmpPurchLineCheckBudget.Dimension[1], TmpPurchLineCheckBudget.Dimension[2], TmpPurchLineCheckBudget.Dimension[3], TmpPurchLineCheckBudget.Dimension[4], date2str(TmpPurchLineCheckBudget.TransDate, 123, 2, 2, 2, 2, 4), TmpPurchLineCheckBudget.CompanyCheckBudget ], #separator)); webLink.Webpage("SomePageName"); // Это если вы еще и на другую страницу хотите вывести webSession().redirect(webLink); } Как считать параметр вы уже знаете. А вообще, если честно, я не очень понял вопрос. Вы можете не в программистских терминах сформулировать, а в прикладных? Например, видим СПИСОК клиентов, хотим в этом списке ПО ОДНОЙ КНОПКЕ СРАЗУ перейти к просмотру проводок по КОНКРЕТНОМУ клиенту.
__________________
С уважением, glibs® Последний раз редактировалось glibs; 23.01.2007 в 11:57. Причина: Цензура в первый раз не все вырезала |
|
|
За это сообщение автора поблагодарили: cherv (1), alex55 (1). |
23.01.2007, 12:05 | #7 |
Member
|
Кстати, в документации по разработке обращают внимание на особенности web-интерфейса. Создание форм с несколькими гридами там не рекомендуется. Причины объективны, и кроются они не в Аксапте, а в особенностях web-технологий (хотя сейчас появились новые (web-технологии)... но они в Акспте не реализованы по крайней мере).
Рекомендую ознакомиться (с документацией).
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: cherv (1). |
23.01.2007, 12:06 | #8 |
MCTS
|
Супер! Как раз то, что нужно! Ключевым оказалось "Web Button в гриде", тут все сразу стало ясно . Спасибо огромное!
А задача: по конкретному предложению просмотреть список действий, с ним связанных. |
|