or
<
asp:Content
ID
=
"GridContent"
ContentPlaceHolderID
=
"GridContent"
Runat
=
"Server"
>
<
table
border
=
"0"
cellpadding
=
"0"
cellspacing
=
"0"
width
=
"520"
>
<
tr
>
<
td
>
<
div
>
<
telerik:RadGrid
ID
=
"RadGridProgram"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowSorting
=
"True"
AllowPaging
=
"true"
Skin
=
"Simple"
ClientSettings-Resizing-AllowColumnResize
=
"true"
ItemStyle-Wrap
=
"false"
Width
=
"500"
HeaderStyle-Wrap
=
"false"
PageSize
=
"10"
OnNeedDataSource
=
"RadGridProgram_NeedDataSource"
OnItemCommand
=
"RadGridProgram_ItemCommand"
>
<
PagerStyle
Mode
=
"NumericPages"
/>
<
ClientSettings
>
<
Scrolling
AllowScroll
=
"true"
UseStaticHeaders
=
"true"
/>
</
ClientSettings
>
<
MasterTableView
TableLayout
=
"Fixed"
AllowMultiColumnSorting
=
"true"
DataKeyNames
=
"ProgramID"
ShowFooter
=
"false"
PagerStyle-AlwaysVisible
=
"false"
>
<
NoRecordsTemplate
>
<
asp:Label
ID
=
"lblMsg"
runat
=
"server"
Text
=
"No Records found"
></
asp:Label
>
</
NoRecordsTemplate
>
<
Columns
>
<
telerik:GridButtonColumn
ButtonType
=
"LinkButton"
HeaderText
=
"Edit"
CommandName
=
"EditProgram"
UniqueName
=
"Edit"
Text
=
"Edit"
HeaderStyle-Width
=
"40"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Program ID"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramID"
HeaderStyle-Width
=
"80"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Prog. Collection. ID"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramId"
Display
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Program Collection"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramCollection.ProgramName"
HeaderStyle-Width
=
"200"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Client ID"
HeaderButtonType
=
"TextButton"
DataField
=
"ClientId"
Display
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Client"
HeaderButtonType
=
"TextButton"
DataField
=
"Client.ClientName"
HeaderStyle-Width
=
"150"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Program Name"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramName"
HeaderStyle-Width
=
"200"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Program Code"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramCode"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Description"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramDescription"
HeaderStyle-Width
=
"300"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Program Type Id"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramTypeId"
HeaderStyle-Width
=
"200"
Display
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Program Type"
HeaderButtonType
=
"TextButton"
DataField
=
"ProgramType.ProgramTypeCode"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Domain Exp. Date"
HeaderButtonType
=
"TextButton"
DataField
=
"DomainExpDateText"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"SSL Exp. Date"
HeaderButtonType
=
"TextButton"
DataField
=
"SSLExpDateText"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Domain Name"
HeaderButtonType
=
"TextButton"
DataField
=
"DomainName"
HeaderStyle-Width
=
"250"
/>
<
telerik:GridBoundColumn
HeaderText
=
"IPAddress"
HeaderButtonType
=
"TextButton"
DataField
=
"IPAddress"
HeaderStyle-Width
=
"250"
/>
<
telerik:GridBoundColumn
HeaderText
=
"PM Name"
HeaderButtonType
=
"TextButton"
DataField
=
"PMName"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Developer Name"
HeaderButtonType
=
"TextButton"
DataField
=
"DeveloperName"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Job Number"
HeaderButtonType
=
"TextButton"
DataField
=
"JobNumber"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Adverse Events"
HeaderButtonType
=
"TextButton"
DataField
=
"HasAdverseEvents"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Pharmacy Lookup"
HeaderButtonType
=
"TextButton"
DataField
=
"HasPharmacyLookup"
HeaderStyle-Width
=
"100"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Fax"
HeaderButtonType
=
"TextButton"
DataField
=
"Fax"
HeaderStyle-Width
=
"100"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
td
>
</
tr
>
</
table
>
</
asp:Content
>
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
System.Data;
public
partial
class
test : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
public
class
ExtendedRadGrid : RadGrid
{
public
Int32 Year {
get
;
set
; }
}
protected
void
Page_Init(Object sender, EventArgs e)
{
RadScriptManager radScriptManager =
new
RadScriptManager();
this
.form1.Controls.Add(radScriptManager);
RadAjaxLoadingPanel radAjaxLoadingPanel =
new
RadAjaxLoadingPanel() { ID =
"radAjaxLoadingPanel"
, Skin =
"Default"
};
RadAjaxPanel radAjaxPanel =
new
RadAjaxPanel() { LoadingPanelID =
"radAjaxLoadingPanel"
};
RadTabStrip radTabStrip =
new
RadTabStrip() { Skin =
"Default"
, AutoPostBack =
true
, MultiPageID =
"radMultiPage"
, SelectedIndex = 0 };
RadMultiPage radMultiPage =
new
RadMultiPage() { RenderSelectedPageOnly =
true
, ID =
"radMultiPage"
, SelectedIndex = 0 };
int
[] years =
new
int
[] { 2010, 2011 };
foreach
(
int
year
in
years)
{
radTabStrip.Tabs.Add(
new
RadTab(year.ToString(),
"RadTabID"
+ year.ToString()) { PageViewID =
"PageViewID"
+ year.ToString() });
ExtendedRadGrid radGrid =
new
ExtendedRadGrid();
radGrid.PageSize = 20;
radGrid.Skin =
"Windows7"
;
radGrid.Width = Unit.Percentage(100);
radGrid.PagerStyle.Mode = GridPagerMode.Slider;
radGrid.MasterTableView.TableLayout = GridTableLayout.Fixed;
radGrid.Year = year;
radGrid.NeedDataSource +=
new
GridNeedDataSourceEventHandler(radGrid_NeedDataSource);
radGrid.FilterMenu.ExpandAnimation.Type = AnimationType.None;
radGrid.FilterMenu.CollapseAnimation.Type = AnimationType.None;
radGrid.AllowSorting =
true
;
radGrid.AllowPaging =
true
;
radGrid.ShowStatusBar =
true
;
radGrid.ShowFooter =
true
;
radGrid.AllowFilteringByColumn =
true
;
radGrid.FilterMenu.EnableShadows =
true
;
radGrid.FilterMenu.EnableRoundedCorners =
true
;
radGrid.ClientSettings.AllowDragToGroup =
false
;
radGrid.AutoGenerateColumns =
false
;
radGrid.ShowGroupPanel =
false
;
radGrid.GroupingEnabled =
true
;
radGrid.GroupingSettings.GroupByFieldsSeparator =
" - "
;
radGrid.GroupHeaderItemStyle.CssClass =
"HeaderItem"
;
radGrid.ItemCreated += RadGrid1_ItemCreated;
radGrid.MasterTableView.DataKeyNames =
new
string
[] {
"RoleCompensationID"
,
"UnitCompensationID"
};
//----------------------------------------------------------------------------------
//Bound columns
GridBoundColumn gridBoundColumn;
gridBoundColumn =
new
GridBoundColumn();
gridBoundColumn.DataField =
"Title"
;
gridBoundColumn.HeaderText =
"Title"
;
gridBoundColumn.FooterText =
"Title"
;
radGrid.MasterTableView.Columns.Add(gridBoundColumn);
GridTemplateColumn gridTemplateColumn =
new
GridTemplateColumn();
radGrid.MasterTableView.Columns.Add(gridTemplateColumn);
//----------------------------------------------------------------------------------
//GroupByExpressions
GridGroupByExpression expression =
new
GridGroupByExpression();
GridGroupByField gridGroupByField;
//SelectFields
gridGroupByField =
new
GridGroupByField();
gridGroupByField.FieldName =
"UnitName"
;
gridGroupByField.HeaderText =
" "
;
gridGroupByField.HeaderValueSeparator =
" "
;
expression.SelectFields.Add(gridGroupByField);
gridGroupByField =
new
GridGroupByField();
gridGroupByField.FieldName =
"UnitCompensationID"
;
gridGroupByField.HeaderText =
" "
;
gridGroupByField.HeaderValueSeparator =
" "
;
gridGroupByField.FormatString =
" "
;
expression.SelectFields.Add(gridGroupByField);
//GroupByField
gridGroupByField =
new
GridGroupByField();
gridGroupByField.FieldName =
"UnitName"
;
gridGroupByField.HeaderText =
" "
;
gridGroupByField.HeaderValueSeparator =
" "
;
expression.GroupByFields.Add(gridGroupByField);
radGrid.MasterTableView.GroupByExpressions.Add(expression);
//----------------------------------------------------------------------------------
RadPageView radPageView =
new
RadPageView() { ID =
"PageViewID"
+ year };
radPageView.Controls.Add(radGrid);
radMultiPage.PageViews.Add(radPageView);
}
radAjaxPanel.Controls.Add(
new
LiteralControl(
"<div style='margin-bottom:-1px;'>"
));
radAjaxPanel.Controls.Add(radTabStrip);
radAjaxPanel.Controls.Add(
new
LiteralControl(
"</div>"
));
radAjaxPanel.Controls.Add(radMultiPage);
this
.form1.Controls.Add(radAjaxLoadingPanel);
this
.form1.Controls.Add(radAjaxPanel);
}
protected
void
RadGrid1_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridDataItem)
{
GridDataItem dataItem = e.Item
as
GridDataItem;
dataItem.Attributes.Add(
"onClick"
,
"alert('"
+ dataItem.GetDataKeyValue(
"RoleCompensationID"
) +
"')"
);
// No problem getting the required id value.
}
else
if
(e.Item
is
GridGroupHeaderItem)
{
GridGroupHeaderItem gridGroupHeaderItem = e.Item
as
GridGroupHeaderItem;
DataRowView groupDataRow = (DataRowView)gridGroupHeaderItem.DataItem;
Button objButton =
new
Button();
objButton.CommandName =
"Add"
;
objButton.ID =
"Button_Add"
;
objButton.Text = groupDataRow[
"UnitCompensationID"
].ToString();
// Here i created an extra gridGroupByField in selectFields with an empty FormatString for passing ID value. I'm sure there must be a better way...
((GridTableCell)gridGroupHeaderItem.Controls[0]).Controls.Add(objButton);
}
}
void
radGrid_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
//Here I'm retrieving and setting a DataTable as DataSource
}
}