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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.05.2012, 11:22   #1  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Родительское окно crm2011
Всем привет! Есть небольшой вопрос. У меня есть кнопка на форме(не на риббоне), по её нажатию открывается окно, в котором тоже есть кнопка. И по её нажатию, мне нужно записать значение в поле родительского окна crm.

Пишу код:

//функция вызывается по нажатию кнопки дочернего окна
function test()
{
window.top.opener.document.forms[0].Xrm.Page.getAttribute("name").setValue("sghfh");
}

В результате ничего не происходит. Пробовал еще вот так : window.opener.document.getElementById('name').value = "sghfh"; результат тот же

Вот так : window.top.opener.document.getElementById( "Name" ).value = "value"; тоже не работает

Последний раз редактировалось Taker1796; 29.05.2012 в 11:45.
Старый 29.05.2012, 11:58   #2  
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
Попробуйте так:

Код:
function test()
{
	window.top.opener.document.getElementById('contentIFrame').contentWindow.document.Xrm.Page.getAttribute("name").setValue("sghfh");
}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 12:02   #3  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
Попробуйте так:

Код:
function test()
{
	window.top.opener.document.getElementById('contentIFrame').contentWindow.document.Xrm.Page.getAttribute("name").setValue("sghfh");
}
Тоже не работает
Старый 29.05.2012, 12:45   #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
Цитата:
Сообщение от Taker1796 Посмотреть сообщение
Тоже не работает
Тогда так:

Код:
function test()
{
	window.top.opener.Xrm.Page.getAttribute("name").setValue("sghfh");
}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 13:01   #5  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
Тогда так:

Код:
function test()
{
	window.top.opener.Xrm.Page.getAttribute("name").setValue("sghfh");
}
И так тоже не хочет
Старый 29.05.2012, 15:05   #6  
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
Цитата:
Сообщение от Taker1796 Посмотреть сообщение
И так тоже не хочет
У меня заработало. Первое писал на колене по памяти. Включайте дебаггер и тестируйте.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 15:22   #7  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
У меня заработало. Первое писал на колене по памяти. Включайте дебаггер и тестируйте.
Может я что то не так делаю? Я создал aspx страницу, добавил на неё кнопку, по нажатию кнопки вызываю функцию, которая должна писать значение в поле родительского окна crm.


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 runat="server">
<title></title>
<script type="text/javascript">
function test(selectedindex) {
var myindex = selectedindex.selectedIndex;
var SelValue = selectedindex.options[myindex].value;
window.top.opener.Xrm.Page.getAttribute("name").setValue("sghfh");
}
</script>
</head>
<body bgcolor="White">
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label">Выберите категорию лида.</asp:Label>
<br>
<br>
<div>
<aspropDownList ID="DropDownList1" runat="server" Width="70">
<asp:ListItem Selected="none"> ... </asp:ListItem>
<asp:ListItem Value="Category A"> A </asp:ListItem>
<asp:ListItem Value="Category B"> B </asp:ListItem>
<asp:ListItem Value="Category C"> C </asp:ListItem>
</aspropDownList>
</div>
<br>
<br>
<asp:Button ID="Button3" runat="server" Text="Button" />
<asp:button ID="Button1" runat="server" text="Ok" Width="100" OnClientClick='test(this.form.DropDownList1);' />
<asp:button ID="Button2" runat="server" text="Отмена" Width="100" OnClientClick='alert("Отмена");' />
</form>
</body>

</html>

На форме crm добавил кнопку, по её нажатии загружаю эту aspx страницу
Старый 29.05.2012, 15:41   #8  
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
А где вы хостите эту страницу? Если не в то м же хосте что и CRM, то боюсь ничего не получится.

Плюс покажите, пожалуйста, код при помощи которой вы открываете эту самую страницу.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 15:45   #9  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
А где вы хостите эту страницу? Если не в то м же хосте что и CRM, то боюсь ничего не получится.

Плюс покажите, пожалуйста, код при помощи которой вы открываете эту самую страницу.
Блин, я с локалхоста гружу.

Вот код открытия :

var Opportunity={
"OnLoad":function(context)
{
function () {window.open(" http://localhost:6802/leedcategory/Default.aspx ")
;} );
}
Старый 29.05.2012, 16:08   #10  
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
Цитата:
Сообщение от Taker1796 Посмотреть сообщение
Блин, я с локалхоста гружу.

Вот код открытия :

var Opportunity={
"OnLoad":function(context)
{
function () {window.open(" http://localhost:6802/leedcategory/Default.aspx ")
;} );
}
Не получится. Кросдоменное обращение. Для того, чтобы ваш скрипт работал окна должны быть открываться в одном домене.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 18:17   #11  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Объясните пожалуйста новичку, как правильно закинуть страницу в crm. Я делаю так, кидаю её в папку ISV -> MyFolder ->mypage.aspx. Помимо этого в эту папку я закидываю mypage.aspx.cs , mypage.aspx.designer.cs, Web.config, Web.Debug, Web.Release. После чего создаю в IIS виртуальный каталог и указываю путь к папке MyFolder. Далее пытаюсь вызвать страницу из браузера по пути http://myCrm/ISV/MyFolder /mypage.aspx

В итоге ловлю ошибку в трейсе System.Web.HttpParseException (0x80004005): Could not load type

mypage.aspx.cs , mypage.aspx.designer.cs - эти файлы я не трогал и никакой код в них не писал. Только на самой странице

Если я регистрирую как приложение то получаю такую ошибку : Could not load file or assembly 'Microsoft.Crm, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Не удается найти указанный файл.

И еще вопрос, в каком случае создавать в IIS виртуальный каталог, а в каком приложение?

Последний раз редактировалось Taker1796; 29.05.2012 в 18:24.
Старый 29.05.2012, 18:55   #12  
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
Цитата:
Сообщение от Taker1796 Посмотреть сообщение
Объясните пожалуйста новичку, как правильно закинуть страницу в crm. Я делаю так, кидаю её в папку ISV -> MyFolder ->mypage.aspx. Помимо этого в эту папку я закидываю mypage.aspx.cs , mypage.aspx.designer.cs, Web.config, Web.Debug, Web.Release. После чего создаю в IIS виртуальный каталог и указываю путь к папке MyFolder. Далее пытаюсь вызвать страницу из браузера по пути http://myCrm/ISV/MyFolder /mypage.aspx

В итоге ловлю ошибку в трейсе System.Web.HttpParseException (0x80004005): Could not load type

mypage.aspx.cs , mypage.aspx.designer.cs - эти файлы я не трогал и никакой код в них не писал. Только на самой странице

Если я регистрирую как приложение то получаю такую ошибку : Could not load file or assembly 'Microsoft.Crm, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Не удается найти указанный файл.

И еще вопрос, в каком случае создавать в IIS виртуальный каталог, а в каком приложение?
Не извращался пока с 2011 таким образом, подождите ответа от более опытного в этой области. Неужели диалог настолько будет тяжёлый, что html+js несправятся. А последнее решается при помощи вебресурсов.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 20:07   #13  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
Не извращался пока с 2011 таким образом, подождите ответа от более опытного в этой области. Неужели диалог настолько будет тяжёлый, что html+js несправятся. А последнее решается при помощи вебресурсов.
А можно поподробнее? Вот Вы говорите, что у Вас получилось. Каким образом Вы сделали? Мне бы последовательность действий узнать, если Вас не затруднит, опишите пожалуйста. Я просто думал, что нужно регистрировать как виртуальный каталог кастомные страницы
Старый 29.05.2012, 20:11   #14  
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
Цитата:
Сообщение от Taker1796 Посмотреть сообщение
А можно поподробнее? Вот Вы говорите, что у Вас получилось. Каким образом Вы сделали? Мне бы последовательность действий узнать, если Вас не затруднит, опишите пожалуйста. Я просто думал, что нужно регистрировать как виртуальный каталог кастомные страницы
Я не говорил, что у меня заработало это решение с виртуальным каталогом, aspx страницами и прочее. У меня заработал код обновления поля родителя с открытого окна (я открыл одну запись из второй, на ней код заработал). Пока вы не написали, что у вас кастомная страница я думал, что у вас стандартная CRM страница. На худой случай - вебресурс. Как решить вашу проблему с хостингом aspx страницы не знаю. Хотите C# и кодебихайнда - разрабатывайте на сильверлайте.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Taker1796 (1).
Старый 29.05.2012, 20:17   #15  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
Я не говорил, что у меня заработало это решение с виртуальным каталогом, aspx страницами и прочее. У меня заработал код обновления поля родителя с открытого окна (я открыл одну запись из второй, на ней код заработал). Пока вы не написали, что у вас кастомная страница я думал, что у вас стандартная CRM страница. На худой случай - вебресурс. Как решить вашу проблему с хостингом aspx страницы не знаю. Хотите C# и кодебихайнда - разрабатывайте на сильверлайте.
эээ.... И как мне тогда делать то?) Создать страницу html или aspx, написать в ней код, чтобы значение её поля передавалось в родительскую страницу crm. Что потом то?
Старый 29.05.2012, 20:25   #16  
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
Цитата:
Сообщение от Taker1796 Посмотреть сообщение
эээ.... И как мне тогда делать то?) Создать страницу html или aspx, написать в ней код, чтобы значение её поля передавалось в родительскую страницу crm. Что потом то?
Что потом... Суп с котом. Простите, вырвалось.

Можете вашу задачу выложить полностью, а то структурировать поток сознания пронёсшийся по этому треду мне под конец тяжёлого рабочего дня попросту тяжело.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 29.05.2012, 20:38   #17  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
Что потом... Суп с котом. Простите, вырвалось.

Можете вашу задачу выложить полностью, а то структурировать поток сознания пронёсшийся по этому треду мне под конец тяжёлого рабочего дня попросту тяжело.
На форме в crm есть кастомная кнопка(не на риббоне). По её нажатию должна открыться кастомная страница c текстовым полем и кнопкой "Ок". После ввода значения в это поле и нажатии кнопки "Ок", введенное значение должно появиться в поле родительского окна crm.
Старый 29.05.2012, 20:54   #18  
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
Раз такой сценарий - тем более не могу понять почему не пользоваться простыми доступными вебресурсами.
По поводу реализации - вам на самом деле даже не надо пытаться вызвать родительское окно. Советую:
1. Вызывать кастомное окно через window.showModalDialog примерно таким кодом:
Код:
var dialogresult = window.showModalDialog("Ссылка на ваше кастомное окно диалога");
2. На форме когда вы кликаете по кнопке заполнять dialogResult значением, которое надо вернуть в родительскую форму таким образом:
Код:
window.returnValue = document.getElementById("идентификатор вашего текстового поля").value;
3. В форме результат вызова обрабатывать соответствующим образом примерно так:
Код:
Xrm.Page.getAttribute("name").setValue(dialogresult);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 30.05.2012 в 16:57.
За это сообщение автора поблагодарили: Taker1796 (1).
Старый 30.05.2012, 16:05   #19  
Taker1796 is offline
Taker1796
Участник
Аватар для Taker1796
 
112 / 11 (1) +
Регистрация: 22.04.2012
Цитата:
Сообщение от a33ik Посмотреть сообщение
Раз такой сценарий - тем более не могу понять почему не пользоваться простыми доступными вебресурсами.
По поводу реализации - вам на самом деле даже не надо пытаться вызвать родительское окно. Советую:
1. Вызывать кастомное окно через window.showModalDialog примерно таким кодом:
Код:
var dialogresult = window.showModalDialog("Ссылка на ваше кастомное окно диалога");
2. На форме когда вы кликаете по кнопке заполнять dialogResult значением, которое надо вернуть в родительскую форму таким образом:
Код:
window.returnValue = document.getElementByIf("идентификатор вашего текстового поля").value;
3. В форме результат вызова обрабатывать соответствующим образом примерно так:
Код:
Xrm.Page.getAttribute("name").setValue(dialogresult);
Спасибо Вам большое за помощь! Всё получилось!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
East Ocean - Technical: CRM 4 and CRM2011 rollup information [sharing post] Blog bot Dynamics CRM: Blogs 0 29.02.2012 14:11
Microsoft CRM: Dynamics CRM2011 outlook client features Blog bot Dynamics CRM: Blogs 0 04.12.2010 14:11
Microsoft CRM: CRM2011 new Features Blog bot Dynamics CRM: Blogs 0 22.11.2010 14:11
Окно напоминания в Outlook Katya3 Dynamics CRM: Функционал 4 27.04.2010 16:57
Новой окно после PostBack'а Kipetcoff Dynamics CRM: Разработка 3 18.08.2009 16:55
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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