17.02.2009, 14:27 | #1 |
Участник
|
Как передать параметр в окно создания сущности
Всем привет.
Для воплощения одной безумной идеи нужно из относительно левой страницы передать параметр в окно создания сущности CRM, чтобы скриптом на этом окошке его поймать. Подскажите, плз, как это сделать?
__________________
С уважением, Tony Green |
|
17.02.2009, 14:36 | #2 |
Учаснег
|
Через параметр адресной строки..а потом onload его выловить.. Подходит?
__________________
http://about.me/fedorovigor |
|
17.02.2009, 14:44 | #3 |
Участник
|
Вполне. Если приведете еще на скорую руку примерчик на jscript, то вообще супер, респект и уважуха
__________________
С уважением, Tony Green |
|
17.02.2009, 15:13 | #4 |
Чайный пьяница
|
Цитата:
Код: var ParameterValue = '%значение параметра%'; var url='%ссылка открываемого онка%?Parameter=' + ParameterValue; window.open(url);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
17.02.2009, 15:19 | #5 |
Участник
|
Простите за назойливость, но меня больше всего на свете сейчас интересует та часть скрипта, которая выковыривает параметр из адресной строки
__________________
С уважением, Tony Green |
|
17.02.2009, 15:27 | #6 |
Учаснег
|
__________________
http://about.me/fedorovigor |
|
17.02.2009, 15:32 | #7 |
Консультант-джедай
|
вот скрипт "расщипляет" строку адреса, вытаскивает из нее параметры, заносит в массив и печатает
X++: var _GET_Keys; // Пока что пустой массив var _GET_Values; var _GET_Count = 0; // элементов пока нет get = new String(window.location); x = get.indexOf('?'); if(x!=-1) { l = get.length; get = get.substr(x+1, l-x); l = get.split('&'); x = 0; _GET_Count = l.length; _GET_Keys = new Array(_GET_Count); _GET_Values = new Array(_GET_Count); for(i in l) { get = l[i].split('='); _GET_Keys[x] = get[0]; _GET_Values[x] = get[1]; document.write("<p>" + _GET_Keys[x] +' '+ _GET_Values[x] + "<p>"); x++; } } else ;
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
17.02.2009, 15:33 | #8 |
Участник
|
Спасибо всем! То что нужно
__________________
С уважением, Tony Green |
|
19.02.2009, 09:04 | #9 |
Участник
|
Мои 5 копеек
X++: var s = window.location.search; var re = /([^&?=]+)=([^&]*)?/g; var Query = new Object(); var arr; while(arr = re.exec(s)) { Query[ arr[1] ] = arr[2]; } for(a in Query) { document.write(a + "=" + Query[a] + "<br>"); }
__________________
"Hello World!" 17 errors, 31 warnings |
|
19.02.2009, 12:17 | #10 |
Участник
|
Обнаружился очень неприятный подвох: когда я пытаюсь передать параметр в форму создания сущности через очередной параметр строки, то CRM страшно ругается Типа такого:
Error Description: CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from . Error Details: Выдано исключение типа "System.Web.HttpUnhandledException". Full Stack: [InvalidOperationException: CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from .] в Microsoft.Crm.Application.ParameterFilter.ValidateParameter(Page page, ArrayList parameterCollection, String key, String value, String collectionName, EntityType pageEntityType) в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking) в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType) в Microsoft.Crm.Application.Controls.AppPage.ValidatePageParameters() в Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e) в System.Web.UI.Control.InitRecursive(Control namingContainer) в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) [HttpUnhandledException: Выдано исключение типа "System.Web.HttpUnhandledException".] в System.Web.UI.Page.HandleError(Exception e) в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) в System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) в System.Web.UI.Page.ProcessRequest() в System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) в System.Web.UI.Page.ProcessRequest(HttpContext context) в ASP.vkpmdev_userdefined_edit_aspx.ProcessRequest(HttpContext context) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Помогите передать параметр другим способом или обойти эти проверки плз
__________________
С уважением, Tony Green |
|
19.02.2009, 12:32 | #11 |
Moderator
|
По мне так эту задачу проще через dom решать. Это на кастом страницу можно что угодно в параметрах пеердавать, у CRM вполне разумные ограничения. Вот пример того, как из одного окна дотянуться до другого:
Client Side Scripting - Accessing properties of the parent form
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: Tony Green (1). |
19.02.2009, 12:37 | #12 |
Чайный пьяница
|
Цитата:
Сообщение от Tony Green
Обнаружился очень неприятный подвох: когда я пытаюсь передать параметр в форму создания сущности через очередной параметр строки, то CRM страшно ругается Типа такого:
Error Description: CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from . Error Details: Выдано исключение типа "System.Web.HttpUnhandledException". Full Stack: [InvalidOperationException: CRM Parameter Filter - Invalid parameter 'Parameter=1' in Request.QueryString on page /vkpmdev/userdefined/edit.aspx The raw request was 'GET /vkpmdev/userdefined/edit.aspx?etc=10029&Parameter=1' called from .] в Microsoft.Crm.Application.ParameterFilter.ValidateParameter(Page page, ArrayList parameterCollection, String key, String value, String collectionName, EntityType pageEntityType) в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType, Boolean alwaysEnableParameterChecking) в Microsoft.Crm.Application.ParameterFilter.ValidateParameters(Page page, EntityType pageEntityType) в Microsoft.Crm.Application.Controls.AppPage.ValidatePageParameters() в Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e) в System.Web.UI.Control.InitRecursive(Control namingContainer) в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) [HttpUnhandledException: Выдано исключение типа "System.Web.HttpUnhandledException".] в System.Web.UI.Page.HandleError(Exception e) в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) в System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) в System.Web.UI.Page.ProcessRequest() в System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) в System.Web.UI.Page.ProcessRequest(HttpContext context) в ASP.vkpmdev_userdefined_edit_aspx.ProcessRequest(HttpContext context) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Помогите передать параметр другим способом или обойти эти проверки плз Первая страница (родительская из которой выполняется вызов PHP код:
PHP код:
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Tony Green (1). |
19.02.2009, 13:59 | #13 |
Участник
|
В CRM 4.0 для каждой страницы в атрибутах класса страницы жестко прописано какие параметры она может получать. Поэтому просто добавить свой не выйдет.
Говорят есть возможность проверку отключать http://blogs.msdn.com/rextang/archiv...4/8962549.aspx Я не пробовал - мне повезло в форму среди прочих шел "ненужный" параметр, который не использовался. В него я вставил то, что мне нужно было.
__________________
"Hello World!" 17 errors, 31 warnings |
|
|
|