or
public
class
WorkOrderDetails
{
protected
readonly
IWorkOrder _workOrder;
protected
readonly
List<ResourceRequirement> _resources =
new
List<ResourceRequirement>();
public
WorkOrderDetails(IWorkOrder wo)
{
_workOrder = wo;
foreach
(IWoResources res
in
wo.ResourcesChildren)
{
_resources.Add(
new
ResourceRequirement(res));
}
}
public
string
WoNumber {
get
{
return
_workOrder.WoNumber; } }
public
string
Title
{
get
{
return
_workOrder.Description; }
}
public
List<ResourceRequirement> Resources
{
get
{
return
_resources; }
}
}
public
class
ResourceRequirement
{
private
IResources _data;
public
ResourceRequirement(IResources res)
{
_data = res;
}
//
// Summary
// The Unique ID of this ResourceRequiment (which is a "Skill").
public string ID { get { return _data.ResourceId; } }
//
// Summary:
// The property for the planned_hours column of the TabWare database wo_resources
// table.
public
decimal
PlannedHours {
get
{
return
_data.PlannedHours; } }
//
// Summary:
// The property for the remaining_hours column of the TabWare database wo_resources
// table.
public
decimal
RemainingHours {
get
{
return
_data.RemainingHours; } }
//
// Summary:
// The property for the workers column of the TabWare database wo_resources
// table.
public
int
Workers {
get
{
return
_data.Workers; } }
}
List<WorkOrderDetails> list = factory.GetWorkOrders();
RadGrid1.DataSource = list;
<
telerik:RadGrid
ID
=
"rgPlannedWorkOrders"
runat
=
"server"
Width
=
"480px"
Height
=
"392px"
AutoGenerateColumns
=
"False"
AllowSorting
=
"True"
Skin
=
"Sunset"
GridLines
=
"Vertical"
CellSpacing
=
"0"
AutoGenerateHierarchy
=
"true"
>
<
ClientSettings
>
<
Selecting
AllowRowSelect
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
Width
=
"100%"
HierarchyDefaultExpanded
=
"True"
HierarchyLoadMode
=
"ServerBind"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"WoNumber"
FilterControlAltText
=
"Filter WoNumber column"
HeaderText
=
"WoNumber"
ReadOnly
=
"True"
SortExpression
=
"WoNumber"
UniqueName
=
"WoNumber"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Title"
FilterControlAltText
=
"Filter Title column"
HeaderText
=
"Title"
ReadOnly
=
"True"
SortExpression
=
"Title"
UniqueName
=
"Title"
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
DetailTables
>
<
telerik:GridTableView
Name
=
"SubLevel1"
ShowHeadersWhenNoRecords
=
"false"
AutoGenerateColumns
=
"false"
>
<%-- This level holds items of Type2 --%>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ID"
FilterControlAltText
=
"Filter ID column"
HeaderText
=
"ID"
ReadOnly
=
"True"
SortExpression
=
"ResourceId"
UniqueName
=
"ID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PlannedHours"
DataType
=
"System.Decimal"
FilterControlAltText
=
"Filter PlannedHours column"
HeaderText
=
"Planned Hrs"
ReadOnly
=
"True"
SortExpression
=
"PlannedHours"
UniqueName
=
"PlannedHours"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"RemainingHours"
DataType
=
"System.Decimal"
FilterControlAltText
=
"Filter RemainingHours column"
HeaderText
=
"Remaining Hrs"
ReadOnly
=
"True"
SortExpression
=
"RemainingHours"
UniqueName
=
"RemainingHours"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Workers"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter Workers column"
HeaderText
=
"# Workers"
ReadOnly
=
"True"
SortExpression
=
"Workers"
UniqueName
=
"Workers"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
></
EditColumn
>
</
EditFormSettings
>
<
GroupHeaderItemStyle
Height
=
"32px"
/>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
></
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
></
ExpandCollapseColumn
>
</
MasterTableView
>
<
GroupingSettings
GroupContinuesFormatString
=
""
GroupContinuedFormatString
=
""
></
GroupingSettings
>
<
FilterMenu
EnableImageSprites
=
"False"
></
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Sunset"
></
HeaderContextMenu
>
</
telerik:RadGrid
>
<
telerik:AjaxSetting
AjaxControlID
=
"button"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGridRecords"
LoadingPanelID
=
"RadAjaxLoadingPanel2"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:RadPanelBar
ID
=
"RadPanelBar1"
runat
=
"server"
EnableEmbeddedSkins
=
"false"
Height="100%" ExpandMode="SingleExpandedItem" Skin="ShowCategory" Width="100%"
AllowCollapseAllItems="false" OnClientItemClicking="OnClientItemClicking">
</
telerik:RadPanelBar
>
<
script
type
=
"text/jscript"
>
function OnClientItemClicking(sender, args) {
debugger;
if (args.get_item().get_level() == 0) {
args.set_cancel(true);
args.get_item().set_expanded(!args.get_item().get_expanded());
}
}
</
script
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
style
=
"margin-left:5px"
AllowPaging
=
"True"
AllowCustomPaging
=
"True"
AllowFilteringByColumn
=
"True"
AllowSorting
=
"True"
DataSourceID
=
"SqlDataSource1"
GridLines
=
"None"
>
<
MasterTableView
DataSourceID
=
"SqlDataSource1"
AutoGenerateColumns
=
"False"
PagerStyle-Position
=
"TopAndBottom"
PagerStyle-AlwaysVisible
=
"true"
PagerStyle-Mode
=
"NextPrevAndNumeric"
PageSize
=
"10"
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"OrderDate"
DataType
=
"System.DateTime"
HeaderText
=
"Order Date"
SortExpression
=
"OrderDate"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"OrderDate"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"FirstName"
HeaderText
=
"First Name"
SortExpression
=
"FirstName"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"FirstName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Email"
HeaderText
=
"Email"
SortExpression
=
"Email"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"Email"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"GreetingCode"
HeaderText
=
"Greeting Code"
SortExpression
=
"GreetingCode"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"GreetingCode"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ChildFirstName"
HeaderText
=
"Child's FirstName"
SortExpression
=
"ChildFirstName"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"ChildFirstName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ChildLastName"
HeaderText
=
"Child's LastName"
SortExpression
=
"ChildLastName"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"ChildLastName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ChildGender"
HeaderText
=
"Child's Gender"
SortExpression
=
"ChildGender"
CurrentFilterFunction
=
"Contains"
AutoPostBackOnFilter
=
"true"
UniqueName
=
"ChildGender"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>