or
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default3.aspx.vb" Inherits="Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"mgrJS"
>
</
telerik:RadScriptManager
>
<
div
>
<
table
>
<
tr
>
<
td
align
=
"left"
valign
=
"top"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"dgHeader"
Skin
=
"Web20"
AllowSorting
=
"true"
>
<
ClientSettings
>
<
Scrolling
UseStaticHeaders
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
BorderWidth
=
"1px"
GridLines
=
"Both"
style
=
"border-collapse: collapse !Important;"
Font-Bold
=
"false"
TableLayout
=
"Fixed"
AutoGenerateColumns
=
"false"
ShowHeader
=
"True"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"N1"
HeaderText
=
"N 1"
UniqueName
=
"N1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"N2"
HeaderText
=
"N 2"
UniqueName
=
"N2"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"N3"
HeaderText
=
"N 3"
UniqueName
=
"N3"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"C1"
HeaderText
=
"C 1"
UniqueName
=
"C1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"C2"
HeaderText
=
"C 2"
UniqueName
=
"C2"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"C3"
HeaderText
=
"C 3"
UniqueName
=
"C3"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
td
>
</
tr
>
<
tr
>
<
td
align
=
"left"
valign
=
"top"
>
<
telerik:RadGrid
runat
=
"server"
ID
=
"dgDetail"
Skin
=
"Web20"
AllowSorting
=
"true"
>
<
ClientSettings
>
<
Scrolling
UseStaticHeaders
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
BorderWidth
=
"1px"
GridLines
=
"Both"
style
=
"border-collapse: collapse !Important;"
Font-Bold
=
"false"
TableLayout
=
"Fixed"
AutoGenerateColumns
=
"false"
ShowHeader
=
"False"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"N1"
HeaderText
=
"N 1"
UniqueName
=
"N1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"N2"
HeaderText
=
"N 2"
UniqueName
=
"N2"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"N3"
HeaderText
=
"N 3"
UniqueName
=
"N3"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"C1"
HeaderText
=
"C 1"
UniqueName
=
"C1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"C2"
HeaderText
=
"C 2"
UniqueName
=
"C2"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"C3"
HeaderText
=
"C 3"
UniqueName
=
"C3"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
form
>
</
body
>
</
html
>
VB
Partial
Class
Default3
Inherits
System.Web.UI.Page
Private
Sub
dg_Init(
ByRef
dg
As
RadGrid,
ByVal
isHeader
As
Boolean
)
With
dg
If
isHeader
Then
For
Each
col
As
GridBoundColumn
In
dg.MasterTableView.Columns
'Need to set width's to 54 in order to line up with dtDetail's columns below
col.HeaderStyle.Width = 54
col.ItemStyle.Width = 54
col.ItemStyle.HorizontalAlign = HorizontalAlign.Right
Next
Else
For
Each
col
As
GridBoundColumn
In
dg.MasterTableView.Columns
col.HeaderStyle.Width = 60
col.ItemStyle.Width = 60
col.ItemStyle.HorizontalAlign = HorizontalAlign.Right
Next
End
If
End
With
End
Sub
Protected
Sub
Page_Init(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.Init
dg_Init(dgHeader,
True
)
dg_Init(dgDetail,
False
)
End
Sub
Protected
Sub
dgHeader_NeedDataSource(
ByVal
source
As
Object
,
ByVal
e
As
Telerik.Web.UI.GridNeedDataSourceEventArgs)
Handles
dgHeader.NeedDataSource
dgHeader.DataSource = GetHeaderDatasource()
End
Sub
Protected
Sub
dgDetail_NeedDataSource(
ByVal
source
As
Object
,
ByVal
e
As
Telerik.Web.UI.GridNeedDataSourceEventArgs)
Handles
dgDetail.NeedDataSource
dgDetail.DataSource = GetDetailDatasource()
End
Sub
Protected
Sub
dgHeader_PreRender(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
dgHeader.PreRender
Dim
header
As
GridHeaderItem =
DirectCast
(dgHeader.MasterTableView.GetItems(GridItemType.Header)(0), GridHeaderItem)
Dim
head
As
GridTHead =
DirectCast
(header.Parent, GridTHead)
'create a new GridHeaderItem which will be the new row
Dim
newHeaderItem
As
New
GridHeaderItem(dgHeader.MasterTableView, 0, 0)
'add 2 empty table header cells, as there are 2 hidden columns always created in RadGrid
newHeaderItem.Cells.Add(
New
GridTableHeaderCell())
newHeaderItem.Cells.Add(
New
GridTableHeaderCell())
'Add as many header cells as you need with required colspans
newHeaderItem.Cells.Add(
New
GridTableHeaderCell()
With
{.Text =
"Numbers"
, .ColumnSpan = 3})
newHeaderItem.Cells.Add(
New
GridTableHeaderCell()
With
{.Text =
"Characters"
, .ColumnSpan = 3})
head.Controls.AddAt(0, newHeaderItem)
End
Sub
Private
Function
GetHeaderDatasource()
As
DataTable
If
Me
.Session(
"dgHeader_DataSource"
)
Is
Nothing
Then
Dim
dt
As
DataTable = CreateDataTable()
Dim
r
As
DataRow = dt.NewRow
r.ItemArray =
New
Object
() {
"100"
,
"200"
,
"300"
,
"X"
,
"Y"
,
"Z"
}
dt.Rows.Add(r)
Session(
"dgHeader_DataSource"
) = dt
End
If
Return
Session(
"dgHeader_DataSource"
)
End
Function
Private
Function
GetDetailDatasource()
As
DataTable
If
Me
.Session(
"dgDetail_DataSource"
)
Is
Nothing
Then
Dim
dt
As
DataTable = CreateDataTable()
Dim
r
As
DataRow = dt.NewRow
r.ItemArray =
New
Object
() {
"50"
,
"100"
,
"150"
,
"X"
,
"Y"
,
"Z"
}
dt.Rows.Add(r)
r = dt.NewRow
r.ItemArray =
New
Object
() {
"50"
,
"100"
,
"150"
,
"X"
,
"Y"
,
"Z"
}
dt.Rows.Add(r)
Session(
"dgDetail_DataSource"
) = dt
End
If
Return
Session(
"dgDetail_DataSource"
)
End
Function
Private
Function
CreateDataTable()
As
DataTable
Dim
dt
As
New
DataTable
dt.Columns.Add(
"N1"
,
GetType
(
String
))
dt.Columns.Add(
"N2"
,
GetType
(
String
))
dt.Columns.Add(
"N3"
,
GetType
(
String
))
dt.Columns.Add(
"C1"
,
GetType
(
String
))
dt.Columns.Add(
"C2"
,
GetType
(
String
))
dt.Columns.Add(
"C3"
,
GetType
(
String
))
Return
dt
End
Function
End
Class
RadGrid1.MasterTableView.EditFormSettings.EditColumn.ButtonType = GridButtonColumnType.PushButton;
RadGrid1.MasterTableView.UseAllDataFields =
true
;
RadGrid1.EnableViewState =
true
;
RadGrid1.EnableLinqExpressions =
false
;
RadGrid1.AutoGenerateColumns =
false
;
RadGrid1.MasterTableView.EnableColumnsViewState =
false
;
// because the column structure can change on Postback (new Layout)
RadGrid1.ClientSettings.ClientEvents.OnGridCreated =
"onGridCreated"
;
RadGrid1.ClientSettings.ClientEvents.OnCommand =
"onGridCommand"
;
RadGrid1.ClientSettings.ClientEvents.OnColumnResized =
"OnGridColumnResized"
;
RadGrid1.ClientSettings.ClientEvents.OnColumnSwapped =
"OnColumnSwapped"
;
RadGrid1.ClientSettings.ClientEvents.OnRowMouseOver =
"RowMouseOver"
;
RadGrid1.ClientSettings.ClientEvents.OnFilterMenuShowing =
"filterMenuShowing"
;
RadGrid1.FilterMenu.OnClientShowing =
"MenuShowing"
;
RadGrid1.CellSpacing = 2;
RadGrid1.ShowStatusBar =
false
;
RadGrid1.MasterTableView.TableLayout = GridTableLayout.Fixed;
RadGrid1.EnableHeaderContextMenu =
true
;
RadGrid1.MasterTableView.EditMode = GridEditMode.EditForms;
RadGrid1.MasterTableView.EditFormSettings.FormStyle.BackColor = System.Drawing.ColorTranslator.FromHtml(
"#FFFFDD"
);
RadGrid1.GroupingSettings.ShowUnGroupButton =
true
;
RadGrid1.ClientSettings.AllowDragToGroup =
true
;
RadGrid1.ClientSettings.AllowGroupExpandCollapse =
true
;
RadGrid1.MasterTableView.GroupLoadMode = GridGroupLoadMode.Client;
RadGrid1.GroupingSettings.CaseSensitive =
false
;
RadGrid1.FilterItemStyle.Wrap =
false
;
RadGrid1.AllowSorting =
true
;
RadGrid1.MasterTableView.AllowNaturalSort =
false
;
RadGrid1.AllowPaging =
true
;
RadGrid1.MasterTableView.PagerStyle.AlwaysVisible =
true
;
RadGrid1.ClientSettings.Scrolling.AllowScroll =
true
;
RadGrid1.ClientSettings.Scrolling.UseStaticHeaders =
true
;
RadGrid1.ClientSettings.Scrolling.SaveScrollPosition =
true
;
RadGrid1.ClientSettings.Resizing.AllowColumnResize =
true
;
RadGrid1.ClientSettings.Resizing.ClipCellContentOnResize =
false
;
RadGrid1.ClientSettings.Resizing.EnableRealTimeResize =
false
;
RadGrid1.ClientSettings.Resizing.ResizeGridOnColumnResize =
true
;
RadGrid1.ClientSettings.AllowColumnsReorder =
true
;
RadGrid1.ClientSettings.ColumnsReorderMethod = GridClientSettings.GridColumnsReorderMethod.Reorder;
RadGrid1.ClientSettings.ReorderColumnsOnClient =
false
;
RadGrid1.ClientSettings.EnableRowHoverStyle =
true
;
RadGrid1.ClientSettings.Selecting.AllowRowSelect =
true
;
<
ClientSettings
>
<
Selecting
AllowRowSelect
=
"True"
/>
</ClientSettings>
if (e.CommandName == "DeleteSelected")
{
if (RadGrid.SelectedItems.Count > 0)
{
//Always 0
}
}