Стандартные ASP.NET ListBox'
имеют DataTextField
и DataValueField
, используемые для привязки данных, то, что я ищу, похоже на DataSelectedField
свойство.
Например, у меня естьбаза данных, которая содержит ранее выбранные значения, которые я просто хочу повторно привязать к ListBox
.
Каков наилучший способ добиться этого?
Просто чтобы дать всем больше подсказокчто я ищу, посмотрите на следующий код:
У меня есть список:
<asp:ListBox runat="server" ID="lbxStuff" SelectionMode="Multiple">
</asp:ListBox>
Установка его значений:
public static List<Triplet> GetDummyData()
{
return new List<Triplet>
{
new Triplet("A", 1, true),
new Triplet("B", 2, false),
new Triplet("C", 3, true)
};
}
protected void BindList()
{
List<Triplet> items = GetDummyData();
foreach (Triplet item in items)
{
lbxStuff.Items.Add(new ListItem(item.First.ToString(), item.Second.ToString())
{
Selected = (bool)item.Third
});
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindList();
}
}
Но он чувствуетИзлишне ли это делать так, наверняка должен быть лучший / более быстрый и стандартный способ достижения этого?Как через ObjectDataSource
?Иначе я должен добавить свое собственное свойство DataSelectedField
через WebControlAdapter
?(снова перебор)