or
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);
}
}
*/
}
}
}
.RadGrid_Default .rgHeader
{
background
:
#ffffff
repeat-x
url
(
'/images/GridHeader-BG.gif'
);
}
.RadGrid_Default th.rgSorted
{
background
:
#ffffff
repeat-x
url
(
'/images/GridHeader-BG.gif'
);
!important
;
background-color:
#ffffff;
}
<
telerik:RadNumericTextBox
ID
=
"textInput"
Type
=
"Percent"
MaxLength
=
"5"
runat
=
"server"
/>
<
asp:Button
ID
=
"buttonUpdate"
Text
=
"Calculate"
OnClick
=
"ButtonUpdate_Click"
runat
=
"server"
/>