Связывание DropdownList с вложенным json результатом - PullRequest
0 голосов
/ 14 марта 2020

Я по большей части успешно подключился к конечной точке API, и мне удается десериализовать вложенный json результат и привязать его к сетке с помощью Newtonsoft. Json атрибуты сериализации.

Однако я не могу привязать к выпадающий список. Какое правильное имя свойства нужно использовать для передачи имени поставщика в мой выпадающий список?

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

Имя поставщика отображается в виде сетки enter image description here

Я вижу свойство, которое хочу отобразить поставщик -> имя

enter image description here

Связующий код

var readdata = comsumeapi.Result;
            if (readdata.IsSuccessStatusCode)
            {
                var displayrecords = readdata.Content.ReadAsAsync<IList<CoupaPODetails>>();
                displayrecords.Wait();
                empobj = displayrecords.Result;              
                GridView1.DataSource = empobj;
                GridView1.DataBind();
                DropDownList1.DataSource = empobj;
                DropDownList1.DataTextField = "supplier";
                DropDownList1.DataBind();
            }

1 Ответ

1 голос
/ 14 марта 2020

Было бы весьма полезно увидеть ваш JSON объектный код, но я думаю, что могу найти то, что мне нужно, из скриншотов

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

var x = empobj.Select(e =>  e.supplier.name).Distinct().ToList();

(Ваш объект поставщика только кажется содержит имя? Это немного странно, почему бы даже быть объектом поставщика вообще, если он содержит только строку. Я подумал, что он может содержать больше, например, имя и идентификатор. Если он содержит больше, и вы хотите, чтобы отображаемый текст и значение отличались, используйте один из методов здесь , чтобы сгруппировать, например, по значению, а затем linq .Select(g => new ListItem(){Text = g.First(), Value = g.Key}), чтобы сгенерировать List<ListItem>, который может быть источником данных для вашего раскрывающегося списка)

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

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