|  17.12.2008, 00:19 | #1 | 
| Участник | Доступ к полю CRM из script runat server 
			
			Подскажите пожалуйста, как можно добраться до  значения поля CRM. В CRM есть поле в форме Организация, под именем new_noi, в форме создания новой Организации вставлен iFrame c именем noi нужно, чтобы при сохранении новой организации в iFrame было написано значение поля new_noi. Код страницы iFrame <%@ Page Language="C#" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { if(Page.IsPostBack) {noi_s.Text=/* как сюда вставить значение поля CRM new_noi ?*/;} } </script> <html> <head runat="server" id="Head1"> </head> <body> <form id="crmForm" runat="server"> <asp:Label ID="noi_s" runat="server"></asp:Label> </form> </body> </html> Код на событии onSave document.frames("IFRAM_noi").document.crmForm.submit(); | 
|  | 
|  17.12.2008, 08:35 | #2 | 
| Moderator | 
			
			Ну, c фрейма через cross-site scripting можно обращаться к полям родительской формы через конструкцию вида: Код: var oNoi = parent.document.forms[0].all.new_noi.DataValue; 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional | 
|  | 
|  17.12.2008, 12:57 | #3 | 
| Заноза в заднице | 
			
			А если у странички фрейма сделать входной параметр и ему передавать? Например, строка кода: Код: string newnoiStringValue= Request.QueryString["inner_param_newnoi"].ToString(); http://prodserver:8081/ChkPrivsInNonuserObj.aspx?inner_param_newnoi=something01231 В данном примере, код C# получит в качестве значения переменной newnoiStringValue="something01231" 
				__________________ Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! | 
|  | 
|  17.12.2008, 13:01 | #4 | 
| Заноза в заднице | 
			
			Вот здесь ещё примерчик гляньте, как в форму параметр передается: Прайс-листы Возможно Вам такое подойдет больше. 
				__________________ Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! | 
|  | 
|  17.12.2008, 14:39 | #5 | 
| Moderator | 
			
			Почему бы и нет, кстати. Адрес страницы IFrame можно динамически формировать при загрузке формы. В этом случае вы легко сформируете запрос и передадите все параметры.
		 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional | 
|  | 
|  17.12.2008, 16:11 | #6 | 
| Участник | Цитата: 
		
			Сообщение от Likefire
			   А если у странички фрейма сделать входной параметр и ему передавать? Например, строка кода: Код: string newnoiStringValue= Request.QueryString["inner_param_newnoi"].ToString(); http://prodserver:8081/ChkPrivsInNonuserObj.aspx?inner_param_newnoi=something01231 В данном примере, код C# получит в качестве значения переменной newnoiStringValue="something01231" | 
|  | 
|  17.12.2008, 16:12 | #7 | 
| Участник | 
			
			var oNoi = parent.document.forms[0].all.new_noi.DataValue; К сожалению так не получится, дело в том, что есть приложение на сервере, написанное на C#, которое должно обрабатывать поля(данные) в форме Организации и обратно их туда подставлять уже обработанные. | 
|  | 
|  17.12.2008, 16:33 | #8 | 
| Заноза в заднице | 
			
			2 sakra: давайте посмотрим с такой стороны: для чего Вам нужно значение поля? Для того, чтобы во фрейме выводить некие данные отобранные по получаемому значению? Если так, то Вы можете инициировать вывод фрейма с нужными Вам параметрами (любыми) из той формы, которая этот фрейм содержит. Можете найти место в системе, где у вас инициализируется вывод фрейма, а не скрипт странички, которая во фрейм выводится?
		 
				__________________ Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! | 
|  | 
|  17.12.2008, 16:56 | #9 | 
| Участник | 
			
			значение поля нyжно: 1 чтобы во фрейме выводить некие данные отобранные по получаемому значению 2 для того чтобы в это поле подставить отобранное значение (заменить то значение, которое там было и по которому мы искали новое значение, новым значением) | 
|  | 
|  17.12.2008, 17:21 | #10 | 
| Заноза в заднице | 
			
			С 1 понятно, а вот 2 - в какой момент должно происходить? Именно в момент вывода на экран фрейма? На самом деле, хотелось бы более конкретно уловие задачи получить, потому что у меня как-то много вариантов получается.   Что у вас там такое в этом поле new_noi содержится? Может его раньше модифицировать, это значение? При открытии формы, например? 
				__________________ Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! | 
|  | |
| За это сообщение автора поблагодарили: sakra (1). | |
|  17.12.2008, 17:41 | #11 | 
| Участник | 
			
			2 – можно либо по нажатию кнопки submit либо при сохранении формы. На самом деле поле new_noi такое не одно. Есть программа, которая формирует некоторые данные об организации в зависимости от правовой формы и тд. К примеру, у организации есть правовая форма, значение этого поля передается в iFrame, на основе этого значения в iFreme фильтруются значения в выпадающий списке. Выпадающий список характеризует вид обслуживания, на основе значения в виде обслуживания фильтруется следующий выпадающий список и тд. Так вот у нас получается, что выбрано несколько значений в выпадающих списках. Эти значения, помещаются в соответствующие поля CRM либо при нажатии кнопки в iFrame либо при сохранении формы. | 
|  | 
|  17.12.2008, 17:45 | #12 | 
| Участник | 
			
			>>Адрес страницы IFrame можно динамически формировать при загрузке формы Подскажите какой код нужно повесить на onLoad для того, чтобы в iFrame передавался параметр со значением поля CRM. | 
|  | 
|  17.12.2008, 17:46 | #13 | 
| Участник | 
			
			а точнее, чтобы параметр передавался в строку запроса
		 | 
|  | 
|  17.12.2008, 22:48 | #14 | 
| Moderator | Цитата: Цитата: parameters += ... ; IFrame_<поле>.src = "http://server/custompage.aspx?" + parameters; 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional | 
|  | |
| За это сообщение автора поблагодарили: sakra (1). | |
|  18.12.2008, 10:08 | #15 | 
| Участник | 
			
			так не работает  IFrame_<поле>.src = "http://server/custompage.aspx?" + parameters; а вот так работает crmForm.all.IFrame_<поле>.src = "http://server/custompage.aspx?" + parameters; | 
|  | 
|  18.12.2008, 11:57 | #16 | 
| Участник | 
			
			Если приложение находится не на веб-сервере CRM то есть CRM запускается по адресу http://crm/, а приложение по адресу http://test/test.aspx можно ли передать в поле CRM данные из test.aspx? методом var oNoi = parent.document.forms[0].all.new_noi.DataValue; не получается (( | 
|  | 
|  18.12.2008, 12:09 | #17 | 
| Moderator | 
			
			Разместите вашу страницу в том же пуле и приложении, что и crm сервер. Тогда все будет работать как надо. Должно быть http://crm/test.aspx 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional | 
|  | 
|  18.12.2008, 12:34 | #18 | 
| Участник | 
			
			Если разместить в том же пуле, это понятно, что работать будет. А если в другом, то нет средств, чтобы работало?
		 | 
|  | 
|  18.12.2008, 14:01 | #19 | 
| Заноза в заднице | 
			
			Можно конечно, но тут уже надо заморачиваться несколько глубже, чем просто в родительскую форму параметры передавать. Короче, нужн вместе с параметрами передавать айдишник сущности, по которому с помощью SDK получать эту сущность и пытаться пихнуть значения. Хотя я, честно говоря, ни разу не пробовал пихнуть значения в обход действий формы, если форма открыта. Надо будет попробовать, кстати, хотя не факт, что всё получится, и что не надо будет форму рефрешить.
		 
				__________________ Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! | 
|  | 
|  18.12.2008, 14:24 | #20 | 
| Участник | 
			
			Свем большое спасибо!
		 | 
|  | 
|  | 
| 
 |