I posted this as a reply at the end of a similar post but since I haven't gotten any response, I'm starting a new thread. Here's my original post:
(Sys.WebForms.PageRequestManagerServerErrorException: Multiple controls with the same ID 'EditButton' were found. FindControl requires that controls have unique IDs.). My grid is defined in my aspx file but my columns are defined in the form Init. I add the columns to the grid after all columns are created and all properties are set.
Is there a working sample with this same scenario?
Here's my code:
aspx code:
..
<telerik:RadGrid ID="gridMeasures" runat="server" >
<MasterTableView
DataKeyNames="m_iWAPMeasureID" >
</MasterTableView>
</telerik:RadGrid>
vb code:
Protected Sub form1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Init
gridMeasures.AllowPaging = True
gridMeasures.AutoGenerateColumns = True
gridMeasures.ShowStatusBar = True
gridMeasures.GridLines = GridLines.None
gridMeasures.Skin = "Hay"
gridMeasures.ClientSettings.Scrolling.AllowScroll = True
gridMeasures.ClientSettings.Scrolling.UseStaticHeaders = True
gridMeasures.PageSize = 50
gridMeasures.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top
gridMeasures.MasterTableView.EditFormSettings.EditColumn.Display = True
gridMeasures.MasterTableView.EditMode = GridEditMode.InPlace
AddHandler gridMeasures.DeleteCommand, AddressOf gridMeasures_DeleteCommand
AddHandler gridMeasures.NeedDataSource, AddressOf gridMeasures_NeedDataSource
AddHandler gridMeasures.InsertCommand, AddressOf gridMeasures_InsertCommand
AddHandler gridMeasures.PreRender, AddressOf gridMeasures_PreRender
AddHandler gridMeasures.UpdateCommand, AddressOf gridMeasures_UpdateCommand
Dim oWAPMeasureIDColumn As New GridBoundColumn
oWAPMeasureIDColumn.UniqueName = "m_iWAPMeasureID"
oWAPMeasureIDColumn.DataField = "m_iWAPMeasureID"
oWAPMeasureIDColumn.Visible = False
Dim oEditColumn As New GridEditCommandColumn
oEditColumn.UniqueName = "EditColumn"
Dim oDeletedColumn As New GridButtonColumn
oDeletedColumn.ConfirmText = "Delete this Measure?"
oDeletedColumn.ConfirmDialogType = GridConfirmDialogType.RadWindow
oDeletedColumn.ConfirmTitle = "Delete"
oDeletedColumn.ButtonType = GridButtonColumnType.ImageButton
oDeletedColumn.CommandName = "Delete"
oDeletedColumn.Text = "Delete"
oDeletedColumn.UniqueName = "DeleteColumn"
oDeletedColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center
oDeletedColumn.ItemStyle.CssClass = "MyImageButton"
Dim oSelectedColumn As New GridTemplateColumn
oSelectedColumn.HeaderText = String.Empty
oSelectedColumn.ItemTemplate = New clsItemSelectedTemplate("m_bSelected")
oSelectedColumn.EditItemTemplate = New clsEditSelectedTemplate("m_bSelected")
oSelectedColumn.DataField = "m_bSelected"
oSelectedColumn.UniqueName = "m_bSelected"
Dim oCategoryColumn As New GridTemplateColumn()
oCategoryColumn.ItemTemplate = New clsMeasureCategoryItemTemplate("m_sMeasureCategory")
oCategoryColumn.EditItemTemplate = New clsMeasureCategoryEditTemplate("m_sMeasureCategory", sAgId)
oCategoryColumn.DataField = "m_sMeasureCategory"
oCategoryColumn.UniqueName = "m_sMeasureCategory"
oCategoryColumn.HeaderText = "Measure Category"
Dim oDescriptionColumn As New GridTemplateColumn()
oDescriptionColumn.ItemTemplate = New clsMeasureDescriptionItemTemplate("m_sMeasureDescription")
oDescriptionColumn.EditItemTemplate = New clsMeasureDescriptionEditTemplate("m_sMeasureDescription", sAgId)
oDescriptionColumn.DataField = "m_sMeasureDescription"
oDescriptionColumn.UniqueName = "m_sMeasureDescription"
oDescriptionColumn.HeaderText = "Measure Description"
Dim oPricePerUnitColumn As New GridTemplateColumn()
oPricePerUnitColumn.ItemTemplate = New clsPricePerUnitItemTemplate("m_decPricePerUnit")
oPricePerUnitColumn.EditItemTemplate = New clsPricePerUnitEditTemplate("m_decPricePerUnit")
oPricePerUnitColumn.DataField = "m_decPricePerUnit"
oPricePerUnitColumn.UniqueName = "m_decPricePerUnit"
oPricePerUnitColumn.HeaderText = "Unit Price"
oPricePerUnitColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
Dim oUnitColumn As New GridTemplateColumn()
oUnitColumn.ItemTemplate = New clm_sUnitItemTemplate("m_sUnit")
oUnitColumn.EditItemTemplate = New clm_sUnitEditTemplate("m_sUnit")
oUnitColumn.DataField = "m_sUnit"
oUnitColumn.UniqueName = "m_sUnit"
oUnitColumn.HeaderText = "Unit"
Dim oAuthQtyColumn As New GridTemplateColumn()
oAuthQtyColumn.ItemTemplate = New clsAuthQtyItemTemplate("m_decAuthorizedQty")
oAuthQtyColumn.EditItemTemplate = New clsAuthQtyEditTemplate("m_decAuthorizedQty")
oAuthQtyColumn.HeaderText = "Authorized Qty"
oAuthQtyColumn.UniqueName = "m_decAuthorizedQty"
oAuthQtyColumn.DataField = "m_decAuthorizedQty"
oAuthQtyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
oAuthQtyColumn.ItemStyle.Width = 65
Dim oActualQtyColumn As New GridTemplateColumn()
oActualQtyColumn.ItemTemplate = New clsActQtyItemTemplate("m_decQuantity")
oActualQtyColumn.EditItemTemplate = New clsActQtyEditTemplate("m_decQuantity")
oActualQtyColumn.HeaderText = "Actual Qty"
oActualQtyColumn.UniqueName = "m_decQuantity"
oActualQtyColumn.DataField = "m_decQuantity"
oActualQtyColumn.ItemStyle.Wrap = True
oActualQtyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
oActualQtyColumn.ItemStyle.Width = 65
Dim oTotalPriceColumn As New GridTemplateColumn()
oTotalPriceColumn.ItemTemplate = New clsTotalPriceItemTemplate("m_decTotalPrice")
oTotalPriceColumn.EditItemTemplate = New clsTotalPriceEditTemplate("m_decTotalPrice")
oTotalPriceColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
oTotalPriceColumn.DataField = "m_decTotalPrice"
oTotalPriceColumn.UniqueName = "m_decTotalPrice"
oTotalPriceColumn.HeaderText = "Total Price"
Dim oStatusColumn As New GridTemplateColumn()
oStatusColumn.ItemTemplate = New clm_sStatusItemTemplate("m_sStatus")
oStatusColumn.EditItemTemplate = New clm_sStatusEditTemplate("m_sStatus")
oStatusColumn.DataField = "m_sStatus"
oStatusColumn.UniqueName = "m_sStatus"
oStatusColumn.HeaderText = "Status"
Dim oContractorColumn As New GridTemplateColumn()
oContractorColumn.ItemTemplate = New clsContractorItemTemplate("m_sContractor")
oContractorColumn.EditItemTemplate = New clsContractorEditTemplate("m_sContractor", sAgId)
oContractorColumn.DataField = "m_sContractor"
oContractorColumn.UniqueName = "m_sContractor"
oContractorColumn.HeaderText = "Contractor"
Dim oFundSourceColumn As New GridTemplateColumn()
oFundSourceColumn.ItemTemplate = New clsPrimaryFundSourceItemTemplate("m_sPrimaryFundSource")
oFundSourceColumn.EditItemTemplate = New clsPrimaryFundSourceEditTemplate("m_sPrimaryFundSource", sAgId)
oFundSourceColumn.DataField = "m_sPrimaryFundSource"
oFundSourceColumn.UniqueName = "m_sPrimaryFundSource"
oFundSourceColumn.HeaderText = "Funding Source"
Dim oStateCategoryColumn As New GridTemplateColumn()
oStateCategoryColumn.ItemTemplate = New clm_sStateCategoryItemTemplate("m_sStateCategory")
oStateCategoryColumn.EditItemTemplate = New clm_sStateCategoryEditTemplate("m_sStateCategory", sAgId)
oStateCategoryColumn.DataField = "m_sStateCategory"
oStateCategoryColumn.UniqueName = "m_sStateCategory"
oStateCategoryColumn.HeaderText = "BWR Category"
Dim oMeasureInfoID As New GridBoundColumn
oMeasureInfoID.UniqueName = "m_iMeasureInfoID"
oMeasureInfoID.DataField = "m_iMeasureInfoID"
oMeasureInfoID.Visible = False
'Add the columns to the grid
gridMeasures.MasterTableView.Columns.Add(oWAPMeasureIDColumn)
gridMeasures.MasterTableView.Columns.Add(oEditColumn)
gridMeasures.MasterTableView.Columns.Add(oDeletedColumn)
gridMeasures.MasterTableView.Columns.Add(oSelectedColumn)
gridMeasures.MasterTableView.Columns.Add(oCategoryColumn)
gridMeasures.MasterTableView.Columns.Add(oDescriptionColumn)
gridMeasures.MasterTableView.Columns.Add(oPricePerUnitColumn)
gridMeasures.MasterTableView.Columns.Add(oUnitColumn)
gridMeasures.MasterTableView.Columns.Add(oAuthQtyColumn)
gridMeasures.MasterTableView.Columns.Add(oActualQtyColumn)
gridMeasures.MasterTableView.Columns.Add(oTotalPriceColumn)
gridMeasures.MasterTableView.Columns.Add(oStatusColumn)
gridMeasures.MasterTableView.Columns.Add(oContractorColumn)
gridMeasures.MasterTableView.Columns.Add(oFundSourceColumn)
gridMeasures.MasterTableView.Columns.Add(oStateCategoryColumn)
gridMeasures.MasterTableView.Columns.Add(oMeasureInfoID)
End Sub
(Sys.WebForms.PageRequestManagerServerErrorException: Multiple controls with the same ID 'EditButton' were found. FindControl requires that controls have unique IDs.). My grid is defined in my aspx file but my columns are defined in the form Init. I add the columns to the grid after all columns are created and all properties are set.
Is there a working sample with this same scenario?
Here's my code:
aspx code:
..
<telerik:RadGrid ID="gridMeasures" runat="server" >
<MasterTableView
DataKeyNames="m_iWAPMeasureID" >
</MasterTableView>
</telerik:RadGrid>
vb code:
Protected Sub form1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Init
gridMeasures.AllowPaging = True
gridMeasures.AutoGenerateColumns = True
gridMeasures.ShowStatusBar = True
gridMeasures.GridLines = GridLines.None
gridMeasures.Skin = "Hay"
gridMeasures.ClientSettings.Scrolling.AllowScroll = True
gridMeasures.ClientSettings.Scrolling.UseStaticHeaders = True
gridMeasures.PageSize = 50
gridMeasures.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top
gridMeasures.MasterTableView.EditFormSettings.EditColumn.Display = True
gridMeasures.MasterTableView.EditMode = GridEditMode.InPlace
AddHandler gridMeasures.DeleteCommand, AddressOf gridMeasures_DeleteCommand
AddHandler gridMeasures.NeedDataSource, AddressOf gridMeasures_NeedDataSource
AddHandler gridMeasures.InsertCommand, AddressOf gridMeasures_InsertCommand
AddHandler gridMeasures.PreRender, AddressOf gridMeasures_PreRender
AddHandler gridMeasures.UpdateCommand, AddressOf gridMeasures_UpdateCommand
Dim oWAPMeasureIDColumn As New GridBoundColumn
oWAPMeasureIDColumn.UniqueName = "m_iWAPMeasureID"
oWAPMeasureIDColumn.DataField = "m_iWAPMeasureID"
oWAPMeasureIDColumn.Visible = False
Dim oEditColumn As New GridEditCommandColumn
oEditColumn.UniqueName = "EditColumn"
Dim oDeletedColumn As New GridButtonColumn
oDeletedColumn.ConfirmText = "Delete this Measure?"
oDeletedColumn.ConfirmDialogType = GridConfirmDialogType.RadWindow
oDeletedColumn.ConfirmTitle = "Delete"
oDeletedColumn.ButtonType = GridButtonColumnType.ImageButton
oDeletedColumn.CommandName = "Delete"
oDeletedColumn.Text = "Delete"
oDeletedColumn.UniqueName = "DeleteColumn"
oDeletedColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center
oDeletedColumn.ItemStyle.CssClass = "MyImageButton"
Dim oSelectedColumn As New GridTemplateColumn
oSelectedColumn.HeaderText = String.Empty
oSelectedColumn.ItemTemplate = New clsItemSelectedTemplate("m_bSelected")
oSelectedColumn.EditItemTemplate = New clsEditSelectedTemplate("m_bSelected")
oSelectedColumn.DataField = "m_bSelected"
oSelectedColumn.UniqueName = "m_bSelected"
Dim oCategoryColumn As New GridTemplateColumn()
oCategoryColumn.ItemTemplate = New clsMeasureCategoryItemTemplate("m_sMeasureCategory")
oCategoryColumn.EditItemTemplate = New clsMeasureCategoryEditTemplate("m_sMeasureCategory", sAgId)
oCategoryColumn.DataField = "m_sMeasureCategory"
oCategoryColumn.UniqueName = "m_sMeasureCategory"
oCategoryColumn.HeaderText = "Measure Category"
Dim oDescriptionColumn As New GridTemplateColumn()
oDescriptionColumn.ItemTemplate = New clsMeasureDescriptionItemTemplate("m_sMeasureDescription")
oDescriptionColumn.EditItemTemplate = New clsMeasureDescriptionEditTemplate("m_sMeasureDescription", sAgId)
oDescriptionColumn.DataField = "m_sMeasureDescription"
oDescriptionColumn.UniqueName = "m_sMeasureDescription"
oDescriptionColumn.HeaderText = "Measure Description"
Dim oPricePerUnitColumn As New GridTemplateColumn()
oPricePerUnitColumn.ItemTemplate = New clsPricePerUnitItemTemplate("m_decPricePerUnit")
oPricePerUnitColumn.EditItemTemplate = New clsPricePerUnitEditTemplate("m_decPricePerUnit")
oPricePerUnitColumn.DataField = "m_decPricePerUnit"
oPricePerUnitColumn.UniqueName = "m_decPricePerUnit"
oPricePerUnitColumn.HeaderText = "Unit Price"
oPricePerUnitColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
Dim oUnitColumn As New GridTemplateColumn()
oUnitColumn.ItemTemplate = New clm_sUnitItemTemplate("m_sUnit")
oUnitColumn.EditItemTemplate = New clm_sUnitEditTemplate("m_sUnit")
oUnitColumn.DataField = "m_sUnit"
oUnitColumn.UniqueName = "m_sUnit"
oUnitColumn.HeaderText = "Unit"
Dim oAuthQtyColumn As New GridTemplateColumn()
oAuthQtyColumn.ItemTemplate = New clsAuthQtyItemTemplate("m_decAuthorizedQty")
oAuthQtyColumn.EditItemTemplate = New clsAuthQtyEditTemplate("m_decAuthorizedQty")
oAuthQtyColumn.HeaderText = "Authorized Qty"
oAuthQtyColumn.UniqueName = "m_decAuthorizedQty"
oAuthQtyColumn.DataField = "m_decAuthorizedQty"
oAuthQtyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
oAuthQtyColumn.ItemStyle.Width = 65
Dim oActualQtyColumn As New GridTemplateColumn()
oActualQtyColumn.ItemTemplate = New clsActQtyItemTemplate("m_decQuantity")
oActualQtyColumn.EditItemTemplate = New clsActQtyEditTemplate("m_decQuantity")
oActualQtyColumn.HeaderText = "Actual Qty"
oActualQtyColumn.UniqueName = "m_decQuantity"
oActualQtyColumn.DataField = "m_decQuantity"
oActualQtyColumn.ItemStyle.Wrap = True
oActualQtyColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
oActualQtyColumn.ItemStyle.Width = 65
Dim oTotalPriceColumn As New GridTemplateColumn()
oTotalPriceColumn.ItemTemplate = New clsTotalPriceItemTemplate("m_decTotalPrice")
oTotalPriceColumn.EditItemTemplate = New clsTotalPriceEditTemplate("m_decTotalPrice")
oTotalPriceColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Right
oTotalPriceColumn.DataField = "m_decTotalPrice"
oTotalPriceColumn.UniqueName = "m_decTotalPrice"
oTotalPriceColumn.HeaderText = "Total Price"
Dim oStatusColumn As New GridTemplateColumn()
oStatusColumn.ItemTemplate = New clm_sStatusItemTemplate("m_sStatus")
oStatusColumn.EditItemTemplate = New clm_sStatusEditTemplate("m_sStatus")
oStatusColumn.DataField = "m_sStatus"
oStatusColumn.UniqueName = "m_sStatus"
oStatusColumn.HeaderText = "Status"
Dim oContractorColumn As New GridTemplateColumn()
oContractorColumn.ItemTemplate = New clsContractorItemTemplate("m_sContractor")
oContractorColumn.EditItemTemplate = New clsContractorEditTemplate("m_sContractor", sAgId)
oContractorColumn.DataField = "m_sContractor"
oContractorColumn.UniqueName = "m_sContractor"
oContractorColumn.HeaderText = "Contractor"
Dim oFundSourceColumn As New GridTemplateColumn()
oFundSourceColumn.ItemTemplate = New clsPrimaryFundSourceItemTemplate("m_sPrimaryFundSource")
oFundSourceColumn.EditItemTemplate = New clsPrimaryFundSourceEditTemplate("m_sPrimaryFundSource", sAgId)
oFundSourceColumn.DataField = "m_sPrimaryFundSource"
oFundSourceColumn.UniqueName = "m_sPrimaryFundSource"
oFundSourceColumn.HeaderText = "Funding Source"
Dim oStateCategoryColumn As New GridTemplateColumn()
oStateCategoryColumn.ItemTemplate = New clm_sStateCategoryItemTemplate("m_sStateCategory")
oStateCategoryColumn.EditItemTemplate = New clm_sStateCategoryEditTemplate("m_sStateCategory", sAgId)
oStateCategoryColumn.DataField = "m_sStateCategory"
oStateCategoryColumn.UniqueName = "m_sStateCategory"
oStateCategoryColumn.HeaderText = "BWR Category"
Dim oMeasureInfoID As New GridBoundColumn
oMeasureInfoID.UniqueName = "m_iMeasureInfoID"
oMeasureInfoID.DataField = "m_iMeasureInfoID"
oMeasureInfoID.Visible = False
'Add the columns to the grid
gridMeasures.MasterTableView.Columns.Add(oWAPMeasureIDColumn)
gridMeasures.MasterTableView.Columns.Add(oEditColumn)
gridMeasures.MasterTableView.Columns.Add(oDeletedColumn)
gridMeasures.MasterTableView.Columns.Add(oSelectedColumn)
gridMeasures.MasterTableView.Columns.Add(oCategoryColumn)
gridMeasures.MasterTableView.Columns.Add(oDescriptionColumn)
gridMeasures.MasterTableView.Columns.Add(oPricePerUnitColumn)
gridMeasures.MasterTableView.Columns.Add(oUnitColumn)
gridMeasures.MasterTableView.Columns.Add(oAuthQtyColumn)
gridMeasures.MasterTableView.Columns.Add(oActualQtyColumn)
gridMeasures.MasterTableView.Columns.Add(oTotalPriceColumn)
gridMeasures.MasterTableView.Columns.Add(oStatusColumn)
gridMeasures.MasterTableView.Columns.Add(oContractorColumn)
gridMeasures.MasterTableView.Columns.Add(oFundSourceColumn)
gridMeasures.MasterTableView.Columns.Add(oStateCategoryColumn)
gridMeasures.MasterTableView.Columns.Add(oMeasureInfoID)
End Sub