I am having an odd problem when I try to add a GridTemplateColumn with an embedded ASP.Net control to my RadGrid. For some reason, the table is not rendering correctly; the ASP.Net is being renedered at the beginning of the grid instead of the opening table tag for the table.
I am using Q3 2013 ASP.Net for AJAX and VS Express 2013 for Web.
Here is the code (aspx file, then vb file):
I am using Q3 2013 ASP.Net for AJAX and VS Express 2013 for Web.
Here is the code (aspx file, then vb file):
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="gridDDLTest.aspx.vb" Inherits="NikkorLinksAdmin.gridDDLTest" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
></
telerik:RadScriptManager
>
<
telerik:RadGrid
ID
=
"grdTest"
runat
=
"server"
AutoGenerateColumns
=
"False"
CellSpacing
=
"0"
GridLines
=
"None"
>
<
MasterTableView
EnableColumnsViewState
=
"False"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ItemId"
FilterControlAltText
=
"Filter column column"
UniqueName
=
"column"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ItemName"
FilterControlAltText
=
"Filter column1 column"
UniqueName
=
"column1"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ItemOrder"
FilterControlAltText
=
"Filter column2 column"
UniqueName
=
"column2"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblOrder"
Text
=
"12"
></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
form
>
</
body
>
</
html
>
vb file:
Public
Class
gridDDLTest
Inherits
System.Web.UI.Page
Public
Class
BoundClass
Private
_itemId
As
Integer
Property
ItemId
As
Integer
Get
Return
_itemId
End
Get
Set
(value
As
Integer
)
_itemId = value
End
Set
End
Property
Private
_itemName
As
String
Property
ItemName
As
String
Get
Return
_itemName
End
Get
Set
(value
As
String
)
_itemName = value
End
Set
End
Property
Private
_itemOrder
As
Integer
Property
ItemOrder
As
Integer
Get
Return
_itemOrder
End
Get
Set
(value
As
Integer
)
_itemOrder = value
End
Set
End
Property
Public
Sub
New
(id
As
Integer
, name
As
String
, order
As
Integer
)
Me
.ItemId = id
Me
.ItemName = name
Me
.ItemOrder = order
End
Sub
End
Class
Private
_itemsForBinding
As
New
Generic.List(Of BoundClass)
Public
ReadOnly
Property
ItemsForBinding
As
Generic.List(Of BoundClass)
Get
If
_itemsForBinding.Count = 0
Then
_itemsForBinding.Add(
New
BoundClass(1,
"Name1"
, 4))
_itemsForBinding.Add(
New
BoundClass(1,
"Name2"
, 2))
_itemsForBinding.Add(
New
BoundClass(1,
"Name3"
, 1))
_itemsForBinding.Add(
New
BoundClass(1,
"Name4"
, 3))
End
If
Return
_itemsForBinding
End
Get
End
Property
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
System.EventArgs)
Handles
Me
.Load
If
Not
IsPostBack
Then
Me
.grdTest.DataSource = ItemsForBinding
Me
.grdTest.DataBind()
End
If
End
Sub
End
Class
Finally, here is a sample of what the output looks like; note the lack of an opening tag.
<
div
id
=
"grdTest"
class
=
"RadGrid RadGrid_Default"
>
<
span
id
=
"grdTest_ctl00_ctl04_lblOrder"
>12</
span
>
</
td
>
</
tr
><
tr
class
=
"rgAltRow"
id
=
"grdTest_ctl00__1"
>
<
td
>1</
td
><
td
>Name2</
td
><
td
>2</
td
><
td
>
<
span
id
=
"grdTest_ctl00_ctl06_lblOrder"
>12</
span
>
</
td
>
</
tr
><
tr
class
=
"rgRow"
id
=
"grdTest_ctl00__2"
>
<
td
>1</
td
><
td
>Name3</
td
><
td
>1</
td
><
td
>
<
span
id
=
"grdTest_ctl00_ctl08_lblOrder"
>12</
span
>
</
td
>
</
tr
><
tr
class
=
"rgAltRow"
id
=
"grdTest_ctl00__3"
>
<
td
>1</
td
><
td
>Name4</
td
><
td
>3</
td
><
td
>
<
span
id
=
"grdTest_ctl00_ctl10_lblOrder"
>12</
span
>
</
td
>
</
tr
>
</
tbody
>
</
table
><
input
id
=
"grdTest_ClientState"
name
=
"grdTest_ClientState"
type
=
"hidden"
/>
</
div
>