예제 #1
0
        protected virtual void OnSelecting(ItemDataSourceSelectingEventArgs e)
        {
            EventHandler <ItemDataSourceSelectingEventArgs> handler = base.Events[EventSelecting] as EventHandler <ItemDataSourceSelectingEventArgs>;

            if (handler != null)
            {
                handler.Invoke(this, e);
            }
        }
        protected override System.Collections.IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);

            OnSelecting(selectingArgs);
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetAllItems());
            if (args.Items == null)
            {
                return(null);
            }

            if (selectingArgs.Arguments.RetrieveTotalRowCount)
            {
                selectingArgs.Arguments.TotalRowCount = args.Items.Count;
            }

            if (!string.IsNullOrEmpty(selectingArgs.Arguments.SortExpression) && selectingArgs.Arguments.SortExpression != currentSortExpression)
            {
                args.Items.Sort(new Collections.ItemComparer(selectingArgs.Arguments.SortExpression));
                currentSortExpression = selectingArgs.Arguments.SortExpression;
            }
            else if (!string.IsNullOrEmpty(SortBy))
            {
                args.Items.Sort(new Collections.ItemComparer(SortBy));
            }

            OnFiltering(args);
            if (Filter != null || (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0))
            {
                Collections.ItemList filteredItems = args.Items;

                if (Filter != null)
                {
                    filteredItems = new Collections.ItemList(filteredItems, Filter);
                }

                if (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0)
                {
                    filteredItems = new Collections.ItemList(filteredItems, new Collections.CountFilter(selectingArgs.Arguments.StartRowIndex, selectingArgs.Arguments.MaximumRows));
                }

                args = new N2.Collections.ItemListEventArgs(filteredItems);
            }

            OnSelected(args);
            return(args.Items);
        }
예제 #3
0
		protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
		{
			if (this.Query != null)
			{
			    ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);
			    OnSelecting(selectingArgs);

				IList<ContentItem> items = Query
					.FirstResult(selectingArgs.Arguments.StartRowIndex)
					.MaxResults(selectingArgs.Arguments.MaximumRows)
					.Select();

			    Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(new Collections.ItemList(items));
			    OnSelected(args);
			    return args.Items;
			}
			else
			    return null;
		}
예제 #4
0
        protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            if (this.Query != null)
            {
                ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);
                OnSelecting(selectingArgs);

                IList <ContentItem> items = Query
                                            .FirstResult(selectingArgs.Arguments.StartRowIndex)
                                            .MaxResults(selectingArgs.Arguments.MaximumRows)
                                            .Select();

                Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(new Collections.ItemList(items));
                OnSelected(args);
                return(args.Items);
            }
            else
            {
                return(null);
            }
        }
예제 #5
0
        protected override System.Collections.IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);
            OnSelecting(selectingArgs);
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetAllItems());
            if (args.Items == null)
                return null;

            if(selectingArgs.Arguments.RetrieveTotalRowCount)
                selectingArgs.Arguments.TotalRowCount = args.Items.Count;

            if (!string.IsNullOrEmpty(selectingArgs.Arguments.SortExpression) && selectingArgs.Arguments.SortExpression != currentSortExpression)
            {
                args.Items.Sort(new Collections.ItemComparer(selectingArgs.Arguments.SortExpression));
                currentSortExpression = selectingArgs.Arguments.SortExpression;
            }
            else if (!string.IsNullOrEmpty(SortBy))
            {
                args.Items.Sort(new Collections.ItemComparer(SortBy));
            }

            OnFiltering(args);
            if (Filter != null || (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0))
            {
                Collections.ItemList filteredItems = args.Items;

                if (Filter != null)
                    filteredItems = new Collections.ItemList(filteredItems, Filter);

                if (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0)
                    filteredItems = new Collections.ItemList(filteredItems, new Collections.CountFilter(selectingArgs.Arguments.StartRowIndex, selectingArgs.Arguments.MaximumRows));

                args = new N2.Collections.ItemListEventArgs(filteredItems);
            }

            OnSelected(args);
            return args.Items;
        }
예제 #6
0
 protected virtual void OnSelecting(ItemDataSourceSelectingEventArgs e)
 {
     EventHandler<ItemDataSourceSelectingEventArgs> handler = base.Events[EventSelecting] as EventHandler<ItemDataSourceSelectingEventArgs>;
     if (handler != null)
         handler.Invoke(this, e);
 }