or
I'm trying to write a workaround for the bug in your RadTabStrip control that prevents tabs from being hidden and displayed on demand.
So instead of building the tabstrip with some tabs hidden, I now add only the tab items I want displayed initially, then use javascript to add further tab items later.
Here's a snippet of the js code...
var tabStrip = $find('myTabStrip');var tab = new Telerik.Web.UI.RadTab();tab.set_text('text');tab.set_value('pseudo-id_because_ID_field_is_weirdly_not_supported');var attributes = tab.get_attributes();attributes.setAttribute("onclick", "alert('hello')");tabStrip.get_tabs().insert(1, tab);this runs ok and adds a tab to the page, but the attribute is never set, and when I look at the page source it has never been rendered. The items rendered using server side code with the same settings work fine.
Is there something else I should be doing, or is this another bug?

if (e.Item is GridPagerItem) //set the appropriate values in the Pager drop down { GridPagerItem gridPagerItem= e.Item as GridPagerItem; Label pageSizeLabel = gridPagerItem.FindControl("ChangePageSizeLabel") as Label; if (null != pageSizeLabel) pageSizeLabel.Text = "Number of Items:"; GridUsersList.PagerStyle.PagerTextFormat = "{4}{5} " + "items in " + "{1}" + " pages"; GridUsersList.PagerStyle.NextPageToolTip = "Next Page"; GridUsersList.PagerStyle.PrevPageToolTip = "Previous Page"; GridUsersList.PagerStyle.LastPageToolTip = "Last Page"; GridUsersList.PagerStyle.FirstPageToolTip = "First Page"; }<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ReportManager.ascx.cs" Inherits="AZ.SA.RL.App.ProgramManagement.Controls.ReportManager" %><telerik:RadCodeBlock ID="ControlScripts" runat="server"><script type="text/javascript"> function onRequestStart(sender, args) { if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 || args.get_eventTarget().indexOf("ExportToWordButton") >= 0 || args.get_eventTarget().indexOf("ExportToCsvButton") >= 0) { args.set_enableAjax(false); } }</script></telerik:RadCodeBlock><telerik:RadAjaxManager ID="Report_ScriptManager" runat="server"> <ClientEvents OnRequestStart="onRequestStart" /> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="Result_Grid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="Result_Grid" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><telerik:RadAjaxPanel ID="ControlContainer_AjaxPanel" runat="server" CssClass="ContentBlock" Style="width:auto"> <h3><asp:Label ID="ControlHeader_Label" runat="server" Text="Quick Report" /></h3> <asp:ValidationSummary ID="QuickReport_ValidationSummary" runat="server" ShowMessageBox="false" ShowSummary="true" ValidationGroup="QuickReportValidation" /> <asp:Panel ID="QuickReport_Panel" runat="server" Visible="true"> <ul> <li> <asp:Label ID="QuickReportType_Label" runat="server" AssociatedControlID="QuickReportType_Combobox" Text="Quick Report" /> <telerik:RadComboBox ID="QuickReportType_Combobox" runat="server" /> </li> </ul> <ul> <li> <asp:Label ID="StartDate_Label" runat="server" AssociatedControlID="QuickReportStartDate_DatePicker" Text="Start Date" /> <telerik:RadDatePicker ID="QuickReportStartDate_DatePicker" runat="server"> <ShowAnimation Type="Fade" Duration="500" /> <HideAnimation Type="Fade" Duration="500" /> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="QuickReportStartDate_RequiredField" runat="server" ControlToValidate="QuickReportStartDate_DatePicker" CssClass="Validator" Display="Dynamic" ErrorMessage="Please specify a start date in the Start Date field." SetFocusOnError="true" Text="*" ValidationGroup="QuickReportValidation" /> <asp:CompareValidator ID="QuickReportStartDate_StartDateBeforeEndDate" runat="server" ControlToValidate="QuickReportStartDate_DatePicker" ControlToCompare="QuickReportEndDate_DatePicker" CssClass="Validator" Display="Dynamic" ErrorMessage="The start date of a report must come before its end date." Operator="LessThanEqual" SetFocusOnError="true" Text="*" Type="Date" ValidationGroup="QuickReportValidation" /> </li> </ul> <ul> <li> <asp:Label ID="EndDate_Label" runat="server" AssociatedControlID="QuickReportEndDate_DatePicker" Text="End Date" /> <telerik:RadDatePicker ID="QuickReportEndDate_DatePicker" runat="server"> <ShowAnimation Type="Fade" Duration="500" /> <HideAnimation Type="Fade" Duration="500" /> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="QuickReportEndDate_RequiredField" runat="server" ControlToValidate="QuickReportEndDate_DatePicker" CssClass="Validator" Display="Dynamic" ErrorMessage="Please specify an end date in the Start Date field." SetFocusOnError="true" Text="*" ValidationGroup="QuickReportValidation" /> </li> </ul> <ul> <li> <asp:Label ID="Options_Label" runat="server" AssociatedControlID="QuickReportIncludeQuickReport_CheckBoxList" Text="Options" /> <div class="CheckBoxList"> <asp:CheckBoxList ID="QuickReportIncludeQuickReport_CheckBoxList" runat="server" RepeatLayout="UnorderedList"> <asp:ListItem Text="Include Quick Plans" Value="0" /> </asp:CheckBoxList> </div> </li> </ul> <asp:Button ID="RunReport_Button" runat="server" CausesValidation="true" OnClick="RunReport_Button_Click" Text="Run Report" ValidationGroup="QuickReportValidation" /> </asp:Panel> <asp:Panel ID="CustomReport_Panel" runat="server"> </asp:Panel> <asp:Panel ID="Result_Panel" runat="server" Visible="false"> <telerik:RadGrid ID="Result_Grid" runat="server" ExportSettings-ExportOnlyData="true" ExportSettings-OpenInNewWindow="true" ExportSettings-IgnorePaging = "true" ExportSettings-HideStructureColumns="true" OnNeedDataSource="Result_Grid_NeedDataSource" OnDetailTableDataBind="Result_Grid_DetailTableDataBind" OnGridExporting="Result_Grid_GridExporting" OnItemDataBound="Result_Grid_ItemDataBound" Skin="Black"> <MasterTableView AllowPaging="true" AutoGenerateColumns="false" CommandItemDisplay = "Top" CommandItemSettings-ShowExportToCsvButton="false" CommandItemSettings-ShowExportToExcelButton="true" CommandItemSettings-ShowExportToPdfButton="false" CommandItemSettings-ShowExportToWordButton="true" CommandItemSettings-ShowAddNewRecordButton="false" GroupLoadMode="Server" Name="ReportResults" HierarchyDefaultExpanded="true" HierarchyLoadMode="ServerBind" PagerStyle-AlwaysVisible="true" PagerStyle-Mode="NextPrevNumericAndAdvanced" PagerStyle-Position="Top" PageSize="30" TableLayout="Fixed"> <DetailTables> <telerik:GridTableView AutoGenerateColumns="true" Name="DetailResults" OnDataBound="Result_DetailGrid_OnDataBound" OnPreRender="Result_DetailGrid_PreRender" BorderStyle="None" ShowHeader="false" TableLayout="Fixed"> </telerik:GridTableView> </DetailTables> </MasterTableView> </telerik:RadGrid> </asp:Panel> </telerik:RadAjaxPanel><%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ReportView.ascx.cs" Inherits="AZ.SA.RL.App.ProgramManagement.ReportView" %><%@ Register Src="~/Controls/ReportManager.ascx" TagName="ReportManager" TagPrefix="pm" %><telerik:RadAjaxManagerProxy ID="Program_AjaxManager" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="Report_Toolbar_ButtonClick"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="Report_ReportManager" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManagerProxy><asp:UpdatePanel ID="Toolbar_AjaxPanel" runat="server" UpdateMode="Conditional"><ContentTemplate> <telerik:RadToolBar ID="Report_Toolbar" runat="server" Skin="Black" BorderStyle="None" BorderWidth="0" OnButtonClick="Report_Toolbar_ButtonClick" Width="100%"> <Items> <telerik:RadToolBarDropDown Text="New Report" DropDownWidth="150px"> <Buttons> <telerik:RadToolBarButton Text="Quick Report" CommandName="NEW" Value="Quick" /> <telerik:RadToolBarButton Text="Custom Report" CommandName="NEW" Value="Custom" Enabled="false" Visible="false" /> </Buttons> </telerik:RadToolBarDropDown> <telerik:RadToolBarButton IsSeparator="true" Value="Sep1" /> <telerik:RadToolBarButton Text="Criteria" CommandName="CRITERIA" Checked="true" CheckOnClick="true" Group="PlanType" /> <telerik:RadToolBarButton Text="Results" CommandName="RESULTS" Checked="false" CheckOnClick="true" Group="PlanType" /> </Items> </telerik:RadToolBar></ContentTemplate></asp:UpdatePanel><asp:UpdatePanel ID="Content_AjaxPanel" runat="server" UpdateMode="Conditional"><ContentTemplate> <div class="ContentContainer"> <pm:ReportManager ID="Report_ReportManager" runat="server" /> </div></ContentTemplate></asp:UpdatePanel>using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using AZ.SA.RL.App.ProgramManagement.Objects;using System.ComponentModel;namespace AZ.SA.RL.App.ProgramManagement.Controls{ public partial class ReportManager : System.Web.UI.UserControl { //Enumerators #region Enumerators public enum QuickReportType { ByProgrammingCenter = 0, ByPrimaryOrganizer = 1, ByOutcomes = 2 } public enum OpMode { Quick = 0, Custom = 1 } public enum DispMode { Criteria = 0, Results = 1 } #endregion //Properties #region Properties /// <summary> /// Gets or sets the current quick report being run by the manager. /// </summary> [Browsable(true), Category("Function"), DefaultValue(QuickReportType.ByProgrammingCenter)] public QuickReportType QuickReport { get { QuickReportType result = QuickReportType.ByProgrammingCenter; if (ViewState["__QUICKREPORT"] != null) { result = (QuickReportType)ViewState["__QUICKREPORT"]; } return result; } set { ViewState["__QUICKREPORT"] = value; } } /// <summary> /// Gets or sets the current operation mode of the manager. /// </summary> [Browsable(true), Category("Function"), DefaultValue(OpMode.Quick)] public OpMode OperationMode { get { OpMode result = OpMode.Quick; if (ViewState["__OPERATIONMODE"] != null) { result = (OpMode)ViewState["__OPERATIONMODE"]; } return result; } set { ViewState["__OPERATIONMODE"] = value; } } /// <summary> /// Gets or sets the current display mode of the manager. /// </summary> [Browsable(true), Category("Function"), DefaultValue(DispMode.Criteria)] public DispMode DisplayMode { get { DispMode result = DispMode.Criteria; if (ViewState["__DISPLAYMODE"] != null) { result = (DispMode)ViewState["__DISPLAYMODE"]; } return result; } set { ViewState["__DISPLAYMODE"] = value; //ControlContainer_AjaxPanel.RaisePostBackEvent("__DISPLAYMODECHANGED"); } } /// <summary> /// Sets the title for the manager /// </summary> [Browsable(true), Category("Data"), DefaultValue("No Title")] public string Title { private get { string result = "No Title"; if (ViewState["__TITLE"] != null) { result = (string)ViewState["__TITLE"]; } return result; } set { ViewState["__TITLE"] = value; } } /// <summary> /// Stores the start datetime for quick report filter /// </summary> [Browsable(false), Category("Data"), DefaultValue(null)] private DateTime ReportStartDate { get { DateTime result = default(DateTime); if (ViewState["__STARTDATE"] != null) { result = (DateTime)ViewState["__STARTDATE"]; } return result; } set { ViewState["__STARTDATE"] = value; } } /// <summary> /// Stores the end datetime for quick report filter /// </summary> [Browsable(false), Category("Data"), DefaultValue(null)] private DateTime ReportEndDate { get { DateTime result = default(DateTime); if (ViewState["__ENDDATE"] != null) { result = (DateTime)ViewState["__ENDDATE"]; } return result; } set { ViewState["__ENDDATE"] = value; } } #endregion //Methods - Custom #region Methods - Custom protected void RenderView() { Label controlHeader = ControlHeader_Label; Panel quickReportPanel = QuickReport_Panel; Panel customReportPanel = CustomReport_Panel; Panel resultPanel = Result_Panel; switch (DisplayMode) { case DispMode.Criteria: resultPanel.Visible = false; if (OperationMode == OpMode.Quick) { quickReportPanel.Visible = true; customReportPanel.Visible = false; } else if (OperationMode == OpMode.Custom) { quickReportPanel.Visible = false; customReportPanel.Visible = true; } break; case DispMode.Results: if (OperationMode == OpMode.Quick) { resultPanel.Visible = true; quickReportPanel.Visible = false; customReportPanel.Visible = false; } else if (OperationMode == OpMode.Custom) { } break; } if (DisplayMode == DispMode.Criteria) { if (OperationMode == OpMode.Custom) { Title = "Custom Report Criteria"; } else { Title = "Quick Report Criteria"; } } //Modify the header to show the current report controlHeader.Text = Title; } protected void PopulateQuickReports(object sender) { RadComboBox quickReportList = (RadComboBox)sender; foreach (QuickReportType quickReportEnum in Enum.GetValues(typeof(QuickReportType))) { int value = (int)Enum.Parse(typeof(QuickReportType), quickReportEnum.ToString()); RadComboBoxItem reportItem = new RadComboBoxItem(quickReportEnum.ToString(), value.ToString()); quickReportList.Items.Add(reportItem); QuickReportType itemValue = (QuickReportType)value; switch (itemValue) { case QuickReportType.ByProgrammingCenter: reportItem.Text = "By Programming Center"; break; case QuickReportType.ByPrimaryOrganizer: reportItem.Text = "By Primary Organizer"; break; case QuickReportType.ByOutcomes: reportItem.Text = "By Primary Goal"; break; } } } protected void RenderReportGrid(object sender, QuickReportType reportType) { RadGrid reportGrid = (RadGrid)sender; GridBoundColumn boundColumn = null; reportGrid.MasterTableView.AutoGenerateColumns = false; reportGrid.MasterTableView.TableLayout = GridTableLayout.Fixed; reportGrid.Columns.Clear(); switch (reportType) { case QuickReportType.ByProgrammingCenter: Title = "Quick Report - Programs by Programming Center (" + ReportStartDate.ToShortDateString() + " - " + ReportEndDate.ToShortDateString() + ")"; reportGrid.MasterTableView.ClientDataKeyNames = new string[] { "DepartmentUnitId" }; if (reportGrid.Columns.Count <= 0) { //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "UnitName"; boundColumn.HeaderText = "Programming Center"; boundColumn.UniqueName = "UnitName"; //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "UnitShortName"; boundColumn.HeaderText = "Unit Short NAme"; boundColumn.UniqueName = "UnitShortName"; boundColumn.Visible = false; //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "DepartmentUnitId"; boundColumn.HeaderText = "DepartmentUnitId"; boundColumn.UniqueName = "DepartmentUnitId"; boundColumn.Visible = false; //Add the Program Count column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "ProgramCount"; boundColumn.HeaderText = "ProgramCount"; boundColumn.UniqueName = "ProgramCount"; boundColumn.Visible = false; } break; case QuickReportType.ByPrimaryOrganizer: Title = "Quick Report - Programs by Primary Organizer (" + ReportStartDate.ToShortDateString() + " - " + ReportEndDate.ToShortDateString() + ")"; reportGrid.MasterTableView.DataKeyNames = new string[] {"PrimaryOrganizerName","GroupId"}; if (reportGrid.Columns.Count <= 0) { //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "PrimaryOrganizerName"; boundColumn.HeaderText = "Primary Organizer"; boundColumn.UniqueName = "PrimaryOrganizerName"; //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "GroupName"; boundColumn.HeaderText = "Group Name"; boundColumn.UniqueName = "GroupName"; boundColumn.Visible = false; //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "GroupId"; boundColumn.HeaderText = "GroupId"; boundColumn.UniqueName = "GroupId"; boundColumn.Visible = false; //Add the Program Count column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "ProgramCount"; boundColumn.HeaderText = "ProgramCount"; boundColumn.UniqueName = "ProgramCount"; boundColumn.Visible = false; } break; case QuickReportType.ByOutcomes: Title = "Quick Report - Programs by Primary Goal (" + ReportStartDate.ToShortDateString() + " - " + ReportEndDate.ToShortDateString() + ")"; reportGrid.MasterTableView.DataKeyNames = new string[] { "BaseOutcomeId" }; if (reportGrid.Columns.Count <= 0) { //Add the Program Name column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "PrimaryGoalName"; boundColumn.HeaderText = "Primary Goal"; boundColumn.UniqueName = "PrimaryGoalName"; //Add the Base Outcome Id column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "BaseOutcomeId"; boundColumn.HeaderText = "BaseOutcomeId"; boundColumn.UniqueName = "BaseOutcomeId"; boundColumn.Visible = false; //Add the Program Count column boundColumn = new GridBoundColumn(); reportGrid.Columns.Add(boundColumn); boundColumn.DataField = "ProgramCount"; boundColumn.HeaderText = "ProgramCount"; boundColumn.UniqueName = "ProgramCount"; boundColumn.Visible = false; } break; } //Set the export file name to the title reportGrid.ExportSettings.FileName = Title; } protected void RenderDetailGrid(object sender, QuickReportType reportType) { //RadGrid reportGrid = (RadGrid)sender; //GridTableView detailGrid = reportGrid.MasterTableView.DetailTables[0]; GridTableView detailGrid = (GridTableView)sender; GridBoundColumn boundColumn = null; GridDateTimeColumn dateColumn = null; detailGrid.AutoGenerateColumns = false; detailGrid.TableLayout = GridTableLayout.Fixed; switch (reportType) { case QuickReportType.ByProgrammingCenter: break; case QuickReportType.ByPrimaryOrganizer: if (detailGrid.Columns.Count <= 0) { //Add the Program Name column boundColumn = new GridBoundColumn(); detailGrid.Columns.Add(boundColumn); boundColumn.DataField = "ProgramName"; boundColumn.HeaderText = "Program Name"; boundColumn.UniqueName = "ProgramName"; //boundColumn.HeaderStyle.Width = Unit.Percentage(30); //boundColumn.ItemStyle.Width = Unit.Percentage(30); //Add the Primary Goal column boundColumn = new GridBoundColumn(); detailGrid.Columns.Add(boundColumn); boundColumn.DataField = "PrimaryGoalName"; boundColumn.HeaderText = "Primary Goal"; boundColumn.UniqueName = "PrimaryGoalName"; //boundColumn.HeaderStyle.Width = Unit.Percentage(30); //boundColumn.ItemStyle.Width = Unit.Percentage(30); //Add the Start Date column dateColumn = new GridDateTimeColumn(); detailGrid.Columns.Add(dateColumn); dateColumn.DataField = "StartDate"; dateColumn.HeaderText = "Start Date"; dateColumn.UniqueName = "StartDate"; //dateColumn.HeaderStyle.Width = Unit.Percentage(20); //dateColumn.ItemStyle.Width = Unit.Percentage(20); //Add the End Date column dateColumn = new GridDateTimeColumn(); detailGrid.Columns.Add(dateColumn); dateColumn.DataField = "EndDate"; dateColumn.HeaderText = "End Date"; dateColumn.UniqueName = "EndDate"; //dateColumn.HeaderStyle.Width = Unit.Percentage(20); //dateColumn.ItemStyle.Width = Unit.Percentage(20); } break; case QuickReportType.ByOutcomes: break; } } #endregion //Methods - Event Handling #region Methods - Event Handling protected void Page_PreRender(object sender, EventArgs e) { RadComboBox quickReportList = QuickReportType_Combobox; if (quickReportList.Items.Count <= 0) { PopulateQuickReports(quickReportList); } RenderView(); } protected void RunReport_Button_Click(object sender, EventArgs e) { Page.Validate("QuickReportValidation"); if (Page.IsValid) { RadComboBox quickReportTypeList = QuickReportType_Combobox; RadDatePicker startDatePicker = QuickReportStartDate_DatePicker; RadDatePicker endDatePicker = QuickReportEndDate_DatePicker; DateTime startDate = default(DateTime); DateTime endDate = default(DateTime); QuickReportType quickReportType = (QuickReportType)int.Parse(quickReportTypeList.SelectedValue); if (startDatePicker.SelectedDate.HasValue) startDate = startDatePicker.SelectedDate.Value; if (endDatePicker.SelectedDate.HasValue) endDate = endDatePicker.SelectedDate.Value; //Set the quick report type QuickReport = quickReportType; OperationMode = OpMode.Quick; DisplayMode = DispMode.Results; ReportStartDate = startDate; ReportEndDate = endDate; Result_Grid.Rebind(); } } protected void Result_Grid_GridExporting(object sender, GridExportingArgs e) { RadGrid reportGrid = (RadGrid)sender; switch (e.ExportType) { case ExportType.Excel: reportGrid.MasterTableView.ExpandCollapseColumn.Visible = false; //reportGrid.MasterTableView.Columns.RemoveAt(0); //reportGrid.MasterTableView.Columns.RemoveAt(0); //reportGrid.MasterTableView.Visible = false; break; } } protected void Result_Grid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { RadGrid reportGrid = (RadGrid)sender; if (!e.IsFromDetailTable) { switch (QuickReport) { case QuickReportType.ByProgrammingCenter: reportGrid.DataSource = Report.ProgrammingCenters(ReportStartDate, ReportEndDate, true); RenderReportGrid(reportGrid, QuickReport); break; case QuickReportType.ByPrimaryOrganizer: reportGrid.DataSource = Report.PrimaryOrganinizers(ReportStartDate, ReportEndDate, true); RenderReportGrid(reportGrid, QuickReport); break; case QuickReportType.ByOutcomes: reportGrid.DataSource = Report.Outcomes(ReportStartDate, ReportEndDate, true); RenderReportGrid(reportGrid, QuickReport); break; } } } protected void Result_Grid_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e) { RadGrid reportGrid = (RadGrid)sender; GridTableView detailGrid = (GridTableView)e.DetailTableView; //RenderDetailGrid(detailGrid, QuickReport); GridDataItem dataItem = detailGrid.ParentItem; switch (QuickReport) { case QuickReportType.ByProgrammingCenter: int departmentUnitId = (int)dataItem.GetDataKeyValue("DepartmentUnitId"); detailGrid.DataSource = Report.ProgramsByProgrammingCenter(departmentUnitId, ReportStartDate, ReportEndDate); break; case QuickReportType.ByPrimaryOrganizer: string primaryOrganizerName = dataItem.GetDataKeyValue("PrimaryOrganizerName").ToString(); int groupId = (int)dataItem.GetDataKeyValue("GroupId"); detailGrid.DataSource = Report.ProgramsByPrimaryOrganizer(primaryOrganizerName, groupId, ReportStartDate, ReportEndDate); break; case QuickReportType.ByOutcomes: int baseOutcomeId = (int)dataItem.GetDataKeyValue("BaseOutcomeId"); detailGrid.DataSource = Report.ProgramsByPrimaryOutcome(baseOutcomeId, ReportStartDate, ReportEndDate); break; } } protected void Result_Grid_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { if (e.Item.OwnerTableView.Name == "ReportResults") { GridDataItem gridDataItem = (GridDataItem)e.Item; int programCount = 0; switch (QuickReport) { case QuickReportType.ByProgrammingCenter: string unitName = gridDataItem["UnitName"].Text; programCount = int.Parse(gridDataItem["ProgramCount"].Text); if(programCount == 1) gridDataItem["UnitName"].Text = (unitName + " (" + programCount.ToString() + " Program)").ToUpper(); else gridDataItem["UnitName"].Text = (unitName + " (" + programCount.ToString() + " Programs)").ToUpper(); gridDataItem["UnitName"].Font.Bold = true; gridDataItem["UnitName"].HorizontalAlign = HorizontalAlign.Left; break; case QuickReportType.ByPrimaryOrganizer: string organizerName = gridDataItem["PrimaryOrganizerName"].Text.ToString(); string groupName = gridDataItem["GroupName"].Text.ToString(); programCount = int.Parse(gridDataItem["ProgramCount"].Text); if (programCount == 1) gridDataItem["PrimaryOrganizerName"].Text = (groupName + " - " + organizerName + " (" + programCount.ToString() + " Program)").ToUpper(); else gridDataItem["PrimaryOrganizerName"].Text = (groupName + " - " + organizerName + " (" + programCount.ToString() + " Programs)").ToUpper(); gridDataItem["PrimaryOrganizerName"].Font.Bold = true; gridDataItem["PrimaryOrganizerName"].HorizontalAlign = HorizontalAlign.Left; break; case QuickReportType.ByOutcomes: string outcomeName = gridDataItem["PrimaryGoalName"].Text; programCount = int.Parse(gridDataItem["ProgramCount"].Text); if(programCount == 1) gridDataItem["PrimaryGoalName"].Text = (outcomeName + " (" + programCount.ToString() + " Program)").ToUpper(); else gridDataItem["PrimaryGoalName"].Text = (outcomeName + " (" + programCount.ToString() + " Programs)").ToUpper(); gridDataItem["PrimaryGoalName"].Font.Bold = true; gridDataItem["PrimaryGoalName"].HorizontalAlign = HorizontalAlign.Left; break; } } } } #endregion }}using System;using System.Web.UI.HtmlControls;using Telerik.Web.UI;namespace AZ.SA.RL.App.ProgramManagement{ public partial class ReportView : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } protected void Report_Toolbar_ButtonClick(object sender, Telerik.Web.UI.RadToolBarEventArgs e) { //Get clicked button information RadToolBarButton button = (RadToolBarButton)e.Item; string command = button.CommandName; string value = button.Value; //Determine which action to take based on the command passed by the clicked toolbar button switch (command) { case "NEW": if (value == "Custom") { Report_ReportManager.DisplayMode = ProgramManagement.Controls.ReportManager.DispMode.Criteria; Report_ReportManager.OperationMode = ProgramManagement.Controls.ReportManager.OpMode.Custom; } else { Report_ReportManager.DisplayMode = ProgramManagement.Controls.ReportManager.DispMode.Criteria; Report_ReportManager.OperationMode = ProgramManagement.Controls.ReportManager.OpMode.Quick; } break; } //Update the program content ajax panel Content_AjaxPanel.Update(); } }}