Index was out of range

2 posts, 0 answers
  1. Roel
    Roel avatar
    2 posts
    Member since:
    Apr 2011

    Posted 13 Apr 2011 Link to this post

    Hello,

    I've places a Target-Source listbox on my User Registration form. Transferring items between de listboxes is no problem but when I commit the data with the Create User button I receive a 'Index was out of range' error.
    Any idea?

    See attached code.

    <%@ Page Title="Register" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
        CodeBehind="Register.aspx.cs" Inherits="YBS.Account.Register" %>
      
    <%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
      
      
    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="False" 
            OnCreatedUser="RegisterUser_CreatedUser">
            <LayoutTemplate>
                <asp:PlaceHolder ID="wizardStepPlaceholder" runat="server"></asp:PlaceHolder>
                <asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder>
            </LayoutTemplate>
            <WizardSteps>
                <asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server">
                    <ContentTemplate>
                        <span class="failureNotification">
                            <asp:Literal ID="ErrorMessage" runat="server"></asp:Literal>
                        </span>
                        <asp:ValidationSummary ID="RegisterUserValidationSummary" runat="server" CssClass="failureNotification" 
                             ValidationGroup="RegisterUserValidationGroup"/>
                        <div class="accountInfo">
                            <fieldset class="register">
                                <legend><h2>Create a New Account</h2></legend>
                                <table runat="server" id="tblRegister" style="width:100%" border="0">
                                  <tr>
                                    <td align="right" style="width:125px"
                                      <asp:Label ID="NameLabel" runat="server" AssociatedControlID="tbName">Name:</asp:Label>
                                    </td>
                                    <td align="left">
                                      <asp:TextBox ID="tbName" runat="server" CssClass="textEntry"></asp:TextBox>
                                      <asp:RequiredFieldValidator ID="NameRequired" runat="server" ControlToValidate="tbName" 
                                           CssClass="failureNotification" ErrorMessage="Name is required." ToolTip="Name is required." 
                                           ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td align="right" style="width:125px">
                                      <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</asp:Label
                                    </td>
                                    <td align="left">
                                      <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
                                      <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                                           CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                                           ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td align="right" style="width:125px"
                                      <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label>
                                    </td>
                                    <td align="left">
                                      <asp:TextBox ID="Email" runat="server" CssClass="textEntry"></asp:TextBox>
                                      <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" 
                                           CssClass="failureNotification" ErrorMessage="E-mail is required." ToolTip="E-mail is required." 
                                           ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td align="right" style="width:125px">
                                      <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label
                                    </td>
                                    <td align="left">
                                      <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                                      <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                                           CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." 
                                           ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                      <i>(Minimum of <%= Membership.MinRequiredPasswordLength %> characters required!)</i>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td align="right" style="width:125px"
                                      <asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label>
                                    </td>
                                    <td align="left">
                                      <asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                                      <asp:RequiredFieldValidator ControlToValidate="ConfirmPassword" CssClass="failureNotification" Display="Dynamic" 
                                           ErrorMessage="Confirm Password is required." ID="ConfirmPasswordRequired" runat="server" 
                                           ToolTip="Confirm Password is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
                                      <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                           CssClass="failureNotification" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match."
                                           ValidationGroup="RegisterUserValidationGroup">*</asp:CompareValidator>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td align="right" style="width:125px">
                                    </td>
                                    <td align="left">
                                      <table id="tblCompany" runat="server">
                                        <tr>
                                          <td valign="top">
                                            <telerik:RadListBox ID="rlbSourceCompany" runat="server" Skin="Windows7" 
                                                  AllowTransfer="True" TransferToID="rlbTargetCompany" Width="275px" Height="200px"
                                                  DataKeyField="CompanyID" DataSourceID="SqlDSCompany" 
                                                  DataTextField="Company">
                                              <HeaderTemplate>
                                                <center><asp:Label ID="lblSourceCompany" runat="server" Text="All companies" Font-Bold="true" /></center>
                                              </HeaderTemplate>
                                            </telerik:RadListBox>
                                          </td>
                                          <td valign="top">
                                            <telerik:RadListBox ID="rlbTargetCompany" runat="server" Skin="Windows7" Width="250px" Height="200px">
                                              <HeaderTemplate>
                                                <center><asp:Label ID="lblTargetCompany" runat="server" Text="Selected companies" Font-Bold="true" /></center>
                                              </HeaderTemplate>
                                            </telerik:RadListBox>
                                          </td>
                                        </tr>
                                      </table>
                                    </td>
                                  </tr>
                                </table>
                            </fieldset>
                            <p class="submitButton">
                                <asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="Create User" 
                                     ValidationGroup="RegisterUserValidationGroup"/>
                            </p>
                        </div>
                    </ContentTemplate>
                    <CustomNavigationTemplate>
                    </CustomNavigationTemplate>
                </asp:CreateUserWizardStep>
    <asp:CompleteWizardStep runat="server"></asp:CompleteWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>
                            <asp:SqlDataSource ID="SqlDSCompany" runat="server" 
            ConnectionString="<%$ ConnectionStrings:Yosi %>" SelectCommand="SELECT C.CompanyID, (C.Description + ' (' + D.Description + ')') AS Company
    FROM SYS_Domain D
    INNER JOIN SYS_Company AS C ON D.DomainID = C.DomainID 
    ORDER BY D.Code, C.Code
    "></asp:SqlDataSource>
    </asp:Content>

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Collections.Specialized;
    using System.Data;
    using System.Data.SqlClient;
    using System.Text;
    using System.Configuration;
      
    using YBS.Membership;
    using YBS.Manager;
    using YBS.SQLDAL;
    using YBS.SQLDAL.Entities;
      
    using Telerik.Web;
    using Telerik.Web.UI;
      
    namespace YBS.Account
    {
        public partial class Register : System.Web.UI.Page
        {
            private YBS.Manager.YBSBaseFunctions hdlBaseFunctions = new Manager.YBSBaseFunctions();
            public static String ConnString = ConfigurationManager.ConnectionStrings["Yosi"].ConnectionString;
      
            protected void Page_Load(object sender, EventArgs e)
            {
                RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
      
                SetObjectProperties();
            }
      
            protected void RegisterUser_CreatedUser(object sender, EventArgs e)
            {
                TextBox tbName = (TextBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("tbName");
      
                FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
      
                int _userID = new SYS_UserDAL().GetUserID(RegisterUser.UserName);
                hdlBaseFunctions.SetCurrentUserID(this.Context, _userID);
                  
                if (tbName != null)
                {
                    new YBSMembershipProvider().ChangeName(RegisterUser.UserName, tbName.Text);
                }
      
                SaveUserCompany(_userID);
      
                string continueUrl = RegisterUser.ContinueDestinationPageUrl;
                if (String.IsNullOrEmpty(continueUrl))
                {
                    continueUrl = "~/";
                }
                Response.Redirect(continueUrl);
      
      
            }
      
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
      
                if (!Page.IsPostBack)
                {
                    string sSQLCompany = "";
                    sSQLCompany += "SELECT C.CompanyID, (C.Description + ' (' + D.Description + ')') AS Company ";
                    sSQLCompany += "FROM SYS_Domain D ";
                    sSQLCompany += "INNER JOIN SYS_Company AS C ON D.DomainID = C.DomainID ";
                    sSQLCompany += "ORDER BY D.Code, C.Code";
      
                    SqlDSCompany.SelectCommandType = SqlDataSourceCommandType.Text;
                    SqlDSCompany.SelectCommand = sSQLCompany;
                }
            }
      
            protected override void OnLoad(EventArgs e)
            {
                base.OnLoad(e);
      
            }
      
            protected void SetObjectProperties()
            {
                RadListBox rlbSourceCompany = (RadListBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("rlbSourceCompany");
                RadListBox rlbTargetCompany = (RadListBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("rlbTargetCompany");
      
                if (rlbSourceCompany != null)
                {
                    rlbSourceCompany.Skin = "Windows7";
                    rlbSourceCompany.SelectionMode = ListBoxSelectionMode.Multiple;
                    rlbSourceCompany.AllowTransferOnDoubleClick = true;
                    rlbSourceCompany.Header.Visible = true;
                    rlbSourceCompany.AllowTransferDuplicates = false;
                    rlbSourceCompany.AllowReorder = false;
                }
      
                if (rlbTargetCompany != null)
                {
                    rlbTargetCompany.Skin = "Windows7";
                    rlbTargetCompany.AllowReorder = false;
                    rlbTargetCompany.AllowDelete = false;
                }
            }
      
            protected void SaveUserCompany(int iUserID)
            {
    /*
                RadListBox rlbTargetCompany = (RadListBox)RegisterUserWizardStep.ContentTemplateContainer.FindControl("rlbTargetCompany");
      
                if (rlbTargetCompany.Items.Count > 0)
                {
                    foreach (RadListBoxItem rlbItem in rlbTargetCompany.Items)
                    {
                        SYS_UserCompanyDAL.SYS_UserCompany _objUserCompany = new SYS_UserCompanyDAL.SYS_UserCompany();
      
                        _objUserCompany.UserID = iUserID;
                        _objUserCompany.CompanyID = Convert.ToInt32(rlbItem.DataKey);
                    }
                }
     */
            }
        }
    }
  2. Peter Filipov
    Admin
    Peter Filipov avatar
    1028 posts

    Posted 18 Apr 2011 Link to this post

    Hello,

    I wasn't able to reproduce your issue. Please find attached a sample project as part of my local tests.
    Please try to modify the project so I can see the problem locally.

    Greetings,
    Peter Filipov
    the Telerik team

    Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

  3. UI for ASP.NET Ajax is Ready for VS 2017
Back to Top