c#使用下拉列表对变量数据进行排序
本文关键字:数据 排序 变量 下拉列表 | 更新日期: 2023-09-27 17:58:40
我目前遇到了一个小问题。
我有一个显示产品的列表视图,我希望包括一个下拉列表,其中有一个过滤按钮,按下该按钮后,将按高低价格或高低价格订购产品。
这是我的密码。
protected void LB_Filter_Click(object sender, EventArgs e)
{
using (DataClasses_ECDataContext db = new DataClasses_ECDataContext())
{
DT_Product Pro = db.DT_Products.SingleOrDefault(x => x.ProductID == int.Parse(ViewState["ProductID"].ToString()));
var product = from x in db.DT_Products
where x.RangeID == Pro.RangeID
select new
{
x.ProductName,
x.ProductID,
x.Sale_Price,
Link = RouteTable.Routes.GetVirtualPath(null, "Product-by-tag", codesnippets.RouteLink(x.ProductID, x.ProductName, 'p')).VirtualPath,
};
if (DDL_Order.SelectedIndex == 0)
{
product.OrderByDescending(v => v.Sale_Price);
}
else if (DDL_Order.SelectedIndex == 1)
{
product.OrderBy(v => v.Sale_Price);
}
LV_Products.DataSource = product;
LV_Products.DataBind();
}
}
任何帮助都将是美妙的,
谢谢!
您需要通过将结果转换为列表来执行结果,以获得预期的输出,如下所示:
List<DT_Product> products = new List<DT_Product>();
if (DDL_Order.SelectedIndex == 0) {
products = product.OrderByDescending(v => v.Sale_Price).ToList();
} else if (DDL_Order.SelectedIndex == 1) {
products = product.OrderBy(v => v.Sale_Price).ToList();
}
LV_Products.DataSource = products;
LV_Product.DataTextField = "ProductName";
LV_Product.DataValueField = "ProductID";
LV_Products.DataBind();
你错过了吗?
LV_Products.DataSource = product;
LV_Product.DataTextField="ProductName";
LV_Product.DataValueField="ProductID";
LV_Products.DataBind();