public List<Products> GetFilterProducts(string categoryid, List<FilterAttr> Attrs, int doctype, string beginprice, string endprice, string keyWords, string orderby, bool isasc, int pageSize, int pageIndex, ref int totalCount, ref int pageCount, string clientID) { var dal = new ProductsDAL(); StringBuilder attrbuild = new StringBuilder(); StringBuilder salebuild = new StringBuilder(); foreach (var attr in Attrs) { if (attr.Type == EnumAttrType.Parameter) { attrbuild.Append(" and p.ValueList like '%" + attr.ValueID + "%'"); } else if (attr.Type == EnumAttrType.Specification) { salebuild.Append(" and AttrValue like '%" + attr.ValueID + "%'"); } } DataSet ds = dal.GetFilterProducts(categoryid, attrbuild.ToString(), salebuild.ToString(), doctype, beginprice, endprice, keyWords, orderby, isasc ? 1 : 0, pageSize, pageIndex, ref totalCount, ref pageCount, clientID); List<Products> list = new List<Products>(); foreach (DataRow dr in ds.Tables[0].Rows) { Products model = new Products(); model.FillData(dr); list.Add(model); } return list; }