protected void Page_Load(object sender, EventArgs e)
    {
        Control feedback = Utilities.FindControlRecursive(Page.Master, "feedback");

        RadAjaxManager1.AjaxSettings.AddAjaxSetting(RadGrid1, feedback);

        NewLinkUrl = Navigation.Admin_ManageSite(string.Empty).GetAbsoluteClientUrl(true);
        // Display the sites visible to this user.

        if (RadGrid1.MasterTableView.SortExpressions.Count == 0)
        {
            GridSortExpression expression = new GridSortExpression();
            expression.FieldName = "Name";
            expression.SortOrder = GridSortOrder.Ascending;
            RadGrid1.MasterTableView.SortExpressions.AddSortExpression(expression);
        }
        tree1.PopulateTreeView <Region>(SiteManager.GetAllRegions(), true, false, string.Empty);
        if (!IsPostBack)
        {
            FilterExpression = string.Empty;
        }
    }
    protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
    {
        if (e.CommandName == "delete")
        {
            string id   = (string)e.CommandArgument;
            Site   site = SiteManager.GetSiteById(id);

            string regionId = site.Region.Id;

            // If there are users attached to the site, then do not delete.
            if (PersonManager.GetAllPersonsInSite(site).Count > 0)
            {
                ((IFeedback)Page.Master).ShowFeedback(
                    BusiBlocksConstants.Blocks.Administration.ShortName,
                    site.GetType().Name,
                    Feedback.Actions.Error,
                    ErrorSiteNotEmpty);
            }
            else
            {
                string siteNameBeforeDelete = site.Name;
                SiteManager.DeleteSite(site);

                ((IFeedback)Page.Master).ShowFeedback(
                    BusiBlocksConstants.Blocks.Administration.ShortName,
                    site.GetType().Name,
                    Feedback.Actions.Deleted,
                    siteNameBeforeDelete);

                RadGrid1.DataSource = null;
                RadGrid1.Rebind();
            }
            tree1.RebindNode(regionId, false);
        }
        else if (e.CommandName == "edit")
        {
            string id = (string)e.CommandArgument;
            Navigation.Admin_ManageSite(id).Redirect(this);
        }
        else if (e.CommandName == RadGrid.FilterCommandName)
        {
            Pair         filterPair = (Pair)e.CommandArgument;
            IList <Site> items      = new List <Site>();
            switch (filterPair.Second.ToString())
            {
            case "RegionName":
                TextBox tbPattern = (e.Item as GridFilteringItem)["RegionName"].Controls[0] as TextBox;
                FilterExpression = tbPattern.Text;
                BindWithFilter(items);
                RadGrid1.DataBind();
                if (!string.IsNullOrEmpty(FilterExpression))
                {
                    string itemId = SiteManager.GetAllRegionsByName((FilterExpression.Split(',').First())).First().Id;
                    tree1.RebindNode(itemId, true);
                }
                break;

            default:
                break;
            }
        }
    }