This is a migrated thread and some comments may be shown as answers.

Error in ajax with grid and dropdown

3 Answers 65 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Hans
Top achievements
Rank 1
Hans asked on 05 May 2013, 01:45 AM
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:
<%@ 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
 
 
    }
}

3 Answers, 1 is accepted

Sort by
0
Tsvetoslav
Telerik team
answered on 08 May 2013, 02:23 PM
Hello Hans,

Do make sure that you have updated your SP 2010 installation to at least the 2012 october Cumulative update as this was a bug with the CMS that MS managed to fix.

Greetings,
Tsvetoslav
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
Hans
Top achievements
Rank 1
answered on 08 May 2013, 07:31 PM
Hi Tvetoslav,

I've just installed the latest hotfix from microsoft for sharepoint 2010, but the error still persists.

What else can I check ?

Regards,
Hans
0
Accepted
Tsvetoslav
Telerik team
answered on 13 May 2013, 03:20 PM
Hi Hans,

That's good - I am attaching a small sample that demonstrates how to ajaxify the web part controls. Please, do the ajaxification as shown in it.


Greetings, Tsvetoslav
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Tags
Ajax
Asked by
Hans
Top achievements
Rank 1
Answers by
Tsvetoslav
Telerik team
Hans
Top achievements
Rank 1
Share this question
or