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

Index out of range on tab switch

0 Answers 103 Views
ListBox
This is a migrated thread and some comments may be shown as answers.
Kieran
Top achievements
Rank 1
Kieran asked on 11 May 2018, 09:32 AM

We have a RadListBox where we are adding and removing items via client side code (sample add shown):

ListBox_AddItem = function (listbox, text, value) {
    var item = new Telerik.Web.UI.RadListBoxItem();
    item.set_value(value);
    item.set_text(text);
    var attributes = item.get_attributes();
    attributes.setAttribute("Name", text);
    attributes.setAttribute("ID", value);
    listbox.trackChanges();
    listbox.get_items().add(item);
    item.bindTemplate();
    listbox.commitChanges();

    return false;
}

<telerik:RadListBox runat="server" ID="RadListBox" ClientIDMode="AutoID"
                                        OnClientLoad="RadListBox_OnClientLoad">
                                        <ItemTemplate>
                                            <table>
                                                <tr>
                                                    <td>
                                                        <%# Eval("Name") %>
                                                    </td>
                                                    <td id="DeleteColumn" style="float: right">
                                                        <a href="" onclick="return deleteRequestedBy('<%# Eval("id") %>')">
                                                            <img src="Images/deletered.png" width="20" height="20" alt="submit" />
                                                        </a>
                                                    </td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                        <ClientItemTemplate>
                                            <table>
                                                <tr>
                                                    <td>
                                                        #= Attributes.Name#
                                                    </td >
                                                    <td id="DeleteColumn" style="float:right">
                                                        <a href="" onclick="return deleteRequestedBy('#= Attributes.ID#')">
                                                            <img src="Images/deletered.png" width="20" height="20" alt="submit" />
                                                        </a>
                                                    </td>
                                                </tr>
                                            </table>
                                        </ClientItemTemplate>

                                    </telerik:RadListBox>

The ListBox is in a Tab on a RadTabStrip. When we add or remove items from the ListBox and then click on one of the other tabs we get an error:

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

at System.Collections.ArrayList.get_Item(Int32 index)
at System.Web.UI.StateManagedCollection.System.Collections.IList.get_Item(Int32 index)
at Telerik.Web.UI.ControlItemCollection.get_Item(Int32 index)
at Telerik.Web.UI.ClientStateLogPlayer`1.Remove(ControlItemCollection items, Int32 index)
at Telerik.Web.UI.ClientStateLogPlayer`1.Play(ClientStateLogEntry entry)
at Telerik.Web.UI.ClientStateLogPlayer`1.Play(IEnumerable`1 clientStateLogEntry)
at Telerik.Web.UI.RadListBox.LoadLogEntries(RadListBoxClientState clientState)
at Telerik.Web.UI.RadListBox.LoadClientState(RadListBoxClientState clientState)
at Telerik.Web.UI.RadListBox.LoadPostData(String postDataKey, NameValueCollection postCollection)
at Telerik.Web.UI.RadDataBoundControl.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

I've tried the solutions suggested (along with some variations):

https://www.telerik.com/forums/transfer-throws-exception

https://docs.telerik.com/devtools/aspnet-ajax/controls/listbox/troubleshooting/index-out-of-range-on-item-transfer-

However, none of the suggestions worked and don't seem to quite apply in this scenario i.e. we are not transferring.

 

 

No answers yet. Maybe you can help?

Tags
ListBox
Asked by
Kieran
Top achievements
Rank 1
Share this question
or