or
<
telerik:RadGrid
ID
=
"RadGrid"
OnItemCreated
=
"RadGrid_ItemCreated"
OnItemCommand
=
"RadGrid_ItemCommand"
OnPreRender
=
"RadGrid_PreRender"
runat
=
"server"
AllowSorting
=
"true"
AllowPaging
=
"false"
AutoGenerateColumns
=
"false"
AllowFilteringByColumn
=
"true"
OnNeedDataSource
=
"RadGrid_NeedDataSource"
OnDetailTableDataBind
=
"RadGrid_DetailTableDataBind"
>
<
MasterTableView
AutoGenerateColumns
=
"false"
HierarchyLoadMode
=
"ServerBind"
AllowFilteringByColumn
=
"true"
ShowFooter
=
"true"
AllowPaging
=
"false"
AllowMultiColumnSorting
=
"true"
DataKeyNames
=
"UnitId"
>
<
NestedViewSettings
>
<
telerik:ParentTableRelation
>
<
telerik:GridRelationFields
MasterKeyField
=
"UnitId"
DetailKeyField
=
"UnitId"
/>
</
telerik:ParentTableRelation
>
</
NestedViewSettings
>
<
NestedViewTemplate
>
<
asp:Panel
runat
=
"server"
ID
=
"InnerContainer"
CssClass
=
"viewWrap"
Visible
=
"false"
>
<
telerik:RadTabStrip
runat
=
"server"
ID
=
"TabStip1"
MultiPageID
=
"Multipage1"
SelectedIndex
=
"0"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Orders"
PageViewID
=
"PageView1"
>
</
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
runat
=
"server"
ID
=
"Multipage1"
SelectedIndex
=
"0"
RenderSelectedPageOnly
=
"false"
>
<
telerik:RadPageView
runat
=
"server"
ID
=
"PageView1"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"Orders"
ShowFooter
=
"true"
AllowSorting
=
"true"
EnableLinqExpressions
=
"false"
OnDetailTableDataBind
=
"RadGrid_DetailTableDataBind"
>
<
MasterTableView
HierarchyLoadMode
=
"ServerOnDemand"
ShowHeader
=
"true"
DataKeyNames
=
"UnitId"
AutoGenerateColumns
=
"false"
AllowFilteringByColumn
=
"true"
ShowFooter
=
"true"
AllowPaging
=
"false"
AllowMultiColumnSorting
=
"true"
>
<
Columns
>
<
telerik:GridBoundColumn
SortExpression
=
"UnitId"
HeaderText
=
"UnitId"
HeaderButtonType
=
"TextButton"
DataField
=
"UnitId"
UniqueName
=
"UnitId"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Date"
HeaderText
=
"Date"
HeaderButtonType
=
"TextButton"
DataField
=
"Date"
UniqueName
=
"Date"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"BillNumber"
HeaderText
=
"Bill Number"
HeaderButtonType
=
"TextButton"
DataField
=
"BillNumber"
UniqueName
=
"BillNumber"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Status"
HeaderText
=
"Status"
HeaderButtonType
=
"TextButton"
DataField
=
"Status"
UniqueName
=
"Status"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Origin"
HeaderText
=
"Origin"
HeaderButtonType
=
"TextButton"
DataField
=
"Origin"
UniqueName
=
"Origin"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Destination"
HeaderText
=
"Destination"
HeaderButtonType
=
"TextButton"
DataField
=
"Destination"
UniqueName
=
"OrDestinationigin"
>
</
telerik:GridBoundColumn
>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"XCharges"
HeaderText
=
"Acc. Charges"
SortExpression
=
"XCharges"
UniqueName
=
"XCharges"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"TotalCharge"
HeaderText
=
"Total Charges"
SortExpression
=
"TotalCharge"
UniqueName
=
"TotalCharge"
DataType
=
"System.Decimal"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
telerik:RadPageView
>
</
telerik:RadMultiPage
>
</
asp:Panel
>
</
NestedViewTemplate
>
<
Columns
>
<
telerik:GridBoundColumn
HeaderStyle-Width
=
"10"
DataField
=
"Division"
HeaderText
=
"Division"
SortExpression
=
"Division"
UniqueName
=
"Division"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"Subdivision"
HeaderText
=
"Subdivision"
SortExpression
=
"Subdivision"
UniqueName
=
"Subdivision"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
/>
<
telerik:GridBoundColumn
DataField
=
"UnitId"
HeaderText
=
"Unit"
SortExpression
=
"UnitId"
UniqueName
=
"UnitId"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"GrossRevenue"
HeaderText
=
"Revenue"
SortExpression
=
"GrossRevenue"
UniqueName
=
"GrossRevenue"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"TotalPay"
HeaderText
=
"Driver Pay"
SortExpression
=
"TotalPay"
UniqueName
=
"TotalPay"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"TotalFuel"
HeaderText
=
"Fuel Cost"
SortExpression
=
"TotalFuel"
UniqueName
=
"TotalFuel"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"TotalMaintenance"
HeaderText
=
"Maint. Cost"
SortExpression
=
"TotalMaintenance"
UniqueName
=
"TotalMaintenance"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"Contribution"
HeaderText
=
"Contribution"
SortExpression
=
"Contribution"
UniqueName
=
"Contribution"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Avg"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"TotalCPM"
HeaderText
=
"Total CPM"
SortExpression
=
"TotalCPM"
UniqueName
=
"TotalCPM"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Avg"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"PayCPM"
HeaderText
=
"Pay CPM"
SortExpression
=
"PayCPM"
UniqueName
=
"PayCPM"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Avg"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"FuelCPM"
HeaderText
=
"Fuel CPM"
SortExpression
=
"FuelCPM"
UniqueName
=
"FuelCPM"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Currency"
Aggregate
=
"Avg"
FooterAggregateFormatString
=
"{0:C}"
DataField
=
"MaintenanceCPM"
HeaderText
=
"Maint. CPM"
SortExpression
=
"MaintenanceCPM"
UniqueName
=
"MaintenanceCPM"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Number"
DataFormatString
=
"{0:N2}"
Aggregate
=
"Sum"
FooterAggregateFormatString
=
"{0:N2}"
DataField
=
"TotalMiles"
HeaderText
=
"Total Miles"
SortExpression
=
"TotalMiles"
UniqueName
=
"TotalMiles"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
<
telerik:GridNumericColumn
NumericType
=
"Number"
DataFormatString
=
"{0:N2}"
Aggregate
=
"Avg"
FooterAggregateFormatString
=
"{0:N2}"
DataField
=
"MPG"
HeaderText
=
"MPG"
SortExpression
=
"MPG"
UniqueName
=
"MPG"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"EqualTo"
ShowFilterIcon
=
"true"
DataType
=
"System.Decimal"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
public
partial
class
UtilizationReport : System.Web.UI.Page
{
private
BTReports.Repository.UnitUtilizationRepository rep =
new
Repository.UnitUtilizationRepository();
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
RadGrid_NeedDataSource(
object
source, GridNeedDataSourceEventArgs e)
{
if
(Cache[
"UtilzationData"
] ==
null
)
{
if
(StartDatePicker.SelectedDate.HasValue && EndDatePicker.SelectedDate.HasValue)
{
RadGrid.DataSource = rep.GetUnitUtilization(StartDatePicker.SelectedDate.Value, EndDatePicker.SelectedDate.Value);
}
}
else
{
RadGrid.DataSource = Cache[
"UtilzationData"
];
}
}
protected
void
GenerateButton_Click(
object
sender, EventArgs e)
{
Cache.Remove(
"UtilzationData"
);
Cache[
"UtilzationData"
] = rep.GetUnitUtilization(StartDatePicker.SelectedDate.Value, EndDatePicker.SelectedDate.Value);
RadGrid.DataSource = rep.GetUnitUtilization(StartDatePicker.SelectedDate.Value, EndDatePicker.SelectedDate.Value);
RadGrid.DataBind();
}
protected
void
RadGrid_DetailTableDataBind(
object
source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
{
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
switch
(e.DetailTableView.Name)
{
case
"Orders"
:
{
DataTable table =
new
DataTable();
table.Columns.Add(
"UnitId"
,
typeof
(
string
));
table.Columns.Add(
"Date"
,
typeof
(DateTime));
table.Columns.Add(
"BillNumber"
,
typeof
(
string
));
table.Columns.Add(
"Status"
,
typeof
(
string
));
table.Columns.Add(
"Origin"
,
typeof
(
string
));
table.Columns.Add(
"Destination"
,
typeof
(
string
));
table.Columns.Add(
"XCharge"
,
typeof
(
decimal
));
table.Columns.Add(
"TotalCharges"
,
typeof
(
decimal
));
string
UnitId = dataItem.GetDataKeyValue(
"UnitId"
).ToString();
IQueryable<UnitUtilization> data = (IQueryable<UnitUtilization>)Cache[
"UtilzationData"
];
var results = from i
in
data
where i.UnitId == UnitId
select i.Orders;
foreach
(var order
in
results)
{
foreach
(Order o
in
order)
{
table.Rows.Add(o.UnitId, o.Date, o.BillNumber, o.Status, o.Origin, o.Destination, o.XCharges, o.TotalCharges);
}
}
e.DetailTableView.DataSource = table;
break
;
}
}
}
protected
void
RadGrid_PreRender(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
//RadGrid.MasterTableView.Items[0].Expanded = true;
//RadGrid.MasterTableView.Items[0].ChildItem.FindControl("InnerContainer").Visible = true;
}
}
protected
void
RadGrid_ItemCommand(
object
source, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.ExpandCollapseCommandName && e.Item
is
GridDataItem)
{
((GridDataItem)e.Item).ChildItem.FindControl(
"InnerContainer"
).Visible =
!e.Item.Expanded;
}
}
protected
void
RadGrid_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridNestedViewItem)
{
e.Item.FindControl(
"InnerContainer"
).Visible = ((GridNestedViewItem)e.Item).ParentItem.Expanded;
}
}
protected
void
ExportButton_Click(
object
sender, System.EventArgs e)
{
RadGrid.MasterTableView.ExportToExcel();
}
protected
void
ChartButton_Click(
object
sender, EventArgs e)
{
foreach
(GridDataItem item
in
RadGrid.MasterTableView.Items)
{
string
UnitId = item[
"UnitId"
].ToString();
}
}
}
<
telerik:RadRotator
runat
=
"server"
ID
=
"rotatorImagesList"
RotatorType
=
"Buttons"
Width
=
"100%"
Height
=
"150px"
WrapFrames
=
"false"
OnItemClick
=
"rotatorImagesList_SelectImage"
OnClientItemClicking
=
"rotatorImagesList_OnClientItemClicking"
>
<
ItemTemplate
>
<
div
>
<
asp:CheckBox
ID
=
"chkSel"
runat
=
"server"
Checked='<%#Eval("isSelected")==DBNull.Value?false:Eval("isSelected") %>'
onclick="chkClick(this)" />
<
asp:ImageButton
ID
=
"btnDel"
runat
=
"server"
OnClientClick
=
"CancelItemClick(this)"
CssClass
=
"deletebutton"
ImageUrl
=
"~/App_Themes/Office2007/Grid/Cancel.gif"
></
asp:ImageButton
>
</
div
>
<
div
>
<
telerik:RadBinaryImage
EnableTheming
=
"false"
runat
=
"server"
ID
=
"binaryImageThumbnail"
Width
=
"103px"
Height
=
"103px"
ResizeMode
=
"Fit"
DataValue='<%# DataBinder.Eval(Container.DataItem,"ThumbnailData") %>'
BorderColor="Black" BorderStyle="Solid" onClick="ImageClick(this)" />
</
div
>
<
div
>
<
asp:HiddenField
ID
=
"hiddenFieldPhotoRIDContainer"
runat
=
"server"
Value='<%# DataBinder.Eval(Container.DataItem,"NCO_RID") %>' />
<
asp:HiddenField
ID
=
"hiddenFieldIsDeleted"
runat
=
"server"
Value='<%# DataBinder.Eval(Container.DataItem,"isDeleted") %>' />
</
div
>
</
ItemTemplate
>
</
telerik:RadRotator
>
rotatorImagesList_SelectImage
in which I do some server code. otherwise I do not want a postback to run the
rotatorImagesList_SelectImage
event.var
currIndex;
var
isDeleting;
var
allowClick;
function
pageLoad() {
isDeleting =
false
;
allowClick =
false
;
}
function
CancelItemClick(sender, eventArgs) {
currIndex = getIndexFromId(sender.id);
allowClick =
true
;
isDeleting =
true
;
}
function
ImageClick(sender) {
currIndex = getIndexFromId(sender.id);
isDeleting =
false
;
allowClick =
true
;
}
function
chkClick(sender) {
currIndex = getIndexFromId(sender.id);
isDeleting =
false
;
allowClick =
false
;
}
function
rotatorImagesList_OnClientItemClicking(sender, eventArgs) {
if
(allowClick ==
true
) {
var
hfVal = document.getElementById(sender.get_id() +
"_i"
+ currIndex +
"_"
+
"hiddenFieldPhotoRIDContainer"
).value;
if
(isDeleting ==
true
) {
__doPostBack(
"btnDel"
, hfVal);
eventArgs.set_cancel(
true
);
}
}
else
{
eventArgs.set_cancel(
true
);
}
}
function
getIndexFromId(string) {
var
matches = string.match(/_i([0-9]+)/);
return
matches[1];
}