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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.12.2010, 18:53   #1  
kabazakra is offline
kabazakra
Участник
 
22 / 10 (1) +
Регистрация: 25.04.2010
Трансформирование textbox в picklist
Добрый день
Нужно трансформировать динамически поле textbox в picklist на форме.
Использую следующий код :
function TransformTextBoxToPicklist(FieldName, Options) {
var fieldName = FieldName;
var defaultValue = crmForm.all.item(fieldName).DataValue;
var table = crmForm.all.item(fieldName + "_d");
var select = "<select req='0' id='" + fieldName + "' name='" + fieldName
+ "' defaultSelected='' class='selectBox' tabindex='1000' >";
var options = new Array();
options = Options;

for (index in options) {

select += "<option value='" + options[index] + "'";

if (options[index] == defaultValue) {
select += " SELECTED";
}
select += ">" + options[index] + "</option>";
}
select += "</select>";
table.innerHTML = select;
}

Проблема в том, что после сохранения данные в базу не записываются. Подскажите, пожалуйста, в чём проблема.
Старый 02.12.2010, 19:11   #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
Не занимайтесь фигней создайте пустой пиклист, вынесите его на форму. Скройте Ваше текстовое поле. Динамичеки заполняйте пиклист данными (http://msdn.microsoft.com/en-us/library/cc189837.aspx - метод {Field}.AddOption(Text, DataValue)). При сохранении переносите значение из пиклиста в Ваше текстовое поле.
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 02.12.2010, 20:07   #3  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
Я согласен со slivka_83, что желательно пользоваться поддерживаемыми способами.(не заниматься фигнёй).

Но чтобы Ваш код заработал, в принципе нужно поменять class "selectBox" на class "ms-crm-SelectBox ".
__________________
Читайте SDK!!!
За это сообщение автора поблагодарили: a33ik (1), kabazakra (1).
Старый 02.12.2010, 20:29   #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
Цитата:
Сообщение от slivka_83 Посмотреть сообщение
Не занимайтесь фигней
Судя по всему исходный код взят с небезызвестного сайта Stunnware. Ну, а автор блога - Michael Hoehne, естественно "страдает фигнёй" уже который год и добился в этом недостижимых высот.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 02.12.2010, 20:34   #5  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Я бы посоветовал вам не заниматься фигней по другим соображениям - когда ваши пользователи начнут использоваться возможности "Расширенного поиска", то у них появится желание выбирать несколько значения из пиклиста для своей выборки. Потом объясните им, что вам лень было передалать текстовое поле в пиклист или, что еще лучше, когда много значений - сделать новую сущность и лукап
Старый 02.12.2010, 20:51   #6  
kabazakra is offline
kabazakra
Участник
 
22 / 10 (1) +
Регистрация: 25.04.2010
Дело в том, что преобразовывать текстовое поле в выпадающий список вынуждает задача : есть анкета, где вопросы и ответы могут изменятся, но должны хранится в одной сущности. Есть пары полей (текстовые) : вопрос - ответ. Разумеется, что попадается много закрытых вопросов, где есть варианты ответов и для них нужен пиклист. Так интервьюер открывает форму, выбирает подходящий сценарий и javascript удобства ради трансформирует некоторые поля ответов в выпадающие списки. Для каждого сценария набор таких полей разный.
Старый 02.12.2010, 20:56   #7  
kabazakra is offline
kabazakra
Участник
 
22 / 10 (1) +
Регистрация: 25.04.2010
Я вообще добавил событие onChange для элемента SELECT. По изменению значения value записывались в другое текстовое поле. При таком раскладе всё работало нормально. Просто хочу отделатся минимальным количеством полей, так как анкеты бывают большие. Отсюда и желание впихнуть выбранное значение опять же в родное поле.
Старый 02.12.2010, 20:59   #8  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Цитата:
Сообщение от a33ik Посмотреть сообщение
Судя по всему исходный код взят с небезызвестного сайта Stunnware. Ну, а автор блога - Michael Hoehne, естественно "страдает фигнёй" уже который год и добился в этом недостижимых высот.
В большенстве случаев ваши "комментарии" приходиится перечитывать раз по 10 (в буквальном смысле)... потому что их причинно-следственные связи отличются таким "полетом мысли" что без бутылки водки не разберешься кароче как всегда: не к селу не к городу...
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 02.12.2010, 20:59   #9  
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
Цитата:
Сообщение от kabazakra Посмотреть сообщение
Я вообще добавил событие onChange для элемента SELECT. По изменению значения value записывались в другое текстовое поле. При таком раскладе всё работало нормально. Просто хочу отделатся минимальным количеством полей, так как анкеты бывают большие. Отсюда и желание впихнуть выбранное значение опять же в родное поле.
Посмотрите внимательнее сообщение - оно решает вашу проблему.
Ну и первоисточник, в котором рассказывается про разницу между 3.0 и 4.0.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: kabazakra (1).
Старый 02.12.2010, 21:08   #10  
kabazakra is offline
kabazakra
Участник
 
22 / 10 (1) +
Регистрация: 25.04.2010
Цитата:
Сообщение от Konstantin Katsovich Посмотреть сообщение
Я согласен со slivka_83, что желательно пользоваться поддерживаемыми способами.(не заниматься фигнёй).

Но чтобы Ваш код заработал, в принципе нужно поменять class "selectBox" на class "ms-crm-SelectBox ".
Пробовал менять название класса. Всё-равно не сохраняет.
Старый 02.12.2010, 21:10   #11  
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
Цитата:
Сообщение от slivka_83 Посмотреть сообщение
В большенстве случаев ваши "комментарии" приходиится перечитывать раз по 10 (в буквальном смысле)... потому что их причинно-следственные связи отличются таким "полетом мысли" что без бутылки водки не разберешься кароче как всегда: не к селу не к городу...
Ожигов перевенулся бы в гробу, если бы увидел насколько грамотно составлен ваш ответ (большенстве, приходиится, кароче, не к селу...)

По поводу 10 раз - каждый понимает в меру своих возможностей
По поводу "причинно-следственных связей"... Как бы они не могут отличаться. И эту фразу я перечитал 4 раза, чтобы понять, что имеется ввиду.
А по поводу "не к селу не к городу" - у вас своё мнение (что код - фигня). У меня - своё (что совсем нет и я привожу доводы почему нет). А истина (как и всегда) где-то посередине.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 02.12.2010, 21:29   #12  
kabazakra is offline
kabazakra
Участник
 
22 / 10 (1) +
Регистрация: 25.04.2010
Всё-таки загвоздка была именно в class='ms-crm-SelectBox'. Всё работает. Спасибо за помощь.
Старый 02.12.2010, 22:25   #13  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Цитата:
Сообщение от kabazakra Посмотреть сообщение
Дело в том, что преобразовывать текстовое поле в выпадающий список вынуждает задача : есть анкета, где вопросы и ответы могут изменятся, но должны хранится в одной сущности. Есть пары полей (текстовые) : вопрос - ответ. Разумеется, что попадается много закрытых вопросов, где есть варианты ответов и для них нужен пиклист. Так интервьюер открывает форму, выбирает подходящий сценарий и javascript удобства ради трансформирует некоторые поля ответов в выпадающие списки. Для каждого сценария набор таких полей разный.
Тогда беру свои слова назад. Недавно столкнулся с похожим решением и то как пользователи мучались, чтобы найти выборку из 3-5-10 значений в "Расширенном поиске" приходилось делать по 3-5-10 условий, хотя они же видели пиклист на форме
Значит вам виднее, удачи.
За это сообщение автора поблагодарили: a33ik (1).
Старый 03.12.2010, 18:34   #14  
kabazakra is offline
kabazakra
Участник
 
22 / 10 (1) +
Регистрация: 25.04.2010
Цитата:
Сообщение от Bondonello Посмотреть сообщение
Тогда беру свои слова назад. Недавно столкнулся с похожим решением и то как пользователи мучались, чтобы найти выборку из 3-5-10 значений в "Расширенном поиске" приходилось делать по 3-5-10 условий, хотя они же видели пиклист на форме
Значит вам виднее, удачи.
Дэк, что же вы предлагаете, выносить на форму десятки пиклистов? и десятки текстовых полей? Мне же нужно на одну и ту же сущность вынести одновременно несколько сценариев опроса и отображать их в зависимости от того, что нужно будет интервьюеру. Вопрос может быть открытым или закрытым в зависимости от сценария. Варианты опций пиклистов тоже разные для каждого сценария. Что вы предлагаете, чтобы облегчить жизнь юзерам?
Старый 03.12.2010, 22:15   #15  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Цитата:
Сообщение от kabazakra Посмотреть сообщение
Дэк, что же вы предлагаете, выносить на форму десятки пиклистов? и десятки текстовых полей? Мне же нужно на одну и ту же сущность вынести одновременно несколько сценариев опроса и отображать их в зависимости от того, что нужно будет интервьюеру. Вопрос может быть открытым или закрытым в зависимости от сценария. Варианты опций пиклистов тоже разные для каждого сценария. Что вы предлагаете, чтобы облегчить жизнь юзерам?
Вы сразу не описали вашу задачу, поэтому я предупредил о возможных последствиях. Пример из жизни. Есть текстовое поле "Страна", кто-то решил помочь пользователям и сделать из него пиклист (такой как у вас), и все здорово, в пиклисте список стран, только вот в базе сохраняется просто текстовое поле. Пользователи стали работать с системой, начали делать выборки по базе и захотели найти все контакты из 5 стран. Соответственно из-за такого решения им бы пришлось делать 5 полей в поиске "Страна равно 1, Страна равно 2, ..." Естественно никто так делать не хочет и никто не поймет чем этот пиклист отличается от статуса или состояния, к примеру, где можно выбирать сразу несколько значений.

В вашем случае, как я понимаю, в зависимости от сценария опроса вы в одни и теже поля будете подставлять разные сгенерированные пиклисты вопросов/ответов. Что ж, вам виднее. Придется помучатся с выводом данных для отчетов н-р, конечно же если они будут нужны кому-то.
Теги
crm, dom, javascript, picklist

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM Programmer: Get Picklist Value By Picklist Name Blog bot Dynamics CRM: Blogs 1 05.02.2010 13:17
mscrm4ever: CRM 4.0 Creating a Readonly picklist Blog bot Dynamics CRM: Blogs 0 08.09.2009 11:05
Microsoft Dynamics CRM Team Blog: New Dependent Picklist Sample Blog bot Dynamics CRM: Blogs 0 09.06.2009 04:06
Microsoft Dynamics CRM Team Blog: CRM 4.0: Checkbox style Multi-Select Picklist Blog bot Dynamics CRM: Blogs 0 01.04.2009 05:07
Jim Wang: CRM 4.0: Checkbox style Multi-Select Picklist Blog bot Dynamics CRM: Blogs 0 11.02.2009 06:05

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

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

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