dropdownlist DataTextField составлен из свойств?

Поскольку вы хотите сравнить каждое string_a с любым string_b, вы должны использовать самосоединение:

with dataset(string_a_id, string_a, string_b_id, string_b) as (
values
    (1, 'hello world', 11, null),
    (2, 'hello world', 13, null),
    (3, 'ipsum lorem', 21, 'hello world')
)

select q1.string_a_id, q1.string_a, q2.string_b_id, q2.string_b
from dataset q1
join dataset q2 on trim(q1.string_a) ilike trim(q2.string_b)

 string_a_id |  string_a   | string_b_id |  string_b   
-------------+-------------+-------------+-------------
           1 | hello world |          21 | hello world
           2 | hello world |          21 | hello world
(2 rows)

Замените values в исходном запросе вашим фактическим запросом.

10
задан Chad Gorshing 11 March 2012 в 01:59
поделиться

3 ответа

Добавьте другое свойство к классу MyObject и свяжите с тем свойством:

public string DisplayValue
{
 get { return string.Format("{0} ({1})", Name, Zip); }
}

Или если Вы не можете изменить MyObject, создайте интерфейсный объект на уровне представления (только для отображения). Это может также быть сделано с помощью некоторого LINQ:

List<MyObject> myList = getObjects();
ddList.DataSource = (from obj in myList
                    select new
                    {
                      Id = obj.Id,
                      Name = string.Format("{0} ({1})", obj.Name, obj.Zip)
                    }).ToList();
ddList.DataValueField = "Id";
ddList.DataTextField = "Name";
ddList.DataBind();

(извините я не имею Visual Studio в наличии, таким образом, могли бы быть ошибки в коде),

22
ответ дан 3 December 2019 в 15:36
поделиться

Я рекомендовал бы читать это: http://martinfowler.com/eaaDev/PresentationModel.html

По существу Вы хотите создать класс, который представляет привязку к конкретному UI. Таким образом, Вы отобразили бы свою Модель (Мой Объект в Вашем примере) к объекту ViewModel и затем связали бы выпадающий список тот путь. Это - прохладный способ думать о разделении проблем.

Править: Вот другой ряд блога на ViewModel: http://blogs.msdn.com/dancre/archive/2006/10/11/datamodel-view-viewmodel-pattern-series.aspx

4
ответ дан 3 December 2019 в 15:36
поделиться

BTW, Try assigning the "DataTextField" and "DataValueField" before you assign the DataSource. Doing so will prevent firing the "SelectedIndexChanged" event while databinding...

2
ответ дан 3 December 2019 в 15:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: