DropDownList - добавление недостающих элементов на лету, чтобы избежать ArgumentOutOfRangeException - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть выпадающий список со списком параметров, которые могут быть изменены (например, «активные пользователи»).Другой источник данных может включать исторические данные, но я хочу использовать выпадающий список «активных пользователей».Это означает, что ArgumentOutOfRangeException будет выброшено, поэтому я хочу поймать это и вставить необходимую запись в выпадающий список на лету.

Я видел несколько предложений, которые указывают на переопределение события ondatabinding в выпадающем списке,Мне удалось сделать это, поскольку я могу создать статический элемент списка, например, «Значение не существует» и обойти исключение.

Однако я хочу, а не «Значение не существует», поэтому покажите фактическое значениекоторый мы пытались найти в ddl.

Передача данных по стандарту передается стандартному элементу EventArgs, который не предлагает многого, я вижу, что есть класс DataListItemEventArgs - это каким-либо образом связано свыпадающий список?Я пробовал прямую трансляцию на EventArgs, но это не сработало ...

Так есть ли какой-то способ - в привязке ondatab - выяснить значение, которое мы пытаемся установить в dll, что вызывает ArgumentOutOfRangeException?

Приветствия!

ps это похоже на эту проблему, я думаю: https://stackoverflow.com/questions/3671556/dynamically-add-item-to-dropdownlist

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Если вы выберете свою запись, в которой есть неактивный пользователь, вы можете воссоздать свой SQL (если это то, что вы используете), чтобы выбрать всех активных пользователей, а также тех, у кого есть идентификаторы, которые вы передаете. Если вы Используется какая-то другая технология персистентности, есть другой код, основанный на том, чтобы это исправить. В целом, вероятно, значительно проще (в рамках модели ASP.NET) объединить данные в одну коллекцию перед привязкой сетки, а затем выполнить ее после (за исключением некоторых тривиальных задач, таких как добавление '<- Select One - -> 'к началу списка в качестве примера).

0 голосов
/ 05 апреля 2011

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

...