Set up info:
Telerik version: 2013.2.611.40
Browser: IE 11.0.9600.16476
.NET Framework: 4.0
Symptoms: During Asynch Post Backs when EmptyMessage property is set AND text of the first item is not English (eg. German, Greek) then OnSelectedIndexChange event fires every time although index has not been changed. Further more properties SelectedIndex, SelectedItem and SelectedValue have the wrong values of -1, null and "" respectively
I have prepared a small project to demonstrate the bug but your forum allows only picture format attachments. So here is the test code:
file: Default.aspx
file: Default.aspx.designer.cs
file: Default.aspx.cs
file: Web.config
If you remove the EmptyMessage property or you set it to "" everything goes back to normal.
Also if you comment out line line 36 and you uncomment out line 38 so that first Items text is English then every goes back to normal as well. So I think it should be an issue of the EmptyMessage property and the Encoding of the Items text in the JavaScript you are using.
Thank you for your time and I remain to your disposal for any additional info you may need
Telerik version: 2013.2.611.40
Browser: IE 11.0.9600.16476
.NET Framework: 4.0
Symptoms: During Asynch Post Backs when EmptyMessage property is set AND text of the first item is not English (eg. German, Greek) then OnSelectedIndexChange event fires every time although index has not been changed. Further more properties SelectedIndex, SelectedItem and SelectedValue have the wrong values of -1, null and "" respectively
I have prepared a small project to demonstrate the bug but your forum allows only picture format attachments. So here is the test code:
file: Default.aspx
1.%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
02.
03.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04.<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
05.<
head
runat
=
"server"
>
06. <
title
></
title
>
07. <
telerik:RadStyleSheetManager
ID
=
"RadStyleSheetManager1"
runat
=
"server"
/>
08.</
head
>
09.<
body
>
10. <
form
id
=
"form1"
runat
=
"server"
>
11. <
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
12. <
Scripts
>
13. <
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
/>
14. <
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
/>
15. <
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
/>
16. </
Scripts
>
17. </
telerik:RadScriptManager
>
18. <
script
type
=
"text/javascript"
>
19. //Put your JavaScript code here.
20. </
script
>
21. <
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
22. <
AjaxSettings
>
23. <
telerik:AjaxSetting
AjaxControlID
=
"TestIE"
>
24. <
UpdatedControls
>
25. <
telerik:AjaxUpdatedControl
ControlID
=
"TestIE"
/>
26. <
telerik:AjaxUpdatedControl
ControlID
=
"SaveValues"
/>
27. <
telerik:AjaxUpdatedControl
ControlID
=
"TestGrid"
/>
28. <
telerik:AjaxUpdatedControl
ControlID
=
"SaveButtonResults"
/>
29. </
UpdatedControls
>
30. </
telerik:AjaxSetting
>
31. <
telerik:AjaxSetting
AjaxControlID
=
"SaveValues"
>
32. <
UpdatedControls
>
33. <
telerik:AjaxUpdatedControl
ControlID
=
"TestIE"
/>
34. <
telerik:AjaxUpdatedControl
ControlID
=
"SaveValues"
/>
35. <
telerik:AjaxUpdatedControl
ControlID
=
"TestGrid"
/>
36. <
telerik:AjaxUpdatedControl
ControlID
=
"SaveButtonResults"
/>
37. </
UpdatedControls
>
38. </
telerik:AjaxSetting
>
39. <
telerik:AjaxSetting
AjaxControlID
=
"TestGrid"
>
40. <
UpdatedControls
>
41. <
telerik:AjaxUpdatedControl
ControlID
=
"TestIE"
/>
42. <
telerik:AjaxUpdatedControl
ControlID
=
"SaveValues"
/>
43. <
telerik:AjaxUpdatedControl
ControlID
=
"TestGrid"
/>
44. <
telerik:AjaxUpdatedControl
ControlID
=
"SaveButtonResults"
/>
45. </
UpdatedControls
>
46. </
telerik:AjaxSetting
>
47. </
AjaxSettings
>
48. </
telerik:RadAjaxManager
>
49. <
div
>
50. <
telerik:RadComboBox
runat
=
"server"
ID
=
"TestIE"
EmptyMessage
=
"Pick one from the list"
51.
OnSelectedIndexChanged
=
"TestIE_OnSelectedIndexChanged"
AutoPostBack
=
"True"
>
52. </
telerik:RadComboBox
>
53. <
asp:LinkButton
runat
=
"server"
ID
=
"SaveValues"
OnClick
=
"SaveValues_OnClick"
>Click to Save</
asp:LinkButton
>
54. <
asp:Label
runat
=
"server"
ID
=
"SaveButtonResults"
/>
55. <
telerik:RadGrid
runat
=
"server"
ID
=
"TestGrid"
OnItemCreated
=
"TestGrid_OnItemCreated"
OnNeedDataSource
=
"TestGrid_OnNeedDataSource"
AllowAutomaticInserts
=
"False"
OnInsertCommand
=
"TestGrid_OnInsertCommand"
AutoGenerateColumns
=
"False"
AutoGenerateDeleteColumn
=
"False"
AutoGenerateEditColumn
=
"False"
ShowHeader
=
"True"
AllowFilteringByColumn
=
"False"
>
56. <
MasterTableView
CssClass
=
"LeftAlign"
DataKeyNames
=
"Id"
GridLines
=
"None"
CommandItemDisplay
=
"Top"
EditMode
=
"PopUp"
>
57. <
Columns
>
58. <
telerik:GridTemplateColumn
DefaultInsertValue
=
""
UniqueName
=
"MyBasicEntry.Description"
HeaderText
=
"Description"
DataField
=
"MyBasicEntry.Description"
ItemStyle-Wrap
=
"False"
>
59. <
ItemTemplate
>
60. <
asp:Label
ID
=
"DescriptionLabel"
runat
=
"server"
Text='<%# Eval("Description") %>'
61. ToolTip='<%# Eval("Description") %>' />
62. </
ItemTemplate
>
63. <
EditItemTemplate
>
64. <
telerik:RadComboBox
runat
=
"server"
ID
=
"TestIEInsideGrid"
65.
EmptyMessage
=
"Pick one from the list"
OnSelectedIndexChanged
=
"TestIEInsideGrid_OnSelectedIndexChanged"
AutoPostBack
=
"True"
66.
CausesValidation
=
"False"
DropDownAutoWidth
=
"Enabled"
Width
=
"200px"
/>
67. </
EditItemTemplate
>
68. </
telerik:GridTemplateColumn
>
69. </
Columns
>
70. <
EditFormSettings
ColumnNumber
=
"2"
InsertCaption
=
"Εισαγωγή Αποσπάσεων"
EditColumn-ButtonType
=
"ImageButton"
71.
PopUpSettings-Modal
=
"true"
PopUpSettings-Width
=
"950"
PopUpSettings-Height
=
"320"
>
72. <
FormTableItemStyle
Wrap
=
"False"
/>
73. <
FormMainTableStyle
CellPadding
=
"4"
Width
=
"100%"
/>
74. <
FormTableStyle
CellPadding
=
"4"
CellSpacing
=
"0"
CssClass
=
"LeftAlign"
/>
75. <
FormTableAlternatingItemStyle
Wrap
=
"False"
/>
76. <
FormTableButtonRowStyle
HorizontalAlign
=
"Right"
/>
77. </
EditFormSettings
>
78. </
MasterTableView
>
79. </
telerik:RadGrid
>
80. </
div
>
81. </
form
>
82.</
body
>
83.</
html
>
file: Default.aspx.designer.cs
01.
//------------------------------------------------------------------------------
02.
// <auto-generated>
03.
// This code was generated by a tool.
04.
//
05.
// Changes to this file may cause incorrect behavior and will be lost if
06.
// the code is regenerated.
07.
// </auto-generated>
08.
//------------------------------------------------------------------------------
09.
10.
11.
12.
public
partial
class
Default {
13.
14.
/// <summary>
15.
/// RadStyleSheetManager1 control.
16.
/// </summary>
17.
/// <remarks>
18.
/// Auto-generated field.
19.
/// To modify move field declaration from designer file to code-behind file.
20.
/// </remarks>
21.
protected
global::Telerik.Web.UI.RadStyleSheetManager RadStyleSheetManager1;
22.
23.
/// <summary>
24.
/// form1 control.
25.
/// </summary>
26.
/// <remarks>
27.
/// Auto-generated field.
28.
/// To modify move field declaration from designer file to code-behind file.
29.
/// </remarks>
30.
protected
global::System.Web.UI.HtmlControls.HtmlForm form1;
31.
32.
/// <summary>
33.
/// RadScriptManager1 control.
34.
/// </summary>
35.
/// <remarks>
36.
/// Auto-generated field.
37.
/// To modify move field declaration from designer file to code-behind file.
38.
/// </remarks>
39.
protected
global::Telerik.Web.UI.RadScriptManager RadScriptManager1;
40.
41.
/// <summary>
42.
/// RadAjaxManager1 control.
43.
/// </summary>
44.
/// <remarks>
45.
/// Auto-generated field.
46.
/// To modify move field declaration from designer file to code-behind file.
47.
/// </remarks>
48.
protected
global::Telerik.Web.UI.RadAjaxManager RadAjaxManager1;
49.
50.
/// <summary>
51.
/// TestIE control.
52.
/// </summary>
53.
/// <remarks>
54.
/// Auto-generated field.
55.
/// To modify move field declaration from designer file to code-behind file.
56.
/// </remarks>
57.
protected
global::Telerik.Web.UI.RadComboBox TestIE;
58.
59.
/// <summary>
60.
/// SaveValues control.
61.
/// </summary>
62.
/// <remarks>
63.
/// Auto-generated field.
64.
/// To modify move field declaration from designer file to code-behind file.
65.
/// </remarks>
66.
protected
global::System.Web.UI.WebControls.LinkButton SaveValues;
67.
68.
/// <summary>
69.
/// SaveButtonResults control.
70.
/// </summary>
71.
/// <remarks>
72.
/// Auto-generated field.
73.
/// To modify move field declaration from designer file to code-behind file.
74.
/// </remarks>
75.
protected
global::System.Web.UI.WebControls.Label SaveButtonResults;
76.
77.
/// <summary>
78.
/// TestGrid control.
79.
/// </summary>
80.
/// <remarks>
81.
/// Auto-generated field.
82.
/// To modify move field declaration from designer file to code-behind file.
83.
/// </remarks>
84.
protected
global::Telerik.Web.UI.RadGrid TestGrid;
85.}
file: Default.aspx.cs
001.
using
System;
002.
using
System.Collections.Generic;
003.
using
System.Web;
004.
using
System.Web.UI;
005.
using
System.Web.UI.WebControls;
006.
007.
using
System.Data;
008.
using
System.Configuration;
009.
using
System.Web.Security;
010.
using
System.Web.UI.WebControls.WebParts;
011.
using
System.Web.UI.HtmlControls;
012.
using
Telerik.Web.UI;
013.[Serializable]
014.
public
class
MyBasicEntry
015.{
016.
public
int
Id {
get
;
set
; }
017.
public
string
Description {
get
;
set
; }
018.
public
MyBasicEntry(
int
Id,
string
Description)
019. {
020.
this
.Description = Description;
021.
this
.Id = Id;
022. }
023.}
024.
025.
public
partial
class
Default : System.Web.UI.Page
026.{
027.
private
List<MyBasicEntry> GridSource {
get
{
return
(List<MyBasicEntry>)ViewState[
"GridSource"
]; }
set
{ ViewState[
"GridSource"
] = value; } }
028.
private
List<MyBasicEntry> myBasicEntryList {
get
{
return
(List<MyBasicEntry>)ViewState[
"myBasicEntryList"
]; }
set
{ ViewState[
"myBasicEntryList"
] = value; } }
029.
protected
void
Page_Load(
object
sender, EventArgs e)
030. {
031.
032.
if
(!Page.IsPostBack)
033. {
034. GridSource =
new
List<MyBasicEntry>();
035. myBasicEntryList =
new
List<MyBasicEntry>();
036. myBasicEntryList.Add(
new
MyBasicEntry(1,
"Heißen"
));
037.
//myBasicEntryList.Add(new MyBasicEntry(1, "ΚΑΝΑΔΑΣ"));
038.
//myBasicEntryList.Add(new MyBasicEntry(1, "Germany"));
039. myBasicEntryList.Add(
new
MyBasicEntry(2,
"München"
));
040. myBasicEntryList.Add(
new
MyBasicEntry(3,
"München1"
));
041. myBasicEntryList.Add(
new
MyBasicEntry(3,
"München 1"
));
042. myBasicEntryList.Add(
new
MyBasicEntry(4,
"Περισσότερα Ελληνικά"
));
043. TestIE.DataSource = myBasicEntryList;
044. TestIE.DataValueField =
"Id"
;
045. TestIE.DataTextField =
"Description"
;
046. TestIE.DataBind();
047. }
048.
049. }
050.
051.
protected
void
TestIE_OnSelectedIndexChanged(
object
Sender, RadComboBoxSelectedIndexChangedEventArgs E)
052. {
053. var selectedIndex = (Sender
as
RadComboBox).SelectedIndex;
054. var selectedItem = (Sender
as
RadComboBox).SelectedItem;
055. var selectedValue = (Sender
as
RadComboBox).SelectedValue;
056. var oldValue = E.OldValue;
057. var newValue = E.Value;
058. var oldText = E.OldText;
059. var newText = E.Text;
060. }
061.
protected
void
TestIEInsideGrid_OnSelectedIndexChanged(
object
Sender, RadComboBoxSelectedIndexChangedEventArgs E)
062. {
063. var selectedIndex = (Sender
as
RadComboBox).SelectedIndex;
064. var selectedItem = (Sender
as
RadComboBox).SelectedItem;
065. var selectedValue = (Sender
as
RadComboBox).SelectedValue;
066. var oldValue = E.OldValue;
067. var newValue = E.Value;
068. var oldText = E.OldText;
069. var newText = E.Text;
070. }
071.
protected
void
SaveValues_OnClick(
object
Sender, EventArgs E)
072. {
073. var selectedIndex = TestIE.SelectedIndex;
074. var selectedItem = TestIE.SelectedItem;
075. var selectedValue = TestIE.SelectedValue;
076. SaveButtonResults.Text =
"You have selected: "
+ (TestIE.SelectedIndex == -1 ?
"nothing"
: selectedItem.Text +
" at index "
+
int
.Parse(selectedValue));
077. }
078.
079.
protected
void
TestGrid_OnInsertCommand(
object
Sender, GridCommandEventArgs E)
080. {
081. var TestIEInsideGrid = (RadComboBox)E.Item.FindControl(
"TestIEInsideGrid"
);
082. var selectedIndex = TestIEInsideGrid.SelectedIndex;
083. var selectedItem = TestIEInsideGrid.SelectedItem;
084. var selectedValue = TestIEInsideGrid.SelectedValue;
085. GridSource.Add(
new
MyBasicEntry(
int
.Parse(selectedValue),selectedItem.Text));
086. }
087.
088.
protected
void
TestGrid_OnItemCreated(
object
Sender, GridItemEventArgs E)
089. {
090.
if
((E.Item
is
GridEditFormItem) && E.Item.IsInEditMode)
091. {
092. var TestIEInsideGrid = (RadComboBox)E.Item.FindControl(
"TestIEInsideGrid"
);
093. TestIEInsideGrid.DataSource = myBasicEntryList;
094. TestIEInsideGrid.DataValueField =
"Id"
;
095. TestIEInsideGrid.DataTextField =
"Description"
;
096. TestIEInsideGrid.DataBind();
097. }
098. }
099.
100.
protected
void
TestGrid_OnNeedDataSource(
object
Sender, GridNeedDataSourceEventArgs E)
101. {
102. TestGrid.DataSource = GridSource;
103. }
104.}
file: Web.config
01.<?
xml
version
=
"1.0"
?>
02.<
configuration
>
03. <
appSettings
>
04. <
add
key
=
"Telerik.Skin"
value
=
"Black"
/>
05. <
add
key
=
"Telerik.ScriptManager.TelerikCdn"
value
=
"Disabled"
/>
06. <
add
key
=
"Telerik.StyleSheetManager.TelerikCdn"
value
=
"Disabled"
/>
07. </
appSettings
>
08. <
system.web
>
09. <
compilation
debug
=
"true"
targetFramework
=
"4.0"
/>
10. <
pages
>
11. <
controls
>
12. <
add
tagPrefix
=
"telerik"
namespace
=
"Telerik.Web.UI"
assembly
=
"Telerik.Web.UI"
/>
13. </
controls
>
14. </
pages
>
15. <
httpHandlers
>
16. <
add
path
=
"ChartImage.axd"
type
=
"Telerik.Web.UI.ChartHttpHandler"
verb
=
"*"
validate
=
"false"
/>
17. <
add
path
=
"Telerik.Web.UI.SpellCheckHandler.axd"
type
=
"Telerik.Web.UI.SpellCheckHandler"
verb
=
"*"
validate
=
"false"
/>
18. <
add
path
=
"Telerik.Web.UI.DialogHandler.aspx"
type
=
"Telerik.Web.UI.DialogHandler"
verb
=
"*"
validate
=
"false"
/>
19. <
add
path
=
"Telerik.RadUploadProgressHandler.ashx"
type
=
"Telerik.Web.UI.RadUploadProgressHandler"
verb
=
"*"
validate
=
"false"
/>
20. <
add
path
=
"Telerik.Web.UI.WebResource.axd"
type
=
"Telerik.Web.UI.WebResource"
verb
=
"*"
validate
=
"false"
/>
21. </
httpHandlers
>
22. <
httpModules
>
23. <
add
name
=
"RadUploadModule"
type
=
"Telerik.Web.UI.RadUploadHttpModule"
/>
24. <
add
name
=
"RadCompression"
type
=
"Telerik.Web.UI.RadCompression"
/>
25. </
httpModules
>
26. </
system.web
>
27. <
system.webServer
>
28. <
validation
validateIntegratedModeConfiguration
=
"false"
/>
29. <
modules
runAllManagedModulesForAllRequests
=
"true"
>
30. <
remove
name
=
"RadUploadModule"
/>
31. <
add
name
=
"RadUploadModule"
type
=
"Telerik.Web.UI.RadUploadHttpModule"
preCondition
=
"integratedMode"
/>
32. <
remove
name
=
"RadCompression"
/>
33. <
add
name
=
"RadCompression"
type
=
"Telerik.Web.UI.RadCompression"
preCondition
=
"integratedMode"
/>
34. </
modules
>
35. <
handlers
>
36. <
remove
name
=
"ChartImage_axd"
/>
37. <
add
name
=
"ChartImage_axd"
path
=
"ChartImage.axd"
type
=
"Telerik.Web.UI.ChartHttpHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/>
38. <
remove
name
=
"Telerik_Web_UI_SpellCheckHandler_axd"
/>
39. <
add
name
=
"Telerik_Web_UI_SpellCheckHandler_axd"
path
=
"Telerik.Web.UI.SpellCheckHandler.axd"
type
=
"Telerik.Web.UI.SpellCheckHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/>
40. <
remove
name
=
"Telerik_Web_UI_DialogHandler_aspx"
/>
41. <
add
name
=
"Telerik_Web_UI_DialogHandler_aspx"
path
=
"Telerik.Web.UI.DialogHandler.aspx"
type
=
"Telerik.Web.UI.DialogHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/>
42. <
remove
name
=
"Telerik_RadUploadProgressHandler_ashx"
/>
43. <
add
name
=
"Telerik_RadUploadProgressHandler_ashx"
path
=
"Telerik.RadUploadProgressHandler.ashx"
type
=
"Telerik.Web.UI.RadUploadProgressHandler"
verb
=
"*"
preCondition
=
"integratedMode"
/>
44. <
remove
name
=
"Telerik_Web_UI_WebResource_axd"
/>
45. <
add
name
=
"Telerik_Web_UI_WebResource_axd"
path
=
"Telerik.Web.UI.WebResource.axd"
type
=
"Telerik.Web.UI.WebResource"
verb
=
"*"
preCondition
=
"integratedMode"
/>
46. </
handlers
>
47. </
system.webServer
>
48.</
configuration
>
If you remove the EmptyMessage property or you set it to "" everything goes back to normal.
Also if you comment out line line 36 and you uncomment out line 38 so that first Items text is English then every goes back to normal as well. So I think it should be an issue of the EmptyMessage property and the Encoding of the Items text in the JavaScript you are using.
Thank you for your time and I remain to your disposal for any additional info you may need