Пример #1
0
        /// <summary>
        /// Outputs server control content to a provided <see cref="T:System.Web.UI.HtmlTextWriter" /> object and stores tracing information about the control if tracing is enabled.
        /// </summary>
        /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> object that receives the control content.</param>
        public override void RenderControl(HtmlTextWriter writer)
        {
            var rockPage = Page as RockPage;

            _lbPersonMerge.Visible = ShowMergePerson && _parentGrid.CanViewTargetPage(_parentGrid.PersonMergePageRoute);
            _lbBulkUpdate.Visible  = ShowBulkUpdate && _parentGrid.CanViewTargetPage(_parentGrid.BulkUpdatePageRoute);

            if (ShowCommunicate)
            {
                string url = _parentGrid.CommunicationPageRoute;
                if (string.IsNullOrWhiteSpace(url))
                {
                    var pageRef = rockPage.Site.CommunicationPageReference;
                    if (pageRef.PageId > 0)
                    {
                        pageRef.Parameters.AddOrReplace("CommunicationId", "0");
                        url = pageRef.BuildUrl();
                    }
                    else
                    {
                        url = "~/Communication/{0}";
                    }
                }
                _lbCommunicate.Visible = _parentGrid.CanViewTargetPage(url);
            }
            else
            {
                _lbCommunicate.Visible = false;
            }

            _aAdd.Visible  = ShowAdd && !String.IsNullOrWhiteSpace(ClientAddScript);
            _lbAdd.Visible = ShowAdd && String.IsNullOrWhiteSpace(ClientAddScript);

            _aExcelExport.Visible  = ShowExcelExport && !String.IsNullOrWhiteSpace(ClientExcelExportScript);
            _lbExcelExport.Visible = ShowExcelExport && String.IsNullOrWhiteSpace(ClientExcelExportScript);

            _lbMergeTemplate.Visible = ShowMergeTemplate && _parentGrid.CanViewTargetPage(_parentGrid.MergeTemplatePageRoute);

            base.RenderControl(writer);
        }