Hi,
I have an RadDropDownList filled with some items using DataSource and bounded functionality.
When I in the SelectedIndexChanged event tries to reset the selectedvalue to the original (the one before i changed), the control simply wont listen to my commands ;)
This is the code I use in the SelectedIndexChanged event:
The rest of the code of the form is here:
I use two images in my project.. they are attached here and need to be added to the resource file of the project to make this look like the one i have here :)
What am i doing wrong?
Regards
Svein Thomas
I have an RadDropDownList filled with some items using DataSource and bounded functionality.
When I in the SelectedIndexChanged event tries to reset the selectedvalue to the original (the one before i changed), the control simply wont listen to my commands ;)
This is the code I use in the SelectedIndexChanged event:
void
AgreementRadDropDownSelectedIndexChanged(
object
sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
if
(_init || _selectedAgreement == (
int
)AgreementRadDropDown.SelectedValue)
return
;
if
(MessageBox.Show(
"Do you want to change the agreement?"
,
"Change Agreement"
, MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.No)
{
AgreementRadDropDown.SelectedValue = _selectedAgreement;
return
;
}
_selectedAgreement = (
int
)AgreementRadDropDown.SelectedValue;
}
The rest of the code of the form is here:
using
System;
using
System.Collections.Generic;
using
System.Drawing;
using
System.Windows.Forms;
using
Telerik.WinControls.UI;
namespace
TestDropDownList
{
public
partial
class
Form1 : Form
{
private
readonly
IList<Agreement> _agreements =
new
List<Agreement>();
private
int
_selectedAgreement;
private
readonly
bool
_init =
false
;
public
Form1()
{
_init =
true
;
InitializeComponent();
AgreementRadDropDown.ItemDataBound += AgreementRadDropDownItemDataBound;
AgreementRadDropDown.SelectedIndexChanged += AgreementRadDropDownSelectedIndexChanged;
LoadAgreements();
_selectedAgreement = 2;
AgreementRadDropDown.SuspendUpdate();
AgreementRadDropDown.DisplayMember =
"Name"
;
AgreementRadDropDown.ValueMember =
"Id"
;
AgreementRadDropDown.DataSource = _agreements;
AgreementRadDropDown.SelectedValue = _selectedAgreement;
AgreementRadDropDown.ResumeUpdate();
_init =
false
;
}
void
AgreementRadDropDownSelectedIndexChanged(
object
sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
if
(_init || _selectedAgreement == (
int
)AgreementRadDropDown.SelectedValue)
return
;
if
(MessageBox.Show(
"Do you want to change the agreement?"
,
"Change Agreement"
, MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.No)
{
AgreementRadDropDown.SelectedValue = _selectedAgreement;
return
;
}
_selectedAgreement = (
int
)AgreementRadDropDown.SelectedValue;
}
private
void
LoadAgreements()
{
_agreements.Add(
new
Agreement(1,
"Agreement1"
, Properties.Resources._lock));
_agreements.Add(
new
Agreement(2,
"Agreement2"
, Properties.Resources._lock));
_agreements.Add(
new
Agreement(3,
"Agreement3"
, Properties.Resources.lock_unlock));
_agreements.Add(
new
Agreement(4,
"Agreement4"
, Properties.Resources._lock));
_agreements.Add(
new
Agreement(5,
"Agreement5"
, Properties.Resources.lock_unlock));
_agreements.Add(
new
Agreement(6,
"Agreement6"
, Properties.Resources._lock));
}
private
void
Form1_Load(
object
sender, EventArgs e)
{
}
static
void
AgreementRadDropDownItemDataBound(
object
sender, ListItemDataBoundEventArgs args)
{
var item = args.NewItem.DataBoundItem
as
Agreement;
if
(item !=
null
)
args.NewItem.Image = item.StatusImage;
}
}
public
class
Agreement
{
public
int
Id {
get
;
set
; }
public
string
Name {
get
;
set
; }
public
Image StatusImage {
get
;
set
; }
public
Agreement(
int
id,
string
name, Image statusImage)
{
Id = id;
Name = name;
StatusImage = statusImage;
}
}
}
namespace
TestDropDownList
{
partial
class
Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System.ComponentModel.IContainer components =
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose(
bool
disposing)
{
if
(disposing && (components !=
null
))
{
components.Dispose();
}
base
.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent()
{
this
.AgreementRadDropDown =
new
Telerik.WinControls.UI.RadDropDownList();
((System.ComponentModel.ISupportInitialize)(
this
.AgreementRadDropDown)).BeginInit();
this
.SuspendLayout();
//
// AgreementRadDropDown
//
this
.AgreementRadDropDown.DropDownAnimationEnabled =
true
;
this
.AgreementRadDropDown.Location =
new
System.Drawing.Point(48, 37);
this
.AgreementRadDropDown.Name =
"AgreementRadDropDown"
;
this
.AgreementRadDropDown.ShowImageInEditorArea =
true
;
this
.AgreementRadDropDown.Size =
new
System.Drawing.Size(222, 20);
this
.AgreementRadDropDown.TabIndex = 0;
this
.AgreementRadDropDown.Text =
"radDropDownList1"
;
//
// Form1
//
this
.AutoScaleDimensions =
new
System.Drawing.SizeF(6F, 13F);
this
.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this
.ClientSize =
new
System.Drawing.Size(318, 167);
this
.Controls.Add(
this
.AgreementRadDropDown);
this
.Name =
"Form1"
;
this
.Text =
"Form1"
;
this
.Load +=
new
System.EventHandler(
this
.Form1_Load);
((System.ComponentModel.ISupportInitialize)(
this
.AgreementRadDropDown)).EndInit();
this
.ResumeLayout(
false
);
this
.PerformLayout();
}
#endregion
private
Telerik.WinControls.UI.RadDropDownList AgreementRadDropDown;
}
}
I use two images in my project.. they are attached here and need to be added to the resource file of the project to make this look like the one i have here :)
What am i doing wrong?
Regards
Svein Thomas