Проблема с получением элементов списка, добавленных через jquery в коде позади - PullRequest
3 голосов
/ 31 января 2011

У меня есть элемент управления списком asp.net, в котором я заполняю элементы, используя Jquery, используя некоторый код, например .. $("#MylistBox").append("<option value='somevalue'>Someitem</option>

, динамически.но в коде, когда я использую MylistBox.Items, всегда отображается Count 0 независимо от того, сколько элементов добавляется.

Кто-нибудь может мне помочь с этим?

Ответы [ 2 ]

5 голосов
/ 31 января 2011

Не зная фактического сценария ... Я предполагаю, что ваша цель на самом деле - получить динамически добавленные элементы, перебирая их или что-то еще ...

Любой динамически добавленный элемент DOM, который выполняется на стороне клиента с использованием JavaScript / jQuery, не будет автоматически отражаться на стороне сервера. Вам нужно будет сериализовать их другим способом и переместить их обратно на сторону сервера во время обратной передачи. Один из способов сделать это - сериализовать все параметры элемента Select в скрытом вводе. Вы можете пометить скрытый ввод как runat = server, если хотите облегчить доступ к нему, в противном случае используйте Request.Form ["... скрытый атрибут ввода NAME здесь ... NOT ID ..."], чтобы получить ценить Получив его, вы можете делать со значениями все, что захотите.

Я полагаю, что ваш скрытый ввод должен иметь какое-то значение, например: "1: Первое значение, 2: Второе значение, 3: ...". Просто выполните некоторые манипуляции со строками, чтобы разделить их и перебрать.

1 голос
/ 31 января 2011

Код позади будет знать только элементы, которые были добавлены в объект Listbox, когда он был создан на сервере. Эти элементы будут храниться в ViewState и повторно заполняться во время обратной передачи.
Поэтому элементы, созданные динамически на клиенте, не будут видны для кода на стороне сервера.
Если вам нужно получить выбранное значение в коде на стороне сервера, вам потребуется запросить значение Request.Form["<Listbox client id>"] во время обратной передачи.
Если вам нужно получить все элементы, добавленные в список на клиенте, я бы предложил добавить их все к скрытому значению поля в виде массива строк с разделителями и снова получить их, используя Request.Form["<hidden field id>"].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...