コード例 #1
0
ファイル: SearchContext.cs プロジェクト: shenlos/dukous-boss
 /// <summary>
 /// 根据新的过滤部分预取 URL,同时页序号被重置为初始值
 /// </summary>
 /// <param name="fieldName"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 public string PrefetchNewFilterUrl(string fieldName, decimal value)
 {
     fieldName = RetrieveFieldName(fieldName);
     if (IsDefaultValue(fieldName, value))
     {
         return PrefetchNewFilterUrlImpl(fieldName, null);
     }
     else
     {
         IFilterPart filter = new TermNumberFilterPart(fieldName, value);
         return PrefetchNewFilterUrlImpl(fieldName, filter);
     }
 }
コード例 #2
0
ファイル: SearchContext.cs プロジェクト: shenlos/dukous-boss
        /// <summary>
        /// 设置过滤部分
        /// </summary>
        /// <param name="fieldName"></param>
        /// <param name="value"></param>
        public void SetFilter(string fieldName, decimal value)
        {
            fieldName = RetrieveFieldName(fieldName);

            IFilterPart existed = null;
            foreach (IFilterPart filter in this.m_filters)
            {
                if (string.Compare(filter.FieldName, fieldName, true) == 0)
                {
                    existed = filter;
                    break;
                }
            }

            if (IsDefaultValue(fieldName, value))
            {
                if (existed != null)
                {
                    this.m_filters.Remove(existed);
                    this.MarkDirty();
                }
                return;
            }

            TermNumberFilterPart part = existed as TermNumberFilterPart;
            if (part != null)
            {
                if (part.Value != value)
                {
                    part.Value = value;
                    this.MarkDirty();
                }
                return;
            }
            else if (existed != null)
            {
                this.m_filters.Remove(existed);
            }

            part = new TermNumberFilterPart(fieldName, value);
            this.m_filters.Add(part);
            this.MarkDirty();
        }