Проблема с несколькими ITransformableFilterValues - PullRequest
2 голосов
/ 06 октября 2010

Я пытаюсь отфильтровать список BDC, и мой фильтр возвращает несколько значений.Когда список BDC фильтруется, он фильтрует на основе первого элемента, а затем игнорирует оставшиеся значения.Кто-нибудь сталкивался с этим и как вы решили это?

#region ITransformableFilterValues Members

        public bool AllowAllValue
        {
            get { return true; }
        }

        public bool AllowEmptyValue
        {
            get { return true; }
        }

        public bool AllowMultipleValues
        {
            get { return true; }
        }

        public string ParameterName
        {
            get { return "Ejemplo"; }
        }

        public ReadOnlyCollection<string> ParameterValues
        {

            get
            {

                List<string> regions = new List<string>();
                SPListItemCollection coleccion;
                using (SPSite site = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb web = site.OpenWeb())
                    {                      
                        web.AllowUnsafeUpdates = true;
                        web.Update();
                        SPList list = web.Lists["Categorias"];
                        SPQuery query= new SPQuery();
                        query.Query= "<Where><Contains><FieldRef Name='Tags'/><Value Type='Note'>" +                HttpContext.Current.Request.Params.Get(0).ToString() + "</Value></Contains></Where>";

                        coleccion= list.GetItems(query);//this is the CAML query

                        debugger.Text = debugger.Text + "Items encontrados:" + coleccion.Count + "<br>" ;                                      
                        int i=0;                       
                        foreach (SPItem item in coleccion)//all the items i want i get them
                        {
                            try
                            {
                                regions.Add(item["Title"].ToString());
                                debugger.Text = debugger.Text + item["Title"].ToString() + "<br>";
                                i++;
                            }
                            catch (Exception ex)
                            {
                                debugger.Text = debugger.Text + item["Title"] + " Excepcion : values[" + i + "]" ;
                                i++;
                            }
                        }                                                         
                    }
                }
                ReadOnlyCollection<string> result = new ReadOnlyCollection<string>(regions);//i add the values to the collection to filter
                return result;

            }    
        }

        [ConnectionProvider("Filtro de ejemplos", "ITransformableFilterValues", AllowsMultipleConnections = true)]
        public ITransformableFilterValues SetConnection()
        {
            return this;
        }

    #endregion
...