Scenario:
Grid with a GridDropDown column. The source for the drop down is a simple table of name/id pairs. If doing an update in batch mode, and the drop down's ListTextField has trailing spaces, the ListValueField won't be passed back during an update.
See sample below. At line 20 is the code to create the sample SQL data.
When running this sample, if you attempt to update a row and use any of the drop downs that end in spaces, the update will not assign the correct id value. If you change the edit mode from batch to popup, it will work fine. If you change line 42 to read:
ListTextField="name_trimmed" or ListTextField="name_appended"
both of which change the field to NOT end in trailing spaces, it will work as well.
I was able to work around this, but it's definitely a bug in the control. Trailing spaces should not throw of the ListValueField. I'm currently using version 2016.2.607.45
01.<%@ Page Language="C#" %>02. 03.<!DOCTYPE html>04. 05.<script runat="server">06. 07.</script>08. 09.<html xmlns="http://www.w3.org/1999/xhtml">10.<head runat="server">11. <title></title>12.</head>13.<body>14. <form id="form1" runat="server">15. <div>16. 17. <asp:ScriptManager runat="server" ID="scriptmgr" />18. 19. <%--20./* SQL code to create tables and test data */21.create table dropdownvalues (id int identity(1,1), name varchar(200))22.create table datalist (id int identity(1,1), dropdown_id int)23.insert into dropdownvalues (name) values('no spaces'), ('spaces ')24. 25.insert into datalist(dropdown_id)26.select top 2 id from dropdownvalues 27. 28.insert into dropdownvalues (name) values('three spaces ')29.insert into dropdownvalues (name) values('forty spaces ')30.insert into dropdownvalues (name) values('zero spaces')31. --%>32. 33. <telerik:GridDropDownListColumnEditor runat="server" ID="ddeditor" DropDownStyle-Width="200" />34. 35. <telerik:RadGrid runat="server" DataSourceID="sql_source" AllowAutomaticUpdates="true" AutoGenerateColumns="false">36. <%--Works fine in PopUp edit mode--%>37. <MasterTableView EditMode="Batch" CommandItemDisplay="Top" DataKeyNames="id" >38. <Columns> 39. <telerik:GridEditCommandColumn/>40. <telerik:GridBoundColumn DataField="id" HeaderText="id" ReadOnly="true" />41. <telerik:GridDropDownColumn DataField="dropdown_id" HeaderText="dropdown_id" DataSourceID="sql_dropdown" 42. ListValueField="id" ListTextField="name" HeaderStyle-Width="400" ColumnEditorID="ddeditor" />43. <telerik:GridBoundColumn DataField="saved_dropdown_id" HeaderText="saved_dropdown_id" ReadOnly="true" />44. </Columns>45. </MasterTableView>46. </telerik:RadGrid>47. 48. <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:MyDB%>" ID="sql_source" runat="server" 49. SelectCommand="select *, dropdown_id as saved_dropdown_id from datalist" 50. UpdateCommand="update datalist set dropdown_id=@dropdown_id where id=@id"51. />52. 53. <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:MyDB%>" ID="sql_dropdown" runat="server" 54. SelectCommand="select id,name, rtrim(name) name_trimmed, name + '-' name_appended from dropdownvalues order by name" />55. </div>56. </form>57.</body>58.</html>