Hello,
I have an issue accessing the control of a, code behind generated, GridTemplateColumn from a click event of a button outside of the RadGrid.
<
telerik:RadGrid
ID
=
"MyGrid"
runat
=
"server"
AutoGenerateColumns
=
"true"
AllowSorting
=
"true"
AllowAutomaticDeletes
=
"false"
AllowAutomaticInserts
=
"false"
AllowAutomaticUpdates
=
"false"
OnColumnCreated
=
"Siblings_ColumnCreated"
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
HeaderStyle
HorizontalAlign
=
"Center"
BorderWidth
=
"1"
/>
<
ClientSettings
AllowColumnsReorder
=
"false"
>
<
Selecting
AllowRowSelect
=
"false"
/>
</
ClientSettings
>
<
MasterTableView
AllowPaging
=
"false"
DataKeyNames
=
"MyField"
CommandItemDisplay
=
"None"
TableLayout
=
"Fixed"
>
</
MasterTableView
>
</
telerik:RadGrid
>
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
if
(MyCondition)
{
MyGrid.MasterTableView.EditMode = GridEditMode.Batch;
var MyTemplateColumn =
new
GridTemplateColumn();
MyTemplateColumn.UniqueName =
"MyTemplateColumn"
;
MyTemplateColumn.HeaderText =
"MyTemplateColumn"
;
MyTemplateColumn.ItemTemplate =
new
MyTemplate();
MyGrid.Columns.Add(MyTemplateColumn);
}
MyGrid.DataSource = MyDataTable;
MyGrid.DataBind();
}
}
public
partial
class
MyTemplate : ITemplate
{
public
void
InstantiateIn(Control container)
{
var cb =
new
RadComboBox();
cb.ID =
"MyComboBox"
;
cb.AutoPostBack =
false
;
container.Controls.Add(cb);
}
}
protected
void
MyButton_Click(
object
sender, EventArgs e)
{
foreach
(GridDataItem item
in
MyGrids.Items)
{
//This works, I have access to all the autogenerated columns and their values
string
MyValue = item[
"MyField"
].Text;
//This works, I have access to the Template column
TableCell MyTemplateColumn = item[
"MyTemplateColumn"
];
//doesn't work => Controls.Count = 0
var MyColumnCombobox = MyTemplateColumn.Controls[0]
as
RadComboBox;
//doesn't work
var MyRowCombobox = item.FindControl(
"MyTemplateColumn"
)
as
RadComboBox;
}
}
Anyone can help ?
Thank you.