29.04.2008, 16:12 | #1 |
Moderator
|
Упрощаем поиск
Давече возникла передо мной задача - убрать из поиска все атрибуты, которых нет на форме объекта. Задача не сложная, но захотелось оптимизировать - хотя бы автоматически получить список всех полей на форме. Вот так, например:
var str; var fields = crmForm.all; for (var i=0; i<fields.length; i++) { if (fields[i] != null && fields[i].Label != null ) { str+= "\n" + fields[i].Label; } } crmForm.all.description.DataValue = str Пусто. Стал проверять и оказалось, что на форме у меня больше 500 полей и ни у одного из них не отображается метка. Коллеги, есть догадки на этот счет?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
29.04.2008, 18:03 | #2 |
CRM
|
Т.е. Вы хотите получить название этих самых полей? Но вроде у объекта нет свойства Label.
X++: function getElementsByClass(searchClass,node,tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)'); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { classElements[j] = els[i]; j++; } } return classElements; } function getElementsByAttribute(node,tag,attribute,value) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; for (var i=0, j=0; i<elsLen; i++) { if(els[i].getAttribute(attribute) == value) { classElements[j] = els[i]; j++; } } return classElements; } Удачи!
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|
30.04.2008, 08:22 | #3 |
Moderator
|
Свойство Label описано в SDK:
{Field}.Label String Get property. Returns the label used on the control. It can return null if the label is not being displayed on the form. К сожалению getElementsByClass("td", null, "n") не работает. Я не очень силен в веб программировании, так что не берусь судить почему.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional Последний раз редактировалось Артем Enot Грунин; 30.04.2008 в 08:25. |
|
30.04.2008, 09:32 | #4 |
Moderator
|
Решил вопрос проще и в некотором роде удобнее - получил список полей которых нет на форме. Просто нажимаем кнопку "добавить поля" и видим все атрибуты которые нужно удалить из поиска. Прошу прощения, за бесполезный пост.
Вопрос почему не работает свойство Label оставляю открытым.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
30.04.2008, 13:59 | #5 |
CRM
|
Ну да, точно! Я и не подумал Давно кастомизацией не занимался
__________________
MS CRM 3.0/4.0 Sharepoint 2003, MOSS 2007/2010 |
|