Как подсчитать количество элементов списка в asp.bulletedlist с помощью JavaScript - PullRequest
0 голосов
/ 12 марта 2010

У меня есть элемент управления asp: bulletedlist, который находится внутри тега div, и мне нужно подсчитать количество элементов списка внутри элемента управления.Выполняя поиск в Интернете и отмечая тот факт, что html, возвращаемый элементами, является списком, т. Е. <li>, я подумал, что мог бы использовать пример:

var listcontrol = document.getElementById('BulletedList1');
var countItems = listcontrol.getElementByTagName('li').length;

Однако, когда я делаю это, он выдаети ошибка, сообщающая, что для этого элемента управления не существует объекта.

Итак, моя проблема в том, и потому что я должен сделать это на стороне клиента, потому что я хочу использовать это для установки высоты тега div, как вы считаетеколичество элементов внутри элемента управления asp: bulletedlist с javascript?

1 Ответ

1 голос
/ 12 марта 2010

Вы не можете использовать document.getElementById так, как используете его, потому что фактический идентификатор для элемента управления Asp.Net при визуализации отличается от того, который вы указали для идентификатора элемента управления. Посмотрите исходный код вашей страницы, и вы увидите, каков фактический идентификатор. Затем вы можете использовать это, если хотите, и этот код должен работать, но он сломался бы, если бы вы когда-либо перемещали элемент управления маркированным списком, так как иерархия изменилась бы.

Еще один способ сделать это - использовать jQuery. В вашем примере вы можете сделать это:

$('[id$=BulletedList1]').children('li').size()

Это выберет элемент, который заканчивается 'BulletedList1', получит дочерние элементы li, а затем вернет размер коллекции.

...