When using a template for group headers, how does one catch the events (server side) triggered by a control therein?
basically I want to be able to click a groupheader and call a procedure to open radwindow. This is easy to do on grid rows, but haven't found a way to do in group headers other than to add a control to it. There seems to be two ways, programmatically add all controls (no template) or define a control(s) in a groupheader template. However I can't seem to trap the events when using a template.
Is there a method I am over looking or Is there a way to add a eventhandler after the control is created? Thanks.

<ItemTemplate> <asp:Label ID="lblComments" runat="server" Text='<%#Server.HtmlDecode(Eval("Comments").ToString())%>' /></ItemTemplate>protected
void rgProjects_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridPagerItem)
{
var dropDown = (RadComboBox)e.Item.FindControl("PageSizeComboBox");
var totalCount = ((GridPagerItem)e.Item).Paging.DataSourceCount;
bool ALLSelected = (dropDown.SelectedItem.Text == "ALL") ? true : false;
var sizes = new Dictionary<string, string>()
{
{
"50", "50"},
{
"100", "100"},
{
"200", "200"}
};
sizes.Add(
"All", totalCount.ToString());
dropDown.Items.Clear();
foreach (var size in sizes)
{
var cboItem = new RadComboBoxItem()
{
Text = size.Key,
Value = size.Value
};
cboItem.Attributes.Add(
"ownerTableViewId", e.Item.OwnerTableView.ClientID);
dropDown.Items.Add(cboItem);
}
try
{
if (ALLSelected)
dropDown.FindItemByValue(totalCount.ToString()).Selected =
true;
else
{
RadComboBoxItem item = dropDown.FindItemByValue(rgProjects.PageSize.ToString());
if (item != null) item.Selected = true;
}
}
catch (Exception ex)
{
ShowValidationMessage(ex.Message);
}
}
}

<telerik:radautocompletebox ID="rdSearch" runat="server" EmptyMessage="Type Last Name First Name" EnableAutoComplete="true" MinFilterLength="2" MaxResultCount="20" Width="260px" DropDownHeight="100px" DropDownWidth="250px" DropDownPosition="static" AutoPostBack="true" OnClientEntryAdded="requesting"> <TextSettings SelectionMode="Single" /> <WebServiceSettings Path="../AutoComplete.asmx" Method="GetNames" /> </telerik:radautocompletebox> function requesting(sender, eventArgs) { var context = eventArgs.get_context(); //Data passed to the service. // context["ClientData"] = "ClientData_Passed_To_The_Service"; } [WebMethod] public AutoCompleteBoxData GetNames(RadAutoCompleteContext context) { string sql = "select intPersonnelId, strFullname FullName FROM tblMNNatPersonnel WHERE strFullname like '" + context.Text + "%'"; //SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString); DataTable myDataTable = new DataTable(); myDataTable = c.GetReader(sql); List<AutoCompleteBoxItemData> result = new List<AutoCompleteBoxItemData>(); AutoCompleteBoxData dropDownData = new AutoCompleteBoxData(); result = new List<AutoCompleteBoxItemData>(); for (int i = 0; i < myDataTable.Rows.Count; i++) { AutoCompleteBoxItemData itemData = new AutoCompleteBoxItemData(); itemData.Text = myDataTable.Rows[i]["FullName"].ToString(); itemData.Value = myDataTable.Rows[i]["intPersonnelId"].ToString(); result.Add(itemData); } dropDownData.Items = result.ToArray(); return dropDownData; }When it returns to the autocomplete box I need to do take the intPersonnelId and hit a database and return more information.
| Multiple controls with the same ID 'FilterTextBox_Date' were found. FindControl requires that controls have unique IDs. |
| Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. |
| Exception Details: System.Web.HttpException: Multiple controls with the same ID 'FilterTextBox_Date' were found. FindControl requires that controls have unique IDs. |
| Source Error: |
| An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
| Stack Trace: |
| [HttpException (0x80004005): Multiple controls with the same ID 'FilterTextBox_Date' were found. FindControl requires that controls have unique IDs.] |
| System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +273 |
| System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +320 |
| System.Web.UI.Control.EnsureNamedControlsTable() +61 |
| System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +222 |
| System.Web.UI.Control.FindControl(String id) +12 |
| Telerik.Web.UI.GridColumn.PrepareCell(TableCell cell, GridItem item) +1238 |
| Telerik.Web.UI.GridItemDecorator.DecorateItem(GridTableView owner, GridColumn[] columnArray) +364 |
| Telerik.Web.UI.GridFilterItemDecorator.DecorateItem(GridTableView owner, GridColumn[] columnArray) +112 |
| Telerik.Web.UI.GridItem.PrepareItemStyle() +259 |
| Telerik.Web.UI.GridMultiRowItem.PrepareItemStyle() +109 |
| Telerik.Web.UI.RadGrid.PrepareRows(GridTableView view) +132 |
| Telerik.Web.UI.RadGrid.Render(HtmlTextWriter writer) +92 |
| System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
| System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
| System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
| System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
| System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
| System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +163 |
| System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32 |
| System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +51 |
| System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
| System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
| System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40 |
| System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
| System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
| System.Web.UI.Page.Render(HtmlTextWriter writer) +29 |
| System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
| System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
| System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
| System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266 |
| public class MyGridBoundColumn : GridBoundColumn |
| { |
| } |
| <telerik:DDSGrid ID="uxGrid" runat="server" GridLines="None" Width="100%" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" AllowFilteringByColumn="true" |
| OnNeedDataSource="uxGrid_NeedDataSource" EnableEmbeddedSkins="false"> |
| <MasterTableView > |
| <Columns> |
| <me:MyGridBoundColumn HeaderStyle-HorizontalAlign="Center" UniqueName="Row" HeaderText="Row" DataField="Row"/> |
| </Columns> |
| </MasterTableView> |
| </telerik:DDSGrid> |
| protected void uxGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| DataTable tb = new DataTable("tb"); |
| DataColumn col; |
| DataRow row; |
| col = new DataColumn("Row"); |
| tb.Columns.Add(col); |
| for (int i = 1; i <= 1; i++) |
| { |
| row = tb.NewRow(); |
| row["Row"] = "Row " + i; |
| tb.Rows.Add(row); |
| } |
| ((RadGrid)source).DataSource = tb; |
| } |