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 |
Участник
|
Свем большое спасибо!
|
|
|
|