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();
    }
}

任何帮助都将是美妙的,

谢谢!

c#使用下拉列表对变量数据进行排序

您需要通过将结果转换为列表来执行结果,以获得预期的输出,如下所示:

        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();