GridDropDownColumn fails to pass back ListValueField during batch update

2 posts, 0 answers
  1. Greg S
    Greg S avatar
    8 posts
    Member since:
    Jul 2015

    Posted 06 Sep Link to this post

    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. 
    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>
  2. Kostadin
    Admin
    Kostadin avatar
    1713 posts

    Posted 10 Sep Link to this post

    Hi Greg,

    We are aware of this issue and our developers are investigating the cause for it. The solution is to remove the empty space which you have already found.

    Regards,
    Kostadin
    Telerik by Progress
    Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
  3. UI for ASP.NET Ajax is Ready for VS 2017
Back to Top