Есть текстовое поле, в нем URL, хочу кнопку, чтобы этот url открыть в новом окне браузера.
Нравится
Александр, никогда такого не реализовывал, но по идее на Init'e нужно прописать клиентскую js-функцию клика на кнопку:
что-то вроде
button1.Attributes.Add("onclick", "window.open('help.htm', '', '', 'height=200,width=400'"); // or whatever //button1.Attributes.Add("onclick", "anyJavaScriptFunction");
Примеры добавления js-функций можно поискать в конфигурации.
Решил пойти другим путем, но почему не срабатывает.
На карточке редактирования сделал надпись URLLinkLabel рядом с полем, но код
Page.URLLinkLabel.Caption = "<center><a href=\"http://yandex.ru/\"">Zzz...</a></center>"";
Если код
Page.URLLinkLabel.Caption = "<center><a href=\"http://yandex.ru/\"">Zzz...</a></center>"";
Здравствуйте, Александр!
Попробуйте либо после базового события Init, либо после базового PageLoadComplete.
тоже дома не сидится по выходным? :biggrin: сейчас попробую, только сервера переставлю на положенное место
Вопрос вот в чем: если я открываю процесс своей карточки редактирования, то у меня там нет ничего...ни init, ни pageloadcomplete, а есть они если открыть родительский процесс. Если я изменю родительский процесс, то есть процесс Базовой страницы редактирования, от которой унаследована моя страница, то эти изменения будут для всех страниц редактирования, которые я унаследую потом от базовой?
Да, так делать не стоит.
Просто добавьте сперва событийный подпроцесс, в него добавьте стартовый элемент с типом сообщение, в свойстве сообщение - пропишите Init. Далее - реализуйте свою логику, и в самом конце генерирующий сигнал с типом сообщение, сообщение также Init, но галочку "отправить" в родительский процесс ставьте. Если в родительский не отправите, то это будет переопределение события, и, скорее всего, карточка не запуститься :)
Сделал вот так, в скрипте одна срочка
Page.URLLinkLabel.Caption = "<center><b><a href=\"" + Page.LotURLTextEdit.Value + ""\"" target=\""_blank\"">>>>></a></b></center>"";
гм.....заработало, только я, наверное как не так значение поля достаю по всей видимости.
Так как вместо ссылки, вроде http://yandex.ru, которое и написано в поле, подставляет туда ссылку НА САМУ КАРТОЧКУ ЭТОЙ ЗАПИСИ.....
на скриншоте видно, слева поле с URLом, справа ссылка в виде >>>>>, курсор мыши как раз на ней и внизу показывается адрес куда она ведет........
Значение поля достаю так:
Page.LotURLTextEdit.Value
Короче, проблема в том, что я никак не могу достать значение колонки LotURL
Пробовал через поле редактирования, не получается, так как если брать Page.LotURLtextEdit.Value то получается какой то бред, а если добавить .ToString(), то вообще пустая строка.....
Если пойти через DataSource, все еще хуже: просто падает:
Exception Message: Object reference not set to an instance of an object.
на вызове
Page.DataSource.ActiveRow.GetTypedColumnValue("LotURL")
Вот такая диагностика....
Проблема в ActiveRow.....
То ли в данный момент ее ещё нет, то ли текущая строка по другому называется....
Так оно и есть, как показала диагностика
DataSource.ActiveRowPrimaryColumnValue
на данном этапе весь из себя нулевой, то есть и ActiveRow пуст напрочь, почему оно и падает.
Все верно, на Init'e DataSource не заполнен еще.
Попробуйте сделать тоже самое, но в скрипте после базового PageLoadComplete:
PageLoadComplete > BasePageLoadComplete > Script.
При попытке добавить сообщение PageLoadComplete ругается что такой идентификатор уже существует....
Сделал скрипт
PageLoadComplete -->> MyScript -->> PageLoadComplete в родительский процесс
НО! DataSource.ActiveRowPrimaryColumnValue все равно пустое!!!
Не понимаю куда повесить скрипт....
После BasePageLoadComplete пробовали?
PageLoadComplete -->> PageLoadComplete в родительский процесс -->> MyScript
Да, все точно так, просто сначала не понял, все заработало, спасибо.
Я просто сначала не понял, что надо сразу после перехвата PageLoadComplete пнуть родительский процесс, а потом уже после того как все отработает творить свои гнусности :smile: