In my aspx page, when user click a "Preview" button in radtoolbar it will redirect to another page with querystring. but i get the following error
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
I had already tried to use both scriptblock and codeblock, but it doen't work
<%@ Page Title="" Language="VB" MasterPageFile="~/LRDB.master" AutoEventWireup="false" CodeFile="SIMPER_details.aspx.vb" Inherits="TrainingAdmin_SIMPER_details" %><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"><style type="text/css"> .table_photo { width: 100px; height: auto; } .table_content { width: 400px; } .table_header { width: 282px; height: 15px; background-color: #E7EEF6; } .style6 { width: 392px; height: 15px; background-color: #E7EEF6; font-weight: 700; } </style></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> <script type="text/javascript"> // var lastClickedItem = null; // var clickCalledAfterRadprompt = false; // var clickCalledAfterRadconfirm = false; // function onClientButtonClicking(sender, args) { // if (args.get_item().get_text() == "Create SIMPER") { // if (!clickCalledAfterRadconfirm) { // args.set_cancel(true); // lastClickedItem = args.get_item(); // radconfirm("Are you sure you want to create?", confirmCallbackFunction); // } // } // else if (args.get_item().get_text() == "Delete") { // if (!clickCalledAfterRadconfirm) { // args.set_cancel(true); // lastClickedItem = args.get_item(); // radconfirm("Are you sure you want to delete?", confirmCallbackFunction); // } // } // } // function confirmCallbackFunction(args) { // if (args) { // clickCalledAfterRadconfirm = true; // lastClickedItem.click(); // } // else // clickCalledAfterRadconfirm = false; // lastClickedItem = null; // } // OnClientButtonClicking = "onClientButtonClicking" function ShowSIMPER(id) { var wnd = window.radopen("SIMPER_view.aspx?SIMPER_ID=" + id + "&UserID=0", "SIMPER_PDF"); wnd.SetSize("700", "700"); wnd.moveTo("250", "140"); //return false; } </script> </telerik:RadScriptBlock> <telerik:RadWindowManager runat="server" ID="rwm1"> </telerik:RadWindowManager> <%--<telerik:RadToolBar ID="RadToolBar1" runat="server" Width="100%" Skin="Windows7" OnClientButtonClicking="onClientButtonClicking" >--%> <telerik:RadToolBar ID="rtbMenu" runat="server" Width="100%" Skin="Windows7"> <Items> <telerik:RadToolBarButton Value="Preview" Text="Preview SIMPER" Width="150px" Enabled="false" /> <telerik:RadToolBarButton IsSeparator="true" /> <telerik:RadToolBarButton Value="Refresh" Text="Refresh" Width="80px" CausesValidation="false" /> <telerik:RadToolBarButton IsSeparator="true" /> <telerik:RadToolBarButton Value="Back" Text="Back" Width="80px" CausesValidation="false"/> <telerik:RadToolBarButton Value="BackSeparator" IsSeparator="true" /> </Items> </telerik:RadToolBar> <telerik:RadFormDecorator ID="RpFormDecorator" runat="server" Skin="Windows7" DecoratedControls="All" EnableRoundedCorners="true" /> <div id="content_function" class="content_function" > <div style="margin-left:5px;"> <table cellpadding="1" width="1000" style="vertical-align:top"> <tr> <td align="left" valign="top" class="style6">Name </td> <td align="left" valign="top" class="table_content"> <asp:Label ID="lb_name" runat="server"></asp:Label> </td> <td align="left" valign="top" class="table_content" rowspan="8"> <telerik:RadBinaryImage runat="server" ID="RadBinaryImage1" ImageUrl="../images/blank_photo.jpg" Width="100px" ResizeMode="Fit" AlternateText="No picture available" style="border-style:dotted;" CssClass="preview" AutoAdjustImageControlSize="false"></telerik:RadBinaryImage> </td> </tr> <tr> <td align="left" valign="top" class="style6">Gender </td> <td align="left" valign="top" class="table_content"> <asp:Label ID="lb_gender" runat="server"></asp:Label> </td> </tr> <tr> <td align="left" valign="top" class="style6">Department </td> <td align="left" valign="top" class="table_content"> <asp:Label ID="lb_dept" runat="server"></asp:Label> </td> </tr> <tr> <td align="left" valign="top" class="style6"> </td> <td align="left" valign="top" class="table_content"> </td> </tr> <tr> <td align="left" valign="top" class="style6"><span class="style4">Required information if create SIMPER:</span> </td> <td align="left" valign="top" class="table_content"> </td> </tr> <tr> <td align="left" valign="top" class="style6">Valid From<br /> </td> <td align="left" valign="top" class="table_content"> <telerik:RadDatePicker ID="RadDatePicker_ValidFrom" Runat="server" Culture="en-US" MinDate="1/1/1900"> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Please enter Valid From." ControlToValidate="RadDatePicker_ValidFrom"></asp:RequiredFieldValidator> </td> </tr> <tr> <td align="left" valign="top" class="style6">Valid Till<br /> </td> <td align="left" valign="top" class="table_content"> <telerik:RadDatePicker ID="RadDatePicker_ValidTill" Runat="server" Culture="en-US" MinDate="1/1/1900"> </telerik:RadDatePicker> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please enter Valid Till." ControlToValidate="RadDatePicker_ValidTill"></asp:RequiredFieldValidator> <asp:CompareValidator ID="dateCompareValidator" runat="server" ControlToValidate="RadDatePicker_ValidTill" ControlToCompare="RadDatePicker_ValidFrom" Operator="GreaterThanEqual" Type="Date" ErrorMessage="Valid Till date must be equal or greater than Valid From date - please correct dates." Display="Dynamic"> </asp:CompareValidator> </td> </tr> </table> <br /> <br /> License Obtained<br /> <telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="LDS_License" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" PageSize="20" CellSpacing="0" GridLines="None" Width="1000"> <MasterTableView DataSourceID="LDS_License" AutoGenerateColumns="False" DataKeyNames="License_To_Operate_ID" OverrideDataSourceControlSorting="true"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="db_dictionary_license.license_type" FilterControlAltText="Filter License_Number column" HeaderText="License Type" SortExpression="db_dictionary_license.license_type" UniqueName="license_type"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="db_dictionary_license.license_name" FilterControlAltText="Filter License Name column" HeaderText="License Name" SortExpression="db_dictionary_license.license_name" UniqueName="license_name"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="License_Number" FilterControlAltText="Filter License_Number column" HeaderText="License Number" SortExpression="License_Number" UniqueName="License_Number"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="License_Issuer" FilterControlAltText="Filter License_Issuer column" HeaderText="License Issuer" SortExpression="License_Issuer" UniqueName="License_Issuer"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Valid_From" DataType="System.DateTime" FilterControlAltText="Filter Valid_From column" HeaderText="Valid From" SortExpression="Valid_From" UniqueName="Valid_From" DataFormatString="{0: dd-MMM-yyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Valid_Till" DataType="System.DateTime" FilterControlAltText="Filter Valid_Till column" HeaderText="Valid Till" SortExpression="Valid_Till" UniqueName="Valid_Till" DataFormatString="{0: dd-MMM-yyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Issue_date" DataType="System.DateTime" FilterControlAltText="Filter Issue_date column" HeaderText="Issue Date" SortExpression="Issue_date" UniqueName="Issue_date" DataFormatString="{0: dd-MMM-yyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="License_ID" Display="false" FilterControlAltText="Filter License_ID column" HeaderText="License_ID" UniqueName="License_ID" AllowFiltering="false" > </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> </EditFormSettings> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> </MasterTableView> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> <FilterMenu EnableImageSprites="False"></FilterMenu> </telerik:RadGrid> <asp:LinqDataSource ID="LDS_License" runat="server" EntityTypeName="" ContextTypeName="dcLRDBDataContext" TableName="db_Employee_Licenses" Where="UserID == @UserID && tmpRecord != @tmpRecord"> <WhereParameters> <asp:QueryStringParameter Name="UserID" QueryStringField="UserID" Type="Int32" /> <asp:Parameter DefaultValue="Y" Name="tmpRecord" Type="Char" /> </WhereParameters> </asp:LinqDataSource> <br /><br /><br /> Existing SIMPER Card<br /> <telerik:RadGrid ID="RadGrid2" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" OnItemCreated="RadGrid2_ItemCreated" CellSpacing="0" DataSourceID="LDS_SIMPER" GridLines="None" Width="400" onitemcommand="RadGrid2_ItemCommand"> <ClientSettings EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="true" EnableDragToSelectRows="false" /> </ClientSettings> <MasterTableView DataKeyNames="SIMPER_ID" DataSourceID="LDS_SIMPER"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn UniqueName="TemplateEditColumn" AllowFiltering="false"> <ItemTemplate> <asp:HyperLink ID="ViewLink" runat="server" Text="View"></asp:HyperLink> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Valid_From" DataType="System.DateTime" FilterControlAltText="Filter Valid_From column" HeaderText="Valid From" SortExpression="Valid_From" UniqueName="Valid_From" DataFormatString ="{0: dd-MMM-yyyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Valid_Till" DataType="System.DateTime" FilterControlAltText="Filter Valid_Till column" HeaderText="Valid Till" SortExpression="Valid_Till" UniqueName="Valid_Till" DataFormatString ="{0: dd-MMM-yyyy}"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> </EditFormSettings> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> </MasterTableView> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> <FilterMenu EnableImageSprites="False"></FilterMenu> </telerik:RadGrid> <telerik:RadWindowManager ID="RadWindowManager1" runat="server"> <Windows> <telerik:RadWindow ID="SIMPER_PDF" runat="server" Title="View SIMPER Card" Height="700px" Width="710px" Left="50px" ReloadOnShow="true" ShowContentDuringLoad="false" VisibleStatusBar="false" Modal="false"> </telerik:RadWindow> </Windows> </telerik:RadWindowManager> <asp:LinqDataSource ID="LDS_SIMPER" runat="server" ContextTypeName="dcLRDBDataContext" EntityTypeName="" TableName="db_Employee_Simper_Records" Where="UserID == @UserID and parent_id == null"> <WhereParameters> <asp:QueryStringParameter Name="UserID" QueryStringField="UserID" Type="Int32" /> </WhereParameters> </asp:LinqDataSource> <br /> </div> </div> </asp:Content>Code Behind
Imports Telerik.Web.UIImports System.CollectionsImports SystemPartial Class TrainingAdmin_SIMPER_details Inherits System.Web.UI.Page Private Shared prevPage As String = String.Empty Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then prevPage = Request.UrlReferrer.ToString() If Request.QueryString("UserID") <> String.Empty Then Dim dc As New dcLRDBDataContext Dim res = (From a In dc.db_Employee_Details _ Where a.UserID = Request.QueryString("UserID").ToString _ From b In dc.db_Departments _ .Where(Function(fb) fb.DeptID = a.Dept_ID) _ .DefaultIfEmpty() _ Select New With { _ a.Employee_Display_Name, b.Department, a.Employee_ID, a.Gender, a.Photo _ } _ ).FirstOrDefault If Not IsNothing(res) Then lb_name.Text = res.Employee_Display_Name lb_dept.Text = res.Department lb_gender.Text = res.Gender If Not IsNothing(res.Photo) Then RadBinaryImage1.DataValue = res.Photo.ToArray End If End If 'Dim res2 = (From a In dc.db_Dictionary_Licenses Where a.License_ID = Request.QueryString("LicenseID").ToString).FirstOrDefault 'If Not IsNothing(res2) Then ' lb_license.Text = res2.License_Name 'End If 'staff_photo.Src = ConfigurationManager.AppSettings("PhotoPath") & GetEmployeeIDByUserID(Request.QueryString("UserID")).ToString & ".jpg" 'If System.IO.File.Exists(Server.MapPath(staff_photo.Src)) = True Then ' staff_photo.Src = staff_photo.Src 'Else ' staff_photo.Src = ConfigurationManager.AppSettings("PhotoPath") & "/blank_staff_photo.jpg" 'End If dc.Dispose() End If End If End Sub Protected Sub rtbMenu_ButtonClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadToolBarEventArgs) Handles rtbMenu.ButtonClick If e.Item.Value = "Back" Then Response.Redirect(prevPage) 'Response.Redirect("~/TrainingAdmin/SIMPER.aspx") ElseIf e.Item.Value = "Create" Then If CreateSIMPER() = True Then Response.Redirect("~/TrainingAdmin/SIMPER_details.aspx?UserID=" & Request.QueryString("UserID")) Else Page.ClientScript.RegisterStartupScript(Page.GetType(), "MessageBox", "alert('Error! SIMPER Card cannot create.');", True) End If ElseIf e.Item.Value = "Preview" Then Dim url = "~/TrainingAdmin/SIMPER_view.aspx?SIMPER_ID=0&UserID=" & Request.QueryString("UserID") _ & "&From=" & RadDatePicker_ValidFrom.SelectedDate & "&To=" & RadDatePicker_ValidTill.SelectedDate 'ScriptManager.RegisterStartupScript(Page, GetType(Page), "OpenWindow", _ ' "window.open('" & url & "','_blank','status=0,toolbar=0,menubar=0,location=0,scrollbars=0,resizable=0,width=710,height=700');", True) Dim windowManager As New RadWindowManager() Dim window1 As New RadWindow() ' Set the window properties window1.NavigateUrl = url window1.ID = "RadWindow1" window1.Height = 750 window1.Width = 740 window1.Top = 140 window1.Left = 250 window1.AutoSize = False window1.VisibleTitlebar = True window1.VisibleStatusbar = False window1.VisibleOnPageLoad = True ' Set this property to True for showing window from code windowManager.Windows.Add(window1) Me.Form.Controls.Add(window1) ElseIf e.Item.Value = "Refresh" Then Response.Redirect("~/TrainingAdmin/SIMPER_details.aspx?userID=" & Request.QueryString("UserID")) End If End Sub Protected Function CreateSIMPER() As Boolean Dim confirm As Boolean = False Dim dc As New dcLRDBDataContext Dim simperid As Integer = 0 If RadGrid1.Items.Count > 0 Then Dim newRecord1 As New db_Employee_Simper_Record dc.db_Employee_Simper_Records.InsertOnSubmit(newRecord1) newRecord1.UserID = Request.QueryString("UserID").ToString newRecord1.Valid_From = RadDatePicker_ValidFrom.SelectedDate newRecord1.Valid_Till = RadDatePicker_ValidTill.SelectedDate newRecord1.Project_ID = HttpContext.Current.Session("SelectedPID").ToString newRecord1.LastUpdateDate = DateTime.Now newRecord1.LastUpdateBy = HttpContext.Current.Session("UserID") dc.SubmitChanges() simperid = newRecord1.SIMPER_ID For Each row As GridDataItem In RadGrid1.Items Dim lic_id As String = row("License_ID").Text Dim lic_no As String = row("License_Number").Text Dim lic_type As String = row("License_Type").Text Dim lic_name As String = row("license_name").Text Dim lic_issuer As String = row("License_Issuer").Text Dim lic_v_from As DateTime = row("Valid_From").Text Dim lic_v_till As DateTime = row("Valid_Till").Text Dim lic_issue_date As DateTime = row("Issue_date").Text dc.insertEmployeeSIMPER(simperid, Request.QueryString("UserID").ToString, HttpContext.Current.Session("SelectedPID").ToString, _ lic_id, lic_no, lic_name, lic_type, lic_issuer, lic_v_from, lic_v_till, lic_issue_date, DateTime.Now, HttpContext.Current.Session("UserID").ToString) Next confirm = True dc.Dispose() Else confirm = False End If Return confirm End Function Protected Sub RadGrid1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadGrid1.DataBound 'No License obtained If RadGrid1.Items.Count = 0 Then rtbMenu.FindItemByValue("Preview").Enabled = False Else rtbMenu.FindItemByValue("Preview").Enabled = True End If End Sub Protected Sub RadGrid2_ItemCreated(ByVal sender As Object, ByVal e As GridItemEventArgs) If TypeOf e.Item Is GridDataItem Then Dim editLink As HyperLink = DirectCast(e.Item.FindControl("ViewLink"), HyperLink) editLink.Attributes("href") = "javascript:void(0);" editLink.Attributes("onclick") = [String].Format("return ShowSIMPER('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("SIMPER_ID"), e.Item.ItemIndex) End If End Sub Protected Sub RadGrid2_ItemCommand(ByVal source As Object, ByVal e As GridCommandEventArgs) If e.CommandName = "RowClick" Then Dim item As GridDataItem = DirectCast(e.Item, GridDataItem) 'Dim strId1 As String = item.GetDataKeyValue("UserID").ToString() 'Response.Redirect("~/TrainingAdmin/SIMPER_details.aspx?UserID=" & strId1) 'Dim editLink As HyperLink = DirectCast(e.Item.FindControl("ViewLink"), HyperLink) item.Attributes("href") = "javascript:void(0);" item.Attributes("onclick") = [String].Format("return ShowSIMPER('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("SIMPER_ID"), e.Item.ItemIndex) End If End SubEnd Class