示例#1
0
    protected void PopulateFilterUi()
    {
        if (itemId <= 0 || _hasRun)
            return;

        if (IsPostBack) {
            string oldFilterStatus = (IsUrlFilterStatusEmpty() ? String.Empty : tbUrlFilteringStatus.Text);
            tbUrlFilteringStatus.Text = String.Empty;

            // accept user-specified filtering URLs
            if (tbAddUrlFilter.Text.Length > 0) {
                AddListItem("/" + tbAddUrlFilter.Text.Trim('/'), true);
                tbAddUrlFilter.Text = String.Empty;
            }

            // add all url filters clicked
            if (Context.Request.Form["__EVENTTARGET"] != null && Context.Request.Form["__EVENTTARGET"] == this.btnUrlFilterAddAll.UniqueID) {
                foreach (ListItem li in cbl1.Items) {
                    li.Selected = true;
                }
            }

            // remove all url filters clicked
            if (Context.Request.Form["__EVENTTARGET"] != null && Context.Request.Form["__EVENTTARGET"] == this.btnUrlFilterRemoveAll.UniqueID) {
                foreach (ListItem li in cbl1.Items) {
                    li.Selected = false;
                }
            }

            // use each enabled (checked) url
            foreach (ListItem li in cbl1.Items) {
                if (li.Selected) {
                    _pagePaths.Add("/" + li.Value.Trim('/'));

                    if (tbUrlFilteringStatus.Text.Length > 0)
                        tbUrlFilteringStatus.Text += ", ";

                    tbUrlFilteringStatus.Text += "/" + li.Value.Trim('/');
                }
            }

            // fire any hooked handlers if selection has changed
            if (null != SelectionChanged && oldFilterStatus != tbUrlFilteringStatus.Text)
                SelectionChanged.Invoke(this, new EventArgs());

        } else {
            Analytics anl = new Analytics(ContentApiInstance.RequestInformationRef);
            string[] urls = anl.GetContentUrls(itemId);
            foreach (string url in urls) {
                if (!string.IsNullOrEmpty(url))
                    AddListItem("/" + url.Trim('/'), false);
            }
            foreach (ListItem li in cbl1.Items)
            {
                li.Selected = true;
                _pagePaths.Add("/" + li.Value.Trim('/'));
            }
        }

        _hasRun = true;

        if (tbUrlFilteringStatus.Text.Length == 0)
            tbUrlFilteringStatus.Text = GetMessage("lbl all urls allowed");
    }