AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2011, 09:25   #1  
Shamasher is offline
Shamasher
Участник
 
10 / 10 (1) +
Регистрация: 01.09.2010
-> Вызов родительского метода
Привет всем!
Это не совсем задача по MS CRM, но все же, думаю здесь люди с ней сталкивались.
Есть родительское окно, где по нажатию на кнопку происходит следующие:

PHP код:
window.open(CrmURL '/isv/Messages/input.html''child''width=600,height=200,directories=no,menubar=no,resizable=yes,titlebar=no,toolbar=no');
crmForm.Save(); 
сам файл input.html:
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" >
<
head>
    <
title>Предупреждение</title>
    <
style>
    
body background-color#deebff; padding: 20px; font-family:Arial; font-size:12px;  }
    
{  }
    
color:#10418c; }
    
h1 color#639ace; font-size:18px; font-weight: bold; }
</style>
</
head>
<
body>
    <
h1>Предупреждение</h1>
    <
p>Пожалуйста введите причину отказа:</p>
    <
input name="inputText" type="text" size="60">
    <
input type="submit" value="Отправить" onclick="opener.document.parentForm.Test1()">    
</
body>
</
html
мне нужно, чтоб по нажатию на кнопку "Отправить" текст поля "inputText" отправить на родительскую форму и обработать уже там через функцию.
Думаю проблема в вызове "opener.document.parentForm.Test1()", искал в интернете и по разному писал, но пока без результатно

ЗЫ
функция Test1():
PHP код:
Test1 = function () {
alert('11111');

Старый 16.02.2011, 09:50   #2  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Попробуйте:
1. type="submit" заменить на type="button"
2. Передавайте сразу Вашей функции значение поля window.opener.document.Test1(document.getElementById('inputText1').value) (и введите для тектового поля id'ишник "inputText1")
3. И глобальную функцию объявляйте так: document.functionName = function(param1)
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога

Последний раз редактировалось slivka_83; 16.02.2011 в 09:58.
За это сообщение автора поблагодарили: Shamasher (1).
Старый 16.02.2011, 11:03   #3  
Shamasher is offline
Shamasher
Участник
 
10 / 10 (1) +
Регистрация: 01.09.2010
Все исправил как вы писали, но выдает ошибку:
Цитата:
Строка: 16
Ошибка: 'opener.document' - есть null или не является объектом
ЗЫ
я изменил вызов документа с window.open(CrmURL + '/isv/Messages/input.html', 'child', 'width=600,height=200,directories=no,menubar=no,resizable=yes,titlebar=no,toolbar=no');
на window.showModalDialog()
Старый 16.02.2011, 11:11   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
При использовании showModalDialog window.opener - null. Решение - передать opener через dialogarguments. Подробнее тут - http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Shamasher (1).
Старый 16.02.2011, 12:08   #5  
Shamasher is offline
Shamasher
Участник
 
10 / 10 (1) +
Регистрация: 01.09.2010
В итоге все заработало, но немного по другому:

1) Вызыв теперь происходит так:
PHP код:
retval=window.showModalDialog(CrmURL '/isv/Messages/input.html''child''width=600,height=200,directories=no,menubar=no,modal=yes,resizable=yes,titlebar=no,toolbar=no');
        
alert(retval); 
2) Сам файл input.html содержит такой код:
PHP код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" >
<
head>
<
script language="javascript"
function 
changeparent() 

window.returnValue=document.getElementById('inputText1').value
window.close();

</script>
    <title>Предупреждение</title>
    <style>
    body { background-color: #deebff; padding: 20px; font-family:Arial; font-size:12px;  }
    p {  }
    a { color:#10418c; }
    h1 { color: #639ace; font-size:18px; font-weight: bold; }
</style>
</head>
<body>
    <h1>Предупреждение</h1>
    <p>Пожалуйста введите причину отказа:</p>
    <input id="inputText1" name="inputText" type="text" size="60">
    <input type="button" value="Отправить" onclick="javascript:changeparent()">    
</body>
</html> 
Спасибо всем, кто отозвался. Надеюсь мое решение кому-нибудь понадобиться
Старый 16.02.2011, 13:27   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Для подобных целей я использую popup:
+ Нет необходимости размещать веб страницы на сервере
+ Код исполняется в контексте родительской формы
+ Работает в автономном клиенте.
+ Это модно!

- HTML приходится формировать скриптом
- Чуть сложнее отлаживать
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 16.02.2011, 13:31   #7  
Shamasher is offline
Shamasher
Участник
 
10 / 10 (1) +
Регистрация: 01.09.2010
Если вас не затруднит, то могли бы вы выложить свою реализацию popup?
Старый 16.02.2011, 15:41   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Конкретно ваш пример реализовывать сейчас нет времени, но вы можете посмотреть реализацию даже более сложных задач у меня в блоге: http://www.axforum.info/forums/blog....=popup&u=11149.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов "чужого" сервиса из JavaScript Kipetcoff Dynamics CRM: Разработка 1 17.09.2010 15:37
Проблемы с обновлением родительского объекта Samson Dynamics CRM: Разработка 4 01.03.2010 16:14
Вызов web-сервиса из dynamics crm Evgenia_f Dynamics CRM: Разработка 11 26.08.2008 09:33
вызов бизнес првил valk Dynamics CRM: Разработка 1 17.12.2007 16:44
вызов своего функционала из формы glad Dynamics CRM: Разработка 8 12.09.2006 18:55

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:21.