标准的ASP.NET ListBox控件有DataTextField和DataValueField属性用于数据绑定,我需要的是类似DataSelectedField属性。
例如,我有一个包含之前选定值的数据库,我只想重新绑定到ListBox上。
最好的方法是什么?
为了让大家更清楚我要找的是什么,请看下面的代码:
我有一个ListBox:
例如,我有一个包含之前选定值的数据库,我只想重新绑定到ListBox上。
最好的方法是什么?
为了让大家更清楚我要找的是什么,请看下面的代码:
我有一个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
?否则我就必须通过 WebControlAdapter
添加自己的 DataSelectedField
属性(同样过度设计)。