Hi
In Sharepoint 2010 I created a web part with a dropdown that contain a list of the month and based on the selection some data is shown in a grid. If I don't ajaxify it, it works well. When I work with ajax , if I select first time imediately after the page is shown a month with no data, it show the grid empty, when I select back to a month that has data I get this error
"
Microsoft JScript runtime error: Sys.ArgumentUndefinedException: Value cannot be undefined.
Parameter name: type
".
If imediately after the page is shown I select a month with data and then a month without data and then a month with data i have no erorrs.
How I can fix the error ?
Thank you !
Hans
The code is here:
and here it is the c#
In Sharepoint 2010 I created a web part with a dropdown that contain a list of the month and based on the selection some data is shown in a grid. If I don't ajaxify it, it works well. When I work with ajax , if I select first time imediately after the page is shown a month with no data, it show the grid empty, when I select back to a month that has data I get this error
"
Microsoft JScript runtime error: Sys.ArgumentUndefinedException: Value cannot be undefined.
Parameter name: type
".
If imediately after the page is shown I select a month with data and then a month without data and then a month with data i have no erorrs.
How I can fix the error ?
Thank you !
Hans
The code is here:
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %><%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %><%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebPart_EstimatedFinalCostsUserControl.ascx.cs" Inherits="Project_EstimatedFinalCosts.WebPart_EstimatedFinalCosts.WebPart_EstimatedFinalCostsUserControl" %><%@ Register Assembly="Telerik.Web.UI, Version=2013.1.417.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1" > <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadDropDownYears"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadDropDownMonths"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadDropDownJobMaster"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" Skin="WebBlue" /><asp:Panel ID="Panel1" runat="server"> <table style="width: 500px;" > <tr> <td> Current </td> <td> <telerik:RadDropDownList ID="RadDropDownYears" runat="server" Skin="WebBlue" AutoPostBack="True" onselectedindexchanged="RadDropDownYears_SelectedIndexChanged"> </telerik:RadDropDownList> </td> <td> <telerik:RadDropDownList ID="RadDropDownMonths" runat="server" Skin="WebBlue" AutoPostBack="True" onselectedindexchanged="RadDropDownMonths_SelectedIndexChanged"> </telerik:RadDropDownList> </td> <td> <telerik:RadDropDownList ID="RadDropDownJobMaster" runat="server" Skin="WebBlue" AutoPostBack="True" onselectedindexchanged="RadDropDownJobMaster_SelectedIndexChanged" DropDownWidth="500px" DropDownHeight="200px" EnableVirtualScrolling="true"> <ItemTemplate> <table> <tr> <td style="width: 10%"> <%# DataBinder.Eval(Container.DataItem, "JobNo")%> </td> <td style="width: 80%"> <%# DataBinder.Eval(Container.DataItem, "JobName")%> </td> <td style="width: 10%"> <%# DataBinder.Eval(Container.DataItem, "JobStatus")%> </td> </tr> </table> </ItemTemplate> </telerik:RadDropDownList> </td> </tr> </table> </asp:Panel><br /><telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateEditColumn="True" OnUpdateCommand="RadGrid1_UpdateCommand" OnNeedDataSource="RadGrid1_NeedDataSource" Skin="WebBlue" ShowStatusBar="true" > <ClientSettings> <Selecting AllowRowSelect="True" /> </ClientSettings><MasterTableView EditMode="EditForms" DataKeyNames="EFCId" CommandItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnCurrentPage" GridLines="None" TableLayout="Auto"><CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings><Columns> <telerik:GridTemplateColumn HeaderText="Year" ItemStyle-Width="100px"> <ItemTemplate > <%#DataBinder.Eval(Container.DataItem, "Year")%> </ItemTemplate> <EditItemTemplate> <telerik:RadComboBox runat="server" ID="RadComboBox1" EnableLoadOnDemand="True" OnItemsRequested="RadComboBox1_ItemsRequested" DataTextField="YearNo" DataValueField="YearNo" Text='<%#DataBinder.Eval(Container.DataItem,"Year")%>' Skin="WebBlue" MarkFirstMatch="True" > </telerik:RadComboBox> </EditItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" DataField="JobNo" ForceExtractValue="Always" HeaderText="Job No" SortExpression="JobNo" ItemStyle-Width="120px"> <HeaderStyle Width="120px" /> <ItemStyle Width="120px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" DataField="JobName" HeaderText="Job Name" SortExpression="JobName" ItemStyle-Width="500px"> <HeaderStyle Width="500px" /> <ItemStyle Width="500px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn AllowFiltering="false" DataField="EFCAmount" HeaderText="EFC Amount" SortExpression="EFCAmount" ItemStyle-Width="100px"> <HeaderStyle Width="100px" /> <ItemStyle Width="100px" /> </telerik:GridBoundColumn></Columns><RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"><HeaderStyle Width="20px"></HeaderStyle></RowIndicatorColumn><ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column" Created="True"><HeaderStyle Width="20px"></HeaderStyle></ExpandCollapseColumn><EditFormSettings><EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn></EditFormSettings><PagerStyle PageSizeControlType="RadComboBox"></PagerStyle></MasterTableView><PagerStyle PageSizeControlType="RadComboBox"></PagerStyle><FilterMenu EnableTheming="True"> <CollapseAnimation Duration="200" Type="OutQuint"></CollapseAnimation></FilterMenu></telerik:RadGrid>and here it is the c#
using System;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Collections.Generic;using System.Linq;using Project_SqlDataLibrary;using Microsoft.SharePoint.Administration;using Telerik.Web.UI;using System.Collections;namespace Project_EstimatedFinalCosts.WebPart_EstimatedFinalCosts{ public partial class WebPart_EstimatedFinalCostsUserControl : UserControl { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadAndConfigureYearData(); LoadAndConfigureMonthData(); LoadAndConfigureActiveJobData(); } } private void LoadAndConfigureActiveJobData() { try { int year = RadDropDownYears.SelectedValue == null ? DateTime.Now.Year : Convert.ToInt32(RadDropDownYears.SelectedValue); int month = RadDropDownMonths.SelectedValue == null ? DateTime.Now.Month : Convert.ToInt32(RadDropDownMonths.SelectedValue); IEnumerable<EFC_JobMaster> list = SQL_EFC.GetAll_ActiveJobList(year,month,true); RadDropDownJobMaster.DataSource = list; RadDropDownJobMaster.DataTextField = "JobName"; RadDropDownJobMaster.DataValueField = "JobNo"; RadDropDownYears.SelectedValue = "0"; RadDropDownJobMaster.DataBind(); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } private void LoadAndConfigureYearData() { try { IEnumerable<Year> list = SQL_Misc.GetAll_YearsList(); int index = list.FirstOrDefault(x => x.CurrentWorkYear == true).YearNo; RadDropDownYears.DataSource = list; RadDropDownYears.DataTextField = "YearNo"; RadDropDownYears.DataValueField = "YearNo"; RadDropDownYears.SelectedValue = index.ToString().Trim(); RadDropDownYears.DataBind(); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } private void LoadAndConfigureMonthData() { try { IEnumerable<Month> list = SQL_Misc.GetAll_MonthsList(); RadDropDownMonths.DataSource = list; RadDropDownMonths.DataTextField = "MonthName"; RadDropDownMonths.DataValueField = "MonthNo"; int curMonth = DateTime.Now.Month; if (curMonth == 1) curMonth = 12; else curMonth--; RadDropDownMonths.SelectedValue = curMonth.ToString().Trim(); RadDropDownMonths.DataBind(); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } #region "Events" protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e) { var editableItem = ((GridEditableItem)e.Item); var efcId = (int)editableItem.GetDataKeyValue("EFCId"); //you have the primary key value to required for update //get the value of the combobox GridEditFormItem formItem = e.Item as GridEditFormItem; var x = formItem.FindControl("RadComboBox1"); RadComboBox dd = x as RadComboBox; int comboVal = Convert.ToInt32(dd.SelectedValue); ////this gets the other values from text input in values variable Hashtable values = new Hashtable(); editableItem.ExtractValues(values); } protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { try { int year = RadDropDownYears.SelectedValue == null ? DateTime.Now.Year : Convert.ToInt32(RadDropDownYears.SelectedValue); int month = RadDropDownMonths.SelectedValue == null ? DateTime.Now.Month : Convert.ToInt32(RadDropDownMonths.SelectedValue); string jobno = String.Empty; RadGrid1.DataSource = SQL_EFC.GetAll_List(year, month, jobno); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } protected void RadDropDownJobMaster_SelectedIndexChanged(object sender, DropDownListEventArgs e) { try { RadGrid1.Rebind(); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } protected void RadDropDownYears_SelectedIndexChanged(object sender, DropDownListEventArgs e) { try { RadGrid1.Rebind(); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } protected void RadDropDownMonths_SelectedIndexChanged(object sender, DropDownListEventArgs e) { try { RadGrid1.Rebind(); } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("Autoreportlinks error: ", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace); } } protected void RadComboBox1_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e) { RadComboBox comboBox = (RadComboBox)sender; comboBox.Items.Clear(); IEnumerable<Year> list = SQL_Misc.GetAll_YearsList(); comboBox.DataSource = list; //comboBox.DataTextField = "YearNo"; //comboBox.DataValueField = "YearNo"; comboBox.DataBind(); } #endregion }}