protected void myRadGrid1_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; foreach (string hlc in hyperlinksColumns) { HyperLink link = new HyperLink(); Guid guid = new Guid(); link.ID = guid.ToString(); link.Text = item[hlc].Text; //accessing the GridBoundColumn to get the text link.NavigateUrl = item[hlc + "_URL"].Text; item[hlc].Controls.Add(link); } foreach (string ic in imageColumns) { Image image = new Image(); Guid guid = new Guid(); image.ID = guid.ToString(); image.ImageUrl = ImageLocation + item[ic + "_IMG"].Text; item[ic + "_IMG"].Controls.Add(image); } }}
| Source: | System.Web |
| Message: | Exception of type 'System.Web.HttpUnhandledException' was thrown. |
| Inner Exception: | The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). |
| Stack Trace: | at System.Web.UI.ControlCollection.AddAt(Int32 index, Control child) at Telerik.Web.UI.RadAjaxControl.MoveUpdatePanel(Control initiator, Control updated) at Telerik.Web.UI.RadAjaxControl.PerformRender() at Telerik.Web.UI.RadAjaxControl.OnPageRender(HtmlTextWriter writer, Control page) at Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Page.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) |
| Form: | |
| Query String: | |
| Target Site: | Boolean HandleError(System.Exception) |
All i have done is change the radA:RadAjaxPanel to telerik:RadAjaxPanel. I also added the <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> tag to the top of the page. I also put a ScriptManager on the page. Is there something I missed?
Thanks, Jason
<telerik:RadMultiPage ID="radShifts" runat="server" BorderColor="Black" BorderStyle="Inset" BorderWidth="2px" SelectedIndex="0" Width="100%"> <telerik:RadPageView ID="pvActiveShifts" runat="server"> <uc2:activeshifts runat="server" /> </telerik:RadPageView> <telerik:RadPageView ID="pvActivePending" runat="server"> <uc2:activeshiftspending runat="server" /> </telerik:RadPageView> <telerik:RadPageView ID="pvCancelledPending" runat="server"> <uc2:cancelledshiftspending ID="cancelledshiftspending" runat="server" /> </telerik:RadPageView> <telerik:RadPageView ID="pvCancelledArchived" runat="server"> <uc2:cancelledshiftsarchived ID="cancelledshiftsarchived" runat="server" /> </telerik:RadPageView> </telerik:RadMultiPage> <telerik:RadDockLayout ID="dockLayout1" runat="server" > <telerik:RadDockZone ID="zone1" runat="server" Orientation="Vertical" BorderStyle="None" Skin="Black"> <telerik:RadDock ID="dockActiveShiftsFilter" runat="server" Skin="Black" Width="100%" DefaultCommands="None" Title="Filter" DockMode="Docked"> <ContentTemplate> </ContentTemplate> </telerik:RadDock> <telerik:RadDock ID="dockActiveShiftsFilled" runat="server" Skin="Black" Width="100%" DefaultCommands="ExpandCollapse" Title="Shifts Filled" DockMode="Docked"> <ContentTemplate> </ContentTemplate> </telerik:RadDock> <telerik:RadDock ID="dockActiveShiftsAvailable" runat="server" Skin="Black" Width="100%" DefaultCommands="ExpandCollapse" Title="Shifts Available" DockMode="Docked"> <ContentTemplate> </ContentTemplate> </telerik:RadDock> </telerik:RadDockZone> </telerik:RadDockLayout>
RAD GRID MARKUP:::
<telerik:RadGrid ID="WorkOrderItemsRadGrid" runat="server" AllowPaging="true" AutoGenerateColumns="false"
Skin="WebBlue" PageSize="8" EnableTheming="false" AllowFilteringByColumn="false" AllowCustomPaging="false"
OnItemDataBound="WorkOrderItemsRadGrid_ItemDataBound" OnNeedDataSource="WorkOrderItemsRadGrid_NeedDataSource"
Width="100%" OnItemCreated="WorkOrderItemsRadGrid_ItemCreated" AllowMultiRowSelection="true">
<GroupingSettings CaseSensitive="false" />
<PagerStyle Mode="NextPrevAndNumeric" />
<MasterTableView DataKeyNames="WORKORDERNUMBER,LOCATIONID,WORKORDERID,WORKORDERDETAILID,WOTYPENAME,LASTUPDATED,RACKNUMBER,LASTUPDATEDBY,MATERIALTYPE,MATERIALTYPEID,MATERIALDESCRIPTION"
CommandItemSettings-ShowAddNewRecordButton="false" EditMode="PopUp" CommandItemDisplay="Top"
AllowSorting="true" CommandItemSettings-RefreshText="Refresh" CommandItemSettings-RefreshImageUrl="~/App_Themes/GOLD Main/ToolBar/refresh_16x16.gif" >
<HeaderStyle HorizontalAlign="Left" />
<Columns>
<telerik:GridTemplateColumn AllowFiltering="false" HeaderStyle-Width="100px" UniqueName="RackNumberColumn"
ItemStyle-HorizontalAlign="Left" ItemStyle-Width="100px" HeaderText="Rack">
<ItemTemplate>
<telerik:RadComboBox ID="RackNumberGridComboBox" runat="server" Width="90px" Height="160px"
Skin="WebBlue" EnableLoadOnDemand="true" AutoPostBack="true" OnItemsRequested="RackNumberGridComboBox_ItemsRequested"
AllowCustomText="false" HighlightTemplatedItems="true" DataValueField="RACKID"
DataTextField="RACKNUMBER" DropDownWidth="210px">
<HeaderTemplate>
<ul class="woCustomerDropDown" style="width: 180px;">
<li class="woCustomerCol" style="width: 120px;">Rack Number</li>
<li class="woCustomerCol" style="width: 60px;">Utilization</li>
</ul>
</HeaderTemplate>
<ItemTemplate>
<ul class="woCustomerDropDown" style="width: 180px;">
<li class="woCustomerCol" style="width: 120px;">
<%# DataBinder.Eval(Container.DataItem, "RACKNUMBER") %></li>
<li class="woCustomerCol" style="width: 60px;">
<%# DataBinder.Eval(Container.DataItem, "UTILIZATION") %></li>
</ul>
</ItemTemplate>
</telerik:RadComboBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="WORKORDERITEMDISPLAY" HeaderText="Work Order"
HeaderStyle-Width="80px" FilterControlWidth="60px" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
RAD GRID DATABIND:
protected void WorkOrderItemsRadGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
GridCommandItem cmndItem = (GridCommandItem)WorkOrderItemsRadGrid.MasterTableView.GetItems(GridItemType.CommandItem)[0];
LinkButton btn = (LinkButton)cmndItem.FindControl("RebindGridButton");
((System.Web.UI.WebControls.TableCell)(btn.Parent)).HorizontalAlign = HorizontalAlign.Left;
if (e.Item is GridDataItem)
{
GridDataItem boundItem = (GridDataItem)e.Item;
string wonumber = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["WORKORDERNUMBER"]);
string woid = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["WORKORDERID"]);
string locationid = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["LOCATIONID"]);
string wodetailid = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["WORKORDERDETAILID"]);
string lastracknumber = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["RACKNUMBER"]);
string lastrackid = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["RACKID"]);
string lastupdate = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["LASTUPDATED"]);
string lastupdateby = Convert.ToString(boundItem.OwnerTableView.DataKeyValues[boundItem.ItemIndex]["LASTUPDATEDBY"]);
int materialtypeid = Convert.ToInt32(boundItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["MATERIALTYPEID"]);
string materialdesc = boundItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["MATERIALDESCRIPTION"].ToString();
if (lastracknumber != "")
{
RadComboBox rackBox = boundItem.FindControl("RackNumberGridComboBox") as RadComboBox;
using (TruckingBC tbc = new TruckingBC())
{
rackBox.DataSource = tbc.GetRackNumbers(DivisionID,lastracknumber);
rackBox.DataBind();
}
}
}
COMBO BOX ON GRID EVENTS:
protected void RackNumberGridComboBox_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
{
RadComboBox comboBox = (RadComboBox)sender;
using (TruckingBC tbc = new TruckingBC())
{
comboBox.DataSource = tbc.GetRackNumbers(DivisionID);
comboBox.DataBind();
}
}