Telerick version 2023.1.314 RadDropDownList controls throwing StackoverflowException when migrating visual studio 2010 to 2022

7 Answers 105 Views
DropDownList
Maheswari
Top achievements
Rank 1
Iron
Iron
Maheswari asked on 13 Sep 2023, 12:19 PM

Hi Dinko and team ,

Tried to migrate from Visual studio 2010 project along with Telerik.WinControls.UI.dll - Version - 2013.3.1.1127  to Visual studio 2022 with Telerik.WinControls.UI.dll - Version 2023.1.314.

There are random stackoverflow exceptions throughout project. In older version Telerik 2013.3.1.1127  is working with no issues only in Visual studio 2022  Telerick 2023.1.314 creating issue.

Found the RadDropDownList is the root cause So

As Dinko | Tech Support Engineer Telerik suggested in forum tried the below code

cmbValveSize_SelectedIndexChanged -= cmbValveSize_SelectedIndexChanged;

cmbValveSize.SelectedValue = 3;

cmbValveSize.SelectedIndexChanged += cmbValveSize_SelectedIndexChanged;

The stackoverflow is got resolved at this point so we applied the same code wherever SelectedValue getting assigned throughout project but when we call recursive functions the SelectedValue is getting assigned as null since the assigned value is based on value member signature and datasource datatable also having value. 

    private void setComboBoxIndexChanged(RadDropDownList combobox, object selectedValue, Telerik.WinControls.UI.Data.PositionChangedEventHandler eventHandler)
        {
            if (eventHandler != null) { combobox.SelectedIndexChanged -= eventHandler; }
            if (int.TryParse(Convert.ToString(selectedValue), out int result))
            {       
                combobox.SelectedValue = result; //result having the value but assiging as null
                if (combobox.SelectedValue == null && combobox.Name == "cmbValveSize")
                {
                    DataTable dtValues = (DataTable)cmbValveSize.DataSource;
                   if(dtValues.Rows.Count > 0)
                    {

                    }
                   else
                    {

                    }
                }

 

if (eventHandler != null) { combobox.SelectedIndexChanged += eventHandler; }    

}

 So what is causing in version 2023.1.314  RadDropDownList? why we need to do subscribe and unsubscribe for Telerik 2023.1.314 but not for Telerik 2013.3.1.1127 . What is the change between2013.3.1.1127 and  2023.1.314.

When is the change and Which version will overcome the stackoverflow issue in Visual studio 2022 after  2013.3.1.1127.? - Since we need the latest Telerik version for VS 2022 application.

Unsubscribe and subscribe is not a solution it is affecting the other functionalities of project.

Please suggest what we can do apart from Unsubscribe and subscribe.

Thanks,

Maheswari

7 Answers, 1 is accepted

Sort by
0
Dinko | Tech Support Engineer
Telerik team
answered on 18 Sep 2023, 09:14 AM

Hello Maheswari,

Thank you for the provided details. I think you are referencing this thread: RadDropDownList - System.StackOverflowException occurred using 'SelectedValue'. As discussed in the other thread, this exception is raised due to setting the SelectedValue property in the SelectedIndexChanged event. When this property is set, it will trigger the event to be called. I understand that there is a difference between the versions. I have already forwarded this behavior to our development team for further investigation. In the meantime, you can share more details on why it is required to set the SelectedValue in the SelectedIndexChanged event. Could it be an option to check the value in the SelectedIndexChanging event and cancel the new value depending on your requirements as suggested in the other forum thread? 

Regards,
Dinko | Tech Support Engineer
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

0
Maheswari
Top achievements
Rank 1
Iron
Iron
answered on 19 Sep 2023, 07:02 AM

Hello Dinko,

See this is not only for SelectedValue , it is occurring when we set Datasource and SelectedIndex for specific dropdown.

InVS 2010 with Telerick 2013 the reiteration in recursive call is restricted for below code. SelectedIndexChanged event is getting invoked 2 times for DataSource and SelectedIndex and coming out and trying to execute next method or line. Where as in VS 2022 with Telerick 2023 it is reiterating in recursive call binding method itself and throwing stackOverflow so the reiteration is not restricted in Telerick 2023

For example below code recursive call is restricted for Datasource, SelectedIndex and SeletedValue in VS 2010 - Telerick 2013

public partial class ChangeSite : Telerik.WinControls.UI.RadForm
    {
       
        /// <summary>
        /// Initialize ChangeSite Constructor.
        /// </summary>
        public ChangeSite()
        {
            InitializeComponent();           
        }
        /// <summary>
        /// fill data for sitecombobox.
        /// </summary>
        

        /// <summary>
        /// Fills the Industry combobox Data.
        /// </summary>
        /// <returns></returns>
        
         
        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                FillIndustryProcess(); // Binding drop down list in button click and SelectedIndexChanged event as well
                FillIndustryProcess1();
                FillIndustryProcess3();
            }
            catch (Exception ex)
            {
               
            }
        }

        /// <summary>
        /// set the label text from resource file.
        /// </summary>
        
           

       private void drpSite_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            try
            {

FillIndustryProcess();//Recursive call is not throwing exception. 
                FillIndustryProcess1(); 
               drpSite.SelectedValue = 4;
//recursive call is not throwing exception
            }
            catch (Exception ex)
            {                
                throw ex;
            }
        }
      
        private void drpprocess_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            try
            {
                FillIndustryProcess3();
                drpSite.SelectedValue = 6;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void FillIndustryProcess()
        {
            try
            {
                System.Data.DataTable dt = new System.Data.DataTable();
                dt.Columns.Add("Industry", typeof(string));
                dt.Columns.Add("ID", typeof(int));
                dt.Rows.Add("BGL", 0);
                dt.Rows.Add("MulTi-1", 1);
                dt.Rows.Add("MulTi-2", 2);
                dt.Rows.Add("MulTi-3", 3);
                dt.Rows.Add("MulTi-4", 4);
                dt.Rows.Add("MulTi-5", 5);
                dt.Rows.Add("MulTi-6", 6);
                dt.Rows.Add("MulTi-5", 7);
                dt.Rows.Add("MulTi-6", 8);

                drpSite.DisplayMember = "Industry";
                drpSite.ValueMember = "ID";
                drpSite.DataSource = dt; //Not throwing  stack overflow exception
                drpSite.SelectedIndex = 0;


            }
            catch (InsufficientMemoryException ex)
            {
                throw ex;
            }
        }

        public void FillIndustryProcess1()
        {
            try
            {
                System.Data.DataTable dt = new System.Data.DataTable();
                dt.Columns.Add("Industry", typeof(string));
                dt.Columns.Add("ID", typeof(int));
                dt.Rows.Add("BGL", 0);
                dt.Rows.Add("MulTi-1", 1);
                dt.Rows.Add("MulTi-2", 2);
                dt.Rows.Add("MulTi-3", 3);
                dt.Rows.Add("MulTi-4", 4);
                dt.Rows.Add("MulTi-5", 5);
                dt.Rows.Add("MulTi-6", 6);
                dt.Rows.Add("MulTi-5", 7);
                dt.Rows.Add("MulTi-6", 8);

                drpprocess.DisplayMember = "Industry";
                drpprocess.ValueMember = "ID";
                drpprocess.DataSource = dt;// Not throwing stack overflow
                drpprocess.SelectedIndex = 0;


            }
            catch (InsufficientMemoryException ex)
            {

                throw ex;
            }
        }

        public void FillIndustryProcess3()
        {
            try
            {
                System.Data.DataTable dt = new System.Data.DataTable();
                dt.Columns.Add("Industry", typeof(string));
                dt.Columns.Add("ID", typeof(int));
                dt.Rows.Add("BGL", 0);
                dt.Rows.Add("MulTi-1", 1);
                dt.Rows.Add("MulTi-2", 2);
                dt.Rows.Add("MulTi-3", 3);
                dt.Rows.Add("MulTi-4", 4);
                dt.Rows.Add("MulTi-5", 5);
                dt.Rows.Add("MulTi-6", 6);
                dt.Rows.Add("MulTi-5", 7);
                dt.Rows.Add("MulTi-6", 8);

                drpProc.DisplayMember = "Industry";
                drpProc.ValueMember = "ID";
                drpProc.DataSource = dt;//Not throwing SOE
                drpProc.SelectedIndex = 0;


            }
            catch (InsufficientMemoryException ex)
            {
                throw ex;
            }
        }

      
    }

 

Conclusion:

Visual studio 2010 with Telerick 2013 is working on recursive call.

 

 

 

 

 

 

 

 

 

Where as the Same code recursive call is not restricted for Datasource, SelectedIndex and SeletedValue in VS 2022 - Telerick 2023

public partial class TestForm : Form

    {

        public TestForm()

        {

            InitializeComponent();

        }

 

        public void fillIndustryProcess()

        {

            try

            {

                System.Data.DataTable dt = new System.Data.DataTable();

                dt.Columns.Add("Industry", typeof(string));

                dt.Columns.Add("ID", typeof(int));

                dt.Rows.Add("BGL", 0);

                dt.Rows.Add("MulTi-1", 1);

                dt.Rows.Add("MulTi-2", 2);

                dt.Rows.Add("MulTi-3", 3);

                dt.Rows.Add("MulTi-4", 4);

                dt.Rows.Add("MulTi-5", 5);

                dt.Rows.Add("MulTi-6", 6);

                dt.Rows.Add("MulTi-5", 7);

                dt.Rows.Add("MulTi-6", 8);

 

                drpSite.DisplayMember = "Industry";

                drpSite.ValueMember = "ID";

                drpSite.AccessibilityRequested = false;

                isDtFill = true;

                drpSite.DataSource = dt;// Throwing Stack Overflow to restrict the recursive selectedIndexChange event I have made this isDtFill as true and cancelling the event in SelectedIndexChanging event as you suggested

                isDtFill = false;

                isIndexChanged = true;

                drpSite.SelectedIndex = 0;// // Throwing Stack Overflow to restrict the recursive selectedIndexChange event I have made this isIndexChanged as true 

                isIndexChanged = false;

 

            }

            catch (InsufficientMemoryException ex)

            {

 

                throw ex;

            }

        }

        public void fillIndustryProcess1()

        {

            try

            {

                System.Data.DataTable dt = new System.Data.DataTable();

                dt.Columns.Add("Industry", typeof(string));

                dt.Columns.Add("ID", typeof(int));

                dt.Rows.Add("BGL", 0);

                dt.Rows.Add("MulTi-Z", 1);

                dt.Rows.Add("MulTi-Z1", 2);

                dt.Rows.Add("MulTi-Z2", 3);

                dt.Rows.Add("MulTi-Z3", 4);

                dt.Rows.Add("MulTi-Z3", 5);

 

                drpprocess.DisplayMember = "Industry";

                drpprocess.ValueMember = "ID";

                drpprocess.AccessibilityRequested = false;

                isDtFill = true;

                drpprocess.DataSource = dt;

                isDtFill = false;

                isIndexChanged = true;

                drpprocess.SelectedIndex = 0;

                isIndexChanged = false;

            }

            catch (InsufficientMemoryException ex)

            {

 

                throw ex;

            }

        }

        static bool isDtFill = false, isIndexChanged = false;

        public void fillIndustryProcess3()

        {

            try

            {

                System.Data.DataTable dt = new System.Data.DataTable();

                dt.Columns.Add("Industry", typeof(string));

                dt.Columns.Add("ID", typeof(int));

                dt.Rows.Add("BGL", 0);

                dt.Rows.Add("MulTi-Z", 1);

                dt.Rows.Add("MulTi-Z1", 2);

                dt.Rows.Add("MulTi-Z2", 3);

                dt.Rows.Add("MulTi-Z3", 4);

                dt.Rows.Add("MulTi-Z3", 5);

 

                drpProc.DisplayMember = "Industry";

                drpProc.ValueMember = "ID";

                isDtFill = true;

                drpProc.DataSource = dt;

                isDtFill = false;

                isIndexChanged = true;

                drpProc.SelectedIndex = 0;

                isIndexChanged = false;

 

 

            }

            catch (InsufficientMemoryException ex)

            {

 

                throw ex;

            }

        }

 

 

        private void btnOk_Click_1(object sender, EventArgs e)

        {   

          fillIndustryProcess();

          fillIndustryProcess1();

          fillIndustryProcess3();

        }

 

        private void drpSite_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)

        {

         fillIndustryProcess1();

         drpprocess.SelectedValue = 3;

        }

 

        private void drpprocess_SelectedIndexChanged_1(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)

        {

             fillIndustryProcess3();

              drpProc.SelectedValue = 4;

          //  drpprocess.SelectedValue = 3; //reverse eng

          //  drpSite.SelectedValue = 3;

        }

 

        private void drpProc_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)

        {

              

        }

 

        public static void cmbTelerik_SelectedIndexChanging(object sender, Telerik.WinControls.UI.Data.PositionChangingCancelEventArgs e)

        {

            if (isDtFill || isIndexChanged )

            {

                e.Cancel = true;

            }

        }

    }

I made the (isDtFill || isIndexChanged )  as true when it is binding As you suggested I did check ,if the current value and SelectedValue is same the do e.Cancel = true also but still

In our project in many places they have assigned for example drpprocess SelectedValue inside the  drpprocess_SelectedIndexChanged_1

 

 private void drpprocess_SelectedIndexChanged_1(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)

        {

             fillIndustryProcess3();

           PreviousValue = Convert.ToString(drpprocess.SelectedValue);

          // drpProc.SelectedValue = 4;

           drpprocess.SelectedValue = 3; //throwing SOE

          //  drpSite.SelectedValue = 3;

        }

So the root cause is Telerick 2023 dropdown SelectedIndexChanged event recursive call

Conclusion:

Telerick team have to restrict the recursive call when the value set to  SelectedValue, Datasource,SelectedIndex.

 

 

 

 

 

 

 

 

0
Dinko | Tech Support Engineer
Telerik team
answered on 20 Sep 2023, 11:08 AM

Hello Maheswari,

Thank you for the provided details.

As I mentioned, I have transferred the ticket to our development team. I just got a reply from them and your observation is meaningful. In the past, setting one and the same value in the SelectedIndexChanged event does not lead to this exception. In this case, setting the SelectedValue in the SelectedIndexChanged event is leading to StackOverflowException. For example, if you set the SelectedIndex property instead of the SelectedValue, works as expected. Changing SelectedValue in the SelectedValueChanged event also does not lead to an exception. You can try this approach and I hope you could modify your code in this way.

Internally, when the selected value is set, the control caches its value. In this case, the cache value is not reset when the SelectedIndexChanged event is called. We can confirm that setting one and the same value in the selection events should not lead to an exception. Therefore I have logged it on your behalf in our Feedback Portal where you can track its progress and subscribe to the feedback item to receive notification changes.

Your Telerik Points are updated for bringing this to our attention.

Regards,
Dinko | Tech Support Engineer
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

0
Maheswari
Top achievements
Rank 1
Iron
Iron
answered on 22 Sep 2023, 06:07 AM

Hi Dinko,

 

Tried the workaround which is suggested by you and team in previous forums.

public static void cmbTelerik_SelectedIndexChanging(object sender, Telerik.WinControls.UI.Data.PositionChangingCancelEventArgs e)
        {
            if (e.Position == -1)
            { e.Cancel = true; }

            RadDropDownList dropdown = (RadDropDownList)sender;
               if (isDataSourceFill || isIndexChanged || (previousValue == dropdown.SelectedValue && previousValue != null) || previousSelectedIndex == 0 || (previousSelectedIndex != -1 && previousSelectedIndex == dropdown.SelectedIndex))       
                {
  e.Cancel = true; // This is now throwing stack overflow
                }
                previousValue = dropdown.SelectedValue;
                previousSelectedIndex = dropdown.SelectedIndex;          
             }
    }

 

So when we invoke e.cancel recursively also the telerik 2023 dlls throwing Stack over flow.

And also tried to override the SelectedValue propety

 public override object SelectedValue
            {
                get; set;
                //get
                //{
                //      return dropDownListElement.SelectedValue;
                //}
                //set
                //{
                //    dropDownListElement.SelectedValue = value;
                //   // OnNotifyPropertyChanged("SelectedValue");
                //}
            }

Somehow the SOE is not occurring however the values of the dropdown values are changing compare with actual behaviour.

 

Hence

 

We are expecting for your latest Telerik 2023 dll (which should resolve stachoverflow issue). When it will be resolved and when will you release?

Please suggest.

 

Thanks,

Maheswari

 

0
Dinko | Tech Support Engineer
Telerik team
answered on 25 Sep 2023, 10:36 AM

Hello Maheswari,

Thank you for the provided details.

Our next official release is planned for the beginning of next month. However, this feedback item is still not planned to fix as our developer team is currently working on a task for the upcoming release. When our team adds this item to their planning, we will update the status of the feedback item so that you can be notified. In the meantime, I will do my best to a suitable solution for your scenario.

In your case post, you mentioned that canceling the SelectedIndexChanging leads to an exception again. I have tested this and could not reproduce it in my project. When the SelectedIndexChanging is triggered the SelectedValue and SelectedIndex properties are still not changed. If the newly selected index is not the correct one, setting the Cancel property to true, will not change the SelectedValue/SelectedIndex property. Can you check my project and let me know what I am missing? when you run the project select Item 5. In the SelectedIndexChanging event handler, I am checking for its position and canceling the event. You can observe that you can select any other element but not Item 5.

I am looking forward to your reply.

Regards,
Dinko | Tech Support Engineer
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.

0
Maheswari
Top achievements
Rank 1
Iron
Iron
answered on 26 Sep 2023, 10:45 AM

Hi Dinko,

The below code was working in my test application once I tested in test application only I did the changes in production version. When we do in heavy load - mutliple times  e.Cancel = true; it is not working.

  private void DropDownListElement_SelectedIndexChanging(object sender, Telerik.WinControls.UI.Data.PositionChangingCancelEventArgs e)
        {
            if (e.Position == 5)
            {
                e.Cancel = true;
            }
        }

 

I saw your code but it will not suite for our product code. Recursive call occurred inside the SelectedIndexChangeEvent.

I checked the telerik release history from 2020 to 2033. There was many changes after 2020 to 2023. So Let me try to find the workable version and let you know.

 

Thanks,

Maheswari

Dinko | Tech Support Engineer
Telerik team
commented on 26 Sep 2023, 01:34 PM

If you could modify my project to demonstrate this exception, I can debug it on my side and try to find a suitable solution. In the meantime, you can take your time to try to find a workable solution and let us know if further assistance is required.
Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 29 Sep 2023, 10:04 AM

Hi Dinko,

As I said in test application it is not reproducible howeever I have attached source code now am seeing SOE i when adding row in datatable when calling fill  method inside the selected index change event and reproduce it. am getting SOE even if I compare previous and current value if it is true then do e.cancel = true. in selectedIndexchanging event. Finally this work around also is not fixing SOE. Now I need to test our product with older telerik binaries which is workable.  I saw many changes has been done in dropdownlist like arrow click, autocomplete and item refresh in between 2020 to 2023. So Am trying to use the binaries before these fix release. So I need to download 2020 binaries .and test. Could you suggest how to download 2020 binaries. Now I could download only 2023-07-17 release binaries .Is license required to download older versions?. If so, if this functionality working for us only we can buy license. So can you suggest how to download without license?

Please suggest.



Thanks,

Majheswari
Dess | Tech Support Engineer, Principal
Telerik team
commented on 03 Oct 2023, 12:38 PM

Hi, Majheswari,

Dinko is out of office this week so I will be assisting you with this case. I have reviewed the provided sample project and indeed, the StackOverflowException occurs on my end as well:

After investigating further the project, I noticed that every time the FillDataSource1 method is called, a new subscription to the SelectedIndexChanged event is being added:

In addition, changing the DataSource for the RadDropDownList control is expected to initialize the selection to the first item which is expected behavior.

I have modified the approach for rebinding the RadDropDownList in the following way:

        public void FillDataSource1()
        {
            try
            { 
                System.Data.DataTable dt = new System.Data.DataTable();
                dt.Columns.Add("Description", typeof(string));
                dt.Columns.Add("ID", typeof(int));
                dt.Rows.Add("Test1", 0);
                dt.Rows.Add("Test-1", 1);
                dt.Rows.Add("Test-2", 2);
                dt.Rows.Add("Test-3", 3);
                dt.Rows.Add("Test-4", 4);
                dt.Rows.Add("Test-5", 5);
                dt.Rows.Add("Test-6", 6);
                dt.Rows.Add("Test-5", 7);
                dt.Rows.Add("Test-6", 8);
                this.radDropDownList1.DisplayMember = "Description";
                this.radDropDownList1.ValueMember = "ID";
                this.radDropDownList1.DataSource = dt;

             this.radDropDownList1.DropDownListElement.SelectedIndexChanging += DropDownListElement_SelectedIndexChanging;
            }
            catch(Exception ex)
            { }
        }
        private void radDropDownList1_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            this.radDropDownList1.SelectedIndexChanged -= radDropDownList1_SelectedIndexChanged;
            FillDataSource1();
            this.radDropDownList1.SelectedIndexChanged += radDropDownList1_SelectedIndexChanged;
        }

It is important to adopt a similar approach for the other drop downs on the form. Thus, the exception is eliminated on my end. 

I have attached the modified sample project for your reference.

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 03 Oct 2023, 12:46 PM

Hi Dess,

These unsubscribe and subscribe we tried however it is not workable as per our product code.

Could you please suggest how to downloaded older versions of telerik irrespective of active license or can you provide 2020 dll files ?

 

Thanks,

Maheswari

 

Dess | Tech Support Engineer, Principal
Telerik team
commented on 03 Oct 2023, 12:48 PM

Hi, Maheswari,

You have access to download older versions in your Telerik account: https://docs.telerik.com/devtools/winforms/installation-and-upgrades/download-product-files

Note that the available versions are related to the active license. If you are looking for a specific version, but it isn't listed, contact our sales team, and they will enable the version for download: sales@telerik.com

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 03 Oct 2023, 12:58 PM

Hi Dess,

This link is redirecting me only to latest 2023  telerik upgraded versions but we need older versions to test.. Currently our license got expired , we need to upgrade and test whether the product functionalities of telerik 2013 is working in telerik 2020 or not.  If that works only we can buy license in upgraded versions. To test and confirm can you provide the 2020 telerik dlls?

 

Thanks,

Maheswari

Dess | Tech Support Engineer, Principal
Telerik team
commented on 04 Oct 2023, 04:56 AM

Hi, Maheswari,

If you are seeing only versions from 2023, this is the eligible version for downloading according to the license. I have transferred this thread to our Sales team and they will follow up with additional information and activate the versions from 2020 for you.

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 04 Oct 2023, 05:19 AM

Hi Dess,

Please expedite to get immediately. So that we can test and confirm to buy license.

Thanks,

Maheswari

 

 

Dess | Tech Support Engineer, Principal
Telerik team
commented on 04 Oct 2023, 07:32 AM

Hi, Maheswari,

I received a confirmation from the Sales team that the license has been backdated. Could you please have a look at your Telerik account and confirm whether you can download the desired version?

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 04 Oct 2023, 07:57 AM

Hi Dess,

Still I could see 2023 alone. Please find the screenshot.

 

Dess | Tech Support Engineer, Principal
Telerik team
commented on 04 Oct 2023, 08:04 AM

Hi, Maheswari,

As it is illustrated in the previously referred article, Select the UI for WinForms product tile first:

Then, from the Version drop down, you can select an older version to download:

Please let me know whether you have access to the desired version.

 

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 04 Oct 2023, 08:14 AM

Hi Dess,

Now I could see the list of releases. Let me check and confirm you the workable version.

Thanks,

Maheswari

 

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 06 Oct 2023, 08:42 AM

Hi Dess,

As you enabled the link, we downloaded the 2019,2020,2021,2022 ,installed and tested our project but it is not working.Still it is throwing stack overflow exceptions

Only Q3 2013 SP1 (version 2013.3.1127) is working opt of our product code.

Beyond 2013 , I checked the telerik release history , there are drastic changes occurred in selectedIndexchanged event after 2013.

If we try to upgrade to 2014 telerik also it will not work.

So how we can upgrade the telerik dll without doing code changes in our product.

Also we tried all the work around suggested in fourms but still throwing SOE.

Already the ticket has been raised by Dinko from telerik team so when we can expect the workable latest dll?

Please suggest, awaiting for your response.

 

Thanks,

Maheswari

 

 

Dess | Tech Support Engineer, Principal
Telerik team
commented on 09 Oct 2023, 05:37 AM

Hi, Maheswari,

The status of the public feedback item is current Unplanned. Hence, I can't give an exact timeframe when a fix will be released. We will do our best to include the item in the next planning. Make sure that you Follow the item in order to get notified for any status changes. 

Meanwhile, the possible workaround I can suggest is to unsubscribe from the event before setting the SelectedValue property and then subscribe again. Another approach is to change the SelectedIndex property in the SelectedIndexChanged or SelectedValue in the SelectedValueChanged event.

Please excuse us for the inconvenience caused.

Maheswari
Top achievements
Rank 1
Iron
Iron
commented on 09 Oct 2023, 05:52 AM

HI Dess,

You may not believe, we wasted our time for one month , whatever changes suggested(subscribe,unsubscribe, override SelectedValue , change the SelectedIndex property in the SelectedIndexChanged or SelectedValue in the SelectedValueChanged event.) in forum for workaround. There are 45 dropdownlist in same winform and there are drastic changes we did but still we got SOE. We agree the architecture of the project is like that however the same Telerik 2013 was working successfully and we could not achieve the same in latter versions of 2013. That is the question raised from our higher-level management. To upgrade and achieve the same results of 2013 is based on your latest releases only. So please expedite the process and let us know.

 

Thanks,

Maheswari

 

 

Dess | Tech Support Engineer, Principal
Telerik team
commented on 11 Oct 2023, 02:36 PM

Hi, Maheswari,

I understand the importance of this undesired behavior and the impact it has over your application. The item has already been escalated with higher priority to our developers. I would highly encourage you to click the Follow button for the public item in order to get notified for any status changes.

Please excuse is for the inconvenience caused.

0
Maheswari
Top achievements
Rank 1
Iron
Iron
answered on 05 Feb 2024, 12:12 PM

Hi Dinko and Team,

I tested the version telerik 2024.1.130 with visual studio 2022 application however the stack overflow exception is not yet resolved for Raddropdownlist.DataSource

As I said , our application requirement is to bind the Raddropdownlist will happened inside the selectedIndex event. Not only the SelectedValue is doing the recursive call moreover when we set datasource to Raddropdownlist also the recursive call is occurring. This information I have provided in my previous forums before you raise ticket for this issue.

Telerik 2013 dll is working for the below code where as Telerik 2024 is causing the stackoverflow exception for the same code.

  public void fillIndustryProcess()
        {
            try
            {
                System.Data.DataTable dt = new System.Data.DataTable();
                dt.Columns.Add("Industry", typeof(string));
                dt.Columns.Add("ID", typeof(int));
                dt.Rows.Add("BGL", 0);
                dt.Rows.Add("MulTi-1", 1);
                dt.Rows.Add("MulTi-2", 2);
                dt.Rows.Add("MulTi-3", 3);
                dt.Rows.Add("MulTi-4", 4);
                dt.Rows.Add("MulTi-5", 5);
                dt.Rows.Add("MulTi-6", 6);
                dt.Rows.Add("MulTi-5", 7);
                dt.Rows.Add("MulTi-6", 8);

                cmbDSN.DisplayMember = "Industry";
                cmbDSN.ValueMember = "ID";
                cmbDSN.DataSource = dt;
                cmbDSN.SelectedIndex = 0;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

Could you please reopen the issue and restrict recursive calls for Datasource?

raddropdownlist,.Datasource = dt  - This is High Priority 

an in Set the SelectedIndex=0  once the Datasource rescursive call restriction done please fix this as well .

We are waiting for your fixed dll to test and buy license.

I have attached my screenshot again for reference.

 Thanks,

Maheswari

Dinko | Tech Support Engineer
Telerik team
commented on 06 Feb 2024, 02:44 PM

I will post my reply in this forum thread to avoid duplication.
Tags
DropDownList
Asked by
Maheswari
Top achievements
Rank 1
Iron
Iron
Answers by
Dinko | Tech Support Engineer
Telerik team
Maheswari
Top achievements
Rank 1
Iron
Iron
Share this question
or