I'm using several controls on a page that has a radajaxpanel that contains several controls as i will show:
The way of working is the next, when selecting a item from TaskRadGridView, we load data from the database:
The when we select (highlight) a node from the RadTreeList PersonnelAssignedRTreLst, we get the data for PersonnelToAssignGriView, from the PersonnelToAssignGriView we can select (check) several items then when we click on the button PersonnelAddRBtn
on the header of this item we should add those items to PersonnelAssignedRTreLst, the problem occurs when the list of items related to the PersonnelToAssignGriView is like 500 rows, there is a problem when click on the PersonnelAddRBtn
Button from the header, it does not make a postback I get this error. Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. It doesn't make a postback, I search in the web, I'm not using Response.write anywhere. Thinking that the problem could be that the button is inside the radajaxpanel i set a button Add on the RadToolBar, but i get a similar error, it never goes to the function established on the serverside, i set a debugger on the JS function selBut that executes onClientButtonClicking event, then i got an exception on telerik code on line 6224 see that on image related.
There is another odd behavior of the page, in some computers there isn't any exception, could be a configuration that i'm missing?.
Javier
<asp:Content ID="Content1" ContentPlaceHolderID="VSContentPlaceHolder" Runat="Server"><telerik:RadScriptManager ID="RadScriptManager1" runat="server" ></telerik:RadScriptManager><telerik:RadCodeBlock ID="EventsRCodBlo" runat="server"> <script type="text/javascript"> window.onload = firstLoad; function firstLoad() { setDivHeight(); //alert(isPostBack()); } function selTreLstChange(sender, args) { var treelist = $find("<%=PersonnelAssignedRTreLst.ClientID%>"); var items = treelist.get_selectedItems(); var count = items.length; if (count > 0) { var item = items[0]; var nodetype = item.get_element().getAttribute("typeofnode"); var perid = item.get_element().getAttribute("perid"); var AuxQualifiedHid = document.getElementById("<%=SelQualHidFie.ClientID%>"); AuxQualifiedHid.value = nodetype; var AuxPersAsIDHid = document.getElementById("<%=PersAsIDHidFie.ClientID%>"); AuxPersAsIDHid.value = perid; var index = item.get_hierarchicalIndex(); $find("<%=MainRAjaPan.ClientID %>").ajaxRequest("PersTypeChanged"); } } function selBut(sender, args) { var toolBar = sender; var button = args.get_item(); var command = button.get_commandName(); if (command == 'Save') { //Save logic } } function setDivHeight(sender,args) { //Set height from divs } </script> </telerik:RadCodeBlock><telerik:RadToolBar ID="MainToolBar" runat="server" Width="100%" OnClientButtonClicking="selBut" OnButtonClick="MainToolBar_ButtonClick"> <Items> <telerik:RadToolBarButton runat="server" CommandName="Back" CommandArgument="Back" Text="Back" ImageUrl="~/VS/Images/textbox/post_button_undo.gif" NavigateUrl="javascript:cancel();" ToolTip="Back" PostBack="false" > </telerik:RadToolBarButton> <telerik:RadToolBarButton runat="server" CommandName="Save" CommandArgument="Save" Text="Save Changes" Visible="true" ImageUrl="~/VS/Images/color/16/0040-save.gif" ToolTip="Save Changes" > </telerik:RadToolBarButton> <telerik:RadToolBarButton runat="server" CommandName="Add" CommandArgument="Add" Text="Add Per" ImageUrl="" ToolTip="Add" PostBack="true" Visible="true"> </telerik:RadToolBarButton> </Items> </telerik:RadToolBar><telerik:RadAjaxLoadingPanel ID="MainLoaPan" runat="server"></telerik:RadAjaxLoadingPanel><telerik:RadAjaxPanel ID="MainRAjaPan" runat="server" LoadingPanelID="MainLoaPan" ClientEvents-OnResponseEnd="setDivHeight"> <div id="LeftUDiv" runat="server" style="width: 49.5%; height: 100%; float:left; overflow:hidden; border-spacing:inherit; border: 1px solid #aaaaaa; background-color:#FFFFFF;"><div id="LeftU1Div" runat="server" style="width: 100%;height: 45%; position: relative; overflow: auto; background-color:#FFFFFF;"> <%--Tasks RadGrid--%> <telerik:RadGrid ID="TasksRGriVie" runat="server" AutoGenerateColumns="false" AllowMultiRowSelection="false" OnSelectedIndexChanged="TasksRGriVie_SelectedIndexChanged" OnPreRender="TasksRGriVie_PreRender" OnItemDataBound="TasksRGriVie_ItemDataBound"> <MasterTableView DataKeyNames="taskID" ClientDataKeyNames="taskID" ShowHeader="false" Width="99%"> <Columns> <telerik:GridBoundColumn DataField="PIBCID" Visible="false" HeaderText="PIBCID" ItemStyle-Font-Size="Smaller"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FVRItemID" Visible="false" HeaderText="FVRItemID" ItemStyle-Font-Size="Smaller"></telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="true" /> </ClientSettings> </telerik:RadGrid> </div> <div id="LeftU2Div" runat="server" style="width: 100%;height: 45%; position: relative; overflow: auto; background-color:#FFFFFF;"> <%--Personnel Assigned RadTreeList --%> <telerik:RadTreeList ID="PersonnelAssignedRTreLst" runat="server" DataKeyNames="ID" ParentDataKeyNames="parent" OnNeedDataSource="PersonnelAssignedRTreLst_NeedDataSource" AutoGenerateColumns="false" AllowMultiItemSelection="false" GridLines="None" ShowTreeLines="false" Width="100%" Height="99%" OnItemDataBound="PersonnelAssignedRTreLst_ItemDataBound" OnItemCommand="PersonnelAssignedRTreLst_ItemCommand" OnItemCreated="PersonnelAssignedRTreLst_ItemCreated" OnPreRender="PersonnelAssignedRTreLst_PreRender" > <Columns> <telerik:TreeListBoundColumn DataField="CandidateID" UniqueName="rTreeLstPersAsColCandID" Visible="true" ItemStyle-Font-Size="Smaller"> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn DataField="Desc" UniqueName="rTreeLstPersAsColName" Visible="true" ItemStyle-Font-Size="Smaller"> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn DataField="QualDesc" UniqueName="rTreeLstPersAsColExp" Visible="true" ItemStyle-Font-Size="Smaller"> </telerik:TreeListBoundColumn> </Columns> <ClientSettings Selecting-AllowItemSelection="true"> <ClientEvents OnItemSelected="selTreLstChange" /> </ClientSettings> </telerik:RadTreeList> </div> </div><div id="RightUDiv" runat="server" style="width: 50%; height: 100%; float:right; overflow:hidden; border-spacing:inherit; border: 1px solid #aaaaaa; background-color:#FFFFFF;"> <%--Personnel To Assign RadGrid --%> <telerik:RadGrid ID="PersonnelToAssignRGriVie" runat="server" AutoGenerateColumns="false" AllowMultiRowSelection="false" OnPreRender="PersonnelToAssignRGriVie_PreRender" AllowSorting="true" OnSortCommand="PersonnelToAssignRGriVie_SortCommand" OnItemDataBound="PersonnelToAssignRGriVie_ItemDataBound"> <MasterTableView DataKeyNames="ID,UniqueID" ClientDataKeyNames="ID" TableLayout="Auto" Width="100%"> <NoRecordsTemplate> No Records to display </NoRecordsTemplate> <Columns> <telerik:GridTemplateColumn UniqueName="Selectcol" HeaderStyle-Width="100px" ItemStyle-Width="80px"> <HeaderTemplate> <telerik:RadButton ID="PersonnelAddRBtn" CommandName="PersonnelAddRBtn" CommandArgument="PersonnelAddRBtn" runat="server" Text='' Visible="true" Width="95px" > </telerik:RadButton> </HeaderTemplate> <ItemTemplate> <asp:Image ID="imgTrain" ToolTip="Requires Training" runat="server" Visible="false" ImageUrl="~/VS/Images/icon_emark1.gif" Width="10" Height="10" onclick="openTrainingInfo(this);" /> <asp:CheckBox ID="chkSelPersonnel" runat="server" Visible="true" onclick="checkSpan(this);" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="CandidateID" AllowSorting="true" HeaderText="Candidate ID" UniqueName="CandidateIDCol" SortExpression="CandidateID" ItemStyle-Font-Size="Smaller"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Desc" AllowSorting="true" HeaderText="Name" UniqueName="NameCol" SortExpression="Desc" ItemStyle-Font-Size="Smaller"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CompName" AllowSorting="true" HeaderText="Company" UniqueName="CompNameCol" SortExpression="CompName" ItemStyle-Font-Size="Smaller"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="QualDesc" AllowSorting="true" HeaderText="Qualified" UniqueName="QualDescCol" SortExpression="QualDesc" ItemStyle-Font-Size="Smaller"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <SortingSettings EnableSkinSortStyles="false" /> <ClientSettings> <Selecting AllowRowSelect="false" /> <Resizing AllowColumnResize="false" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" SaveScrollPosition="true" /> </ClientSettings> </telerik:RadGrid> </div></telerik:RadAjaxPanel>The way of working is the next, when selecting a item from TaskRadGridView, we load data from the database:
Protected Sub TasksRGriVie_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim AuxTaskId As Integer If TasksRGriVie.SelectedItems.Count > 0 Then Dim item As GridDataItem = TasksRGriVie.SelectedItems(0) AuxTaskId = CInt(item.GetDataKeyValue("taskID")) LoadTaskDetails(AuxTaskId) End If End SubSub LoadTaskDetails(ByVal selTaskID As Integer) If TasksRGriVie.Items.Count > 0 Then Dim auxQual As Integer = CInt(Me.SelQualHidFie.Value) Dim curContractor As Integer = Session("CompanyID") Dim objtask As OQCrewItem = listTask.Find(Function(c) c.taskID = selTaskID) 'Loads the list view with the current personnal Dim ListPerAs As New List(Of OQCrewPersonnel) 'Getting data from the view state If selTaskID > 0 Then 'listTask a property that gets data from viewState('listtask') ListPerAs = listTask.Find(Function(c) c.taskID = selTaskID).personnel PersonnelAssignedRTreLst.DataSource = ListPerAs.Where(Function(c) c.statusID = 1).OrderByDescending(Function(c) c.lastName).ToList() End If 'Gets list of personnel Dim listAvailablePer = OQProjectBL.GetAvailableCrewPersonnel() Dim list = listAvailablePer.Where(Function(c) c.qualified = "Yes").OrderBy(Function(c1) c1.lastName).ToList() PersonnelToAssignRGriVie.DataSource = list PersonnelToAssignRGriVie.DataBind() End If End Subon the header of this item we should add those items to PersonnelAssignedRTreLst, the problem occurs when the list of items related to the PersonnelToAssignGriView is like 500 rows, there is a problem when click on the PersonnelAddRBtn
Button from the header, it does not make a postback I get this error. Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. It doesn't make a postback, I search in the web, I'm not using Response.write anywhere. Thinking that the problem could be that the button is inside the radajaxpanel i set a button Add on the RadToolBar, but i get a similar error, it never goes to the function established on the serverside, i set a debugger on the JS function selBut that executes onClientButtonClicking event, then i got an exception on telerik code on line 6224 see that on image related.
There is another odd behavior of the page, in some computers there isn't any exception, could be a configuration that i'm missing?.
Javier