17.08.2010, 22:06 | #1 |
Участник
|
Все о Microsoft Dynamics CRM: Выбор всех значений из picklist
Источник: http://ms-dynamics-crm.com.ua/2010/0...from-picklist/
============== Наверняка вы уже знакомы с решением от Jim Wang для выбора нескольких значений из picklist MS CRM, а стиль самого picklist был изменен с добавлением чекбоксов. Отличное решение, но, иногда, возникает необходимость выбирать все элементы из списка и если значений много, то будет неудобно выбирать каждое по отдельности. Поэтому вот небольшой javascript сниппет, который позволяет решить данную задачу. 1. Необходимо добавить новое значение Select all в ваш picklist 2. В событие OnSave() вставляем следующий код: var PL = crmForm.all.new_fundingsource;var PLV = crmForm.all.new_fundingsourcevalue; if(PLV.value != "") { var PLVT = PLV.value.split("||"); for( var i = 0; i < PLVT.length; i++ ) { if( PLVT[i] == "Select All") { PLV.value = ""; for( var i = 1; i < PL.options.length; i++ ) { PLV.value += PL.options[i].text+ "||"; } } } }Все. Теперь достаточно выбрать пункт Select all и нажать сохранить, после чего будут выбраны все значения данного picklist Код для создания multi picklist (чтобы не забыть): var PL = crmForm.all.new_fundingsource;var PLV = crmForm.all.new_fundingsourcevalue;if( PL != null && PLV != null ){ PL.style.display = "none"; PLV.style.display = "none"; // Create a DIV container var addDiv = document.createElement("<div style='overflow-y:auto; height:80px; border:1px #6699cc solid; background-color:#ffffff;' />"); PL.parentNode.appendChild(addDiv); // Initialise checkbox controls for( var i = 1; i < PL.options.length; i++ ) { var pOption = PL.options[i]; if( !IsChecked( pOption.text ) ) var addInput = document.createElement("" ); else var addInput = document.createElement("" ); var addLabel = document.createElement( ""); addLabel.innerText = pOption.text; var addBr = document.createElement( " "); //it's a 'br' flag PL.nextSibling.appendChild(addInput); PL.nextSibling.appendChild(addLabel); PL.nextSibling.appendChild(addBr); } // Check if it is selected function IsChecked( pText ) { if(PLV.value != "") { var PLVT = PLV.value.split("||"); for( var i = 0; i < PLVT.length; i++ ) { if( PLVT[i] == pText ) return true; } } return false; } // Save the selected text, this filed can also be used in Advanced Find crmForm.attachEvent( "onsave" , OnSave);//debugger function OnSave() { PLV.value = ""; var getInput = PL.nextSibling.getElementsByTagName("input"); for( var i = 0; i < getInput.length; i++ ) { if( getInput[i].checked) { PLV.value += getInput[i].nextSibling.innerText + "||"; } } }} Источник: http://ms-dynamics-crm.com.ua/2010/0...from-picklist/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
|