我正在尝试将排序列表(desc)绑定到RadioButtonList控件。但这不起作用。列表按升序绑定。
ASPX:
<asp:RadioButtonList ID="rbl" runat="server" AppendDataBoundItems="true"
DataTextField="OptionText" DataValueField="Value">
</asp:RadioButtonList>
C#:
List<Options> lst = GetList();
rbl.DataSource = (lst.FindAll(x => x.QId == 5)).OrderByDescending(x => x.Value).ToList();
rbl.DataBind();
public class Option
{
private int _QId;
public int QId
{
get { return _QId; }
set { _QId = value; }
}
private string _OptionText;
public string OptionText
{
get { return _OptionText; }
set { _OptionText = value; }
}
private int? Value;
public int? Value
{
get { return _Value; }
set { _Value = value; }
}
}
答案 0 :(得分:1)
我很确定这与您使用AppendDataBoundItems="true"
有关。如果您真的只想添加新项目,可以考虑添加它们
foreach(var item in (lst.FindAll(x => x.QId == 5)).OrderByDescending(x => x.Value))
{
lst.Items.Insert(0, new ListItem(item.OptionText, item.QId));
}
不是美女,但至少你是在掌控之中。否则,请考虑创建DataTable
并将其用作数据源。
注意:发现了相关问题here