예제 #1
0
    private void toggleExpanded(int rowindex)
    {
        List <AreaOverview.AOPollutantTreeListRow> data = ViewState[COLDATA] as List <AreaOverview.AOPollutantTreeListRow>;

        AreaOverview.AOPollutantTreeListRow row = data[rowindex];

        //toggle expansion
        row.IsExpanded = !row.IsExpanded;

        //Load data from database, if not already loaded
        if (row.HasChildren && row.IsExpanded && !data.Any(r => r.Level == row.Level + 1 && r.ParentCode == row.Code))
        {
            List <string>       pollutantCodes = getOrderedPollutantCodes();
            MediumFilter.Medium medium         = this.ucMediumSelector.SelectedMedium;
            int pollutantGroupID = Convert.ToInt32(this.cbPollutantGroup.SelectedValue);

            if (row.Level == 0)
            {
                var activities = QueryLayer.AreaOverview.GetPollutantReleaseActivities(SearchFilter, medium, pollutantGroupID, new List <string> {
                    row.SectorCode
                }, pollutantCodes);
                addToData(activities);
            }
            else if (row.Level == 1)
            {
                var subactivities = QueryLayer.AreaOverview.GetPollutantReleaseSubActivities(SearchFilter, medium, pollutantGroupID, new List <string> {
                    row.ActivityCode
                }, pollutantCodes);
                addToData(subactivities);
            }
        }

        populateList(false); //do not restart paging
    }
예제 #2
0
    //Rows will only be shown if parent is expanded (grand-parents must be expanded too)
    protected void rows_OnItemDataBound(object sender, ListViewItemEventArgs e)
    {
        ListViewDataItem dataItem = e.Item as ListViewDataItem;

        if (dataItem == null)
        {
            return;                   //safe check
        }
        int rowindex = dataItem.DataItemIndex;
        List <AreaOverview.AOPollutantTreeListRow> data = ViewState[COLDATA] as List <AreaOverview.AOPollutantTreeListRow>;

        AreaOverview.AOPollutantTreeListRow row = data[rowindex];

        //Sectors need not to be considered. Will always be visible
        bool collapsed = false;

        if (row.Level > 0)
        {
            //is sector collapsed?
            collapsed = !data.Single(d => d.SectorCode == row.SectorCode && d.Level == 0).IsExpanded;

            if (row.Level > 1 && !collapsed)
            {
                //is activity collapsed?
                collapsed = !data.Single(d => d.ActivityCode == row.ActivityCode && d.Level == 1).IsExpanded;
            }
        }

        dataItem.Visible = !collapsed;
    }
예제 #3
0
    private void toggleExpanded(int rowindex)
    {
        List <AreaOverview.AOPollutantTreeListRow> data = ViewState[COLDATA] as List <AreaOverview.AOPollutantTreeListRow>;

        AreaOverview.AOPollutantTreeListRow row = data[rowindex];

        //toggle expansion
        row.IsExpanded = !row.IsExpanded;

        //Load data from database, if not already loaded
        if (row.HasChildren && row.IsExpanded && !data.Any(r => r.Level == row.Level + 1 && r.ParentCode == row.Code))
        {
            List <string> pollutantCodes   = getOrderedPollutantCodes();
            int           pollutantGroupID = Convert.ToInt32(this.cbPollutantGroup.SelectedValue);

            if (row.Level == 0)
            {
                var activities = QueryLayer.AreaOverview.GetPollutantTransferActivities(SearchFilter, pollutantGroupID, new List <string> {
                    row.SectorCode
                }, pollutantCodes);
                addToData(activities);
            }
            else if (row.Level == 1)
            {
                var subactivities = QueryLayer.AreaOverview.GetPollutantTransferSubActivities(SearchFilter, pollutantGroupID, new List <string> {
                    row.ActivityCode
                }, pollutantCodes);
                addToData(subactivities);
            }
        }

        populateList(false); //do not restart paging

        // notify that content has changed (print)
        if (ContentChanged != null)
        {
            ContentChanged.Invoke(null, EventArgs.Empty);
        }
    }