This is a migrated thread and some comments may be shown as answers.

[Solved] New Text is not showing up for RadComboBox

2 Answers 304 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Fred
Top achievements
Rank 1
Fred asked on 10 Apr 2014, 01:01 PM

In a formTemplate I have a rad combobox so that I can look at a dropdown of present items and type in new ones if needed. Looks fine on the screen but clicking on update or insert the new item does not show up.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TRTaskBuilder.aspx.cs" Inherits="TRTaskBuilder" %>
 
<!DOCTYPE html>
 
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
            <Scripts>
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
            </Scripts>
        </telerik:RadScriptManager>
        <telerik:RadFormDecorator ID="FormDecorator1" runat="server" DecoratedControls="all" DecorationZoneID="hr-zone"></telerik:RadFormDecorator>
        <div id="hr-zone">
            <telerik:RadGrid ID="RadGridTasks" runat="server" DataSourceID="TRHRTask" AutoGenerateDeleteColumn="True" AutoGenerateEditColumn="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowAutomaticDeletes="True">
                <MasterTableView CommandItemDisplay="Top" DataKeyNames="TaskID" DataSourceID="TRHRTask" AutoGenerateColumns="false">
                    <DetailTables>
                        <telerik:GridTableView DataKeyNames="TaskID" DataSourceID="TRHRTaskNotify" CommandItemDisplay="Top" AutoGenerateColumns="False">
                            <ParentTableRelation>
                                <telerik:GridRelationFields DetailKeyField="TaskID" MasterKeyField="TaskID" />
                            </ParentTableRelation>
                            <Columns>
                                <telerik:GridDropDownColumn DataSourceID="Users" ListValueField="doc_id" ListTextField="username" UniqueName="username" DataField="doc_id" HeaderText="User to notify"></telerik:GridDropDownColumn>
                                <telerik:GridBoundColumn ReadOnly="True" DataField="ID" Visible="false" UniqueName="ID"></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn ReadOnly="True" DataField="TaskID" Visible="false" UniqueName="TaskID"></telerik:GridBoundColumn>
                                <telerik:GridBoundColumn ReadOnly="True" DataField="UserID" Visible="false" UniqueName="UserID"></telerik:GridBoundColumn>
                            </Columns>
                        </telerik:GridTableView>
                    </DetailTables>
                    <Columns>
                        <telerik:GridBoundColumn ReadOnly="True" DataField="TaskID" UniqueName="TaskID" Visible="false" HeaderText="ID"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="TaskCategory" UniqueName="TaskCategory" HeaderText="Category"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="TaskName" UniqueName="TaskName" HeaderText="Name"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="TaskDescription" UniqueName="TaskDescription" HeaderText="Description"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="TaskInterval" UniqueName="TaskInterval" HeaderText="Interval"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn ReadOnly="True" DataField="TaskLastDate" UniqueName="TaskLastDate" Visible="false"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn ReadOnly="True" DataField="TaskCreatedDate" UniqueName="TaskCreatedDate" Visible="false"></telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="TaskEndDate" UniqueName="TaskEndDate" HeaderText="End Date"></telerik:GridBoundColumn>
                    </Columns>
                    <EditFormSettings EditFormType="Template">
                        <FormTemplate>
                            <table>
                                <tr>
                                    <td style="vertical-align: top; white-space: nowrap;">
                                        <label>Category</label><br />
                                        <telerik:RadComboBox ID="TaskCategory" SelectedValue='<%# Bind("TaskCategory") %>' DataSourceID="TaskCategorySelect" runat="server" TabIndex="201" DataTextField="TaskCategory" DataValueField="TaskCategory" AllowCustomText="true" AppendDataBoundItems="true" >
                                        </telerik:RadComboBox>
                                    </td>
                                </tr>
                                <tr>
                                    <td style="vertical-align: top; white-space: nowrap;">
                                        <label>Name</label><br />
                                        <asp:TextBox ID="TaskName" Text='<%# Bind( "TaskName") %>' runat="server" Style="width: 150px" TabIndex="202"></asp:TextBox>
                                    </td>
                                </tr>
                                <tr>
                                    <td style="vertical-align: top; white-space: nowrap;">
                                        <label>Description</label><br />
                                        <asp:TextBox ID="TaskDescription" Text='<%# Bind( "TaskDescription") %>' runat="server" Style="width: 150px" TabIndex="203"></asp:TextBox>
                                    </td>
                                </tr>
                                <tr>
                                    <td style="vertical-align: top; white-space: nowrap;">
                                        <label>Interval</label><br />
                                        <asp:DropDownList ID="TaskInterval" SelectedValue='<%# Bind("TaskInterval") %>' AppendDataBoundItems="true" runat="server" Style="width: 150px" TabIndex="204">
                                            <asp:ListItem Selected="True" Text="Select" Value="" />
                                            <asp:ListItem Text="Select Interval" Value="0" />
                                            <asp:ListItem Text="Once" Value="1" />
                                            <asp:ListItem Text="Every Month" Value="2" />
                                            <asp:ListItem Text="Every 3 Months" Value="3" />
                                            <asp:ListItem Text="Every 6 Months" Value="4" />
                                            <asp:ListItem Text="Each Year" Value="5" />
                                        </asp:DropDownList>
                                    </td>
                                </tr>
                                <tr>
                                    <td style="vertical-align: top; white-space: nowrap;">
                                        <label>TaskEndDate</label><br />
                                        <telerik:RadDatePicker ID="TaskEndDate" DbSelectedDate='<%# Bind("TaskEndDate") %>' runat="server" Style="width: 150px" TabIndex="205"></telerik:RadDatePicker>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'></asp:Button> 
                                        <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button>
                                    </td>
                                </tr>
                            </table>
                        </FormTemplate>
                    </EditFormSettings>
                </MasterTableView>
            </telerik:RadGrid>
        </div>
        <asp:SqlDataSource runat="server" ID="TRHRTask" ConnectionString="<%$ ConnectionStrings:Client_Files %>" ProviderName="System.Data.SqlClient"
            SelectCommand="SELECT * FROM [TRHRTasks] where TaskDeleted=0 ORDER By TaskCategory"
            UpdateCommand="UPDATE [TRHRTasks] SET [TaskCategory] = @TaskCategory,[TaskName] = @TaskName,[TaskDescription] = @TaskDescription,[TaskInterval] = @TaskInterval,[TaskLastDate] = CURRENT_TIMESTAMP,[TaskEndDate] = @TaskEndDate where TaskID=@TaskID"
            DeleteCommand="UPDATE [TRHRTasks] set TaskDeleted=1 where TaskID = @TaskID"
            InsertCommand="INSERT INTO [TRHRTasks] ([TaskCategory],[TaskName],[TaskDescription],[TaskInterval],[TaskLastDate],[TaskCreatedDate],[TaskEndDate]) VALUES (@TaskCategory,@TaskName,@TaskDescription,@TaskInterval,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,@TaskEndDate)" >
            <InsertParameters>
                <asp:Parameter Name="TaskCategory" Type="string"></asp:Parameter>
                <asp:Parameter Name="TaskName" Type="string"></asp:Parameter>
                <asp:Parameter Name="TaskDescription" Type="string"></asp:Parameter>
                <asp:Parameter Name="TaskInterval" Type="Int16"></asp:Parameter>
                <asp:Parameter Name="TaskLastDate" Type="datetime"></asp:Parameter>
                <asp:Parameter Name="TaskCreatedDate" Type="datetime"></asp:Parameter>
                <asp:Parameter Name="TaskEndDate" Type="datetime"></asp:Parameter>
                <asp:Parameter Name="TaskDeleted" Type="Int16"></asp:Parameter>
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="TaskID" Type="Int32"></asp:Parameter>
                <asp:Parameter Name="TaskCategory" Type="string"></asp:Parameter>
                <asp:Parameter Name="TaskName" Type="string"></asp:Parameter>
                <asp:Parameter Name="TaskDescription" Type="string"></asp:Parameter>
                <asp:Parameter Name="TaskInterval" Type="Int16"></asp:Parameter>
                <asp:Parameter Name="TaskLastDate" Type="datetime"></asp:Parameter>
                <asp:Parameter Name="TaskCreatedDate" Type="datetime"></asp:Parameter>
                <asp:Parameter Name="TaskEndDate" Type="datetime"></asp:Parameter>
                <asp:Parameter Name="TaskDeleted" Type="Int16"></asp:Parameter>
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource runat="server" ID="TRHRTaskNotify" ConnectionString="<%$ ConnectionStrings:Client_Files %>" ProviderName="System.Data.SqlClient"
            SelectCommand="SELECT [last_name]+', '+[first_name] as username,[TRHRTaskNotify].[ID],[TaskID],[UserID],doc_id FROM [TRHRTaskNotify],[TRHR] where doc_id=[TRHRTaskNotify].UserID and TaskID=@TaskID"
            UpdateCommand="UPDATE [client_files].[dbo].[TRHRTaskNotify] set [UserID] = @doc_id where ID=@ID"
            DeleteCommand="DELETE FROM [client_files].[dbo].[TRHRTaskNotify] where ID=@ID"
            InsertCommand="INSERT INTO [client_files].[dbo].[TRHRTaskNotify] ([TaskID],[UserID]) VALUES (@TaskID,@doc_id)">
            <SelectParameters>
                <asp:Parameter Name="TaskID" Type="Int32"></asp:Parameter>
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource runat="server" ID="Users" ConnectionString="<%$ ConnectionStrings:Client_files %>" ProviderName="System.Data.SqlClient"
            SelectCommand="SELECT [doc_id],[last_name]+', '+[first_name] as username FROM [TRHR] order by last_name" />
        <asp:SqlDataSource runat="server" ID="TaskCategorySelect" ConnectionString="<%$ ConnectionStrings:Client_Files %>" ProviderName="System.Data.SqlClient"
            SelectCommand="SELECT distinct [TaskCategory] FROM [TRHRTasks] where TaskDeleted=0 ORDER By TaskCategory" />
    </form>
</body>
</html>

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 11 Apr 2014, 05:13 AM
Hi Fred,

I was not able to replicate such an issue at my end. Please take a look at the sample code snippet and check if it helps you to resolve the issue:

ASPX:
<telerik:RadGrid ID="SampleRadGrid" runat="server" DataSourceID="SqlDataSource1" AutoGenerateEditColumn="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True">
    <MasterTableView CommandItemDisplay="Top" DataKeyNames="OrderID" AutoGenerateColumns="false">
        <DetailTables>
            <telerik:GridTableView DataKeyNames="OrderID" DataSourceID="SqlDataSource2" AutoGenerateColumns="False">
                <ParentTableRelation>
                    <telerik:GridRelationFields DetailKeyField="OrderID" MasterKeyField="OrderID" />
                </ParentTableRelation>
                <Columns>
                    <telerik:GridBoundColumn ReadOnly="True" DataField="UnitPrice" UniqueName="UnitPrice">
                    </telerik:GridBoundColumn>
                </Columns>
            </telerik:GridTableView>
        </DetailTables>
        <Columns>
            <telerik:GridBoundColumn UniqueName="OrderID" DataField="OrderID" HeaderText="OrderID">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ShipCountry" HeaderText="ShipCountry" UniqueName="ShipCountry" />
        </Columns>
        <EditFormSettings EditFormType="Template">
            <FormTemplate>
                <br />
                ShipCountry:
                <telerik:RadComboBox ID="TaskCategory" SelectedValue='<%# Bind("ShipCountry") %>' DataSourceID="SqlDataSource2" runat="server" DataTextField="ShipCountry" DataValueField="ShipCountry" AllowCustomText="true" AppendDataBoundItems="true">
                </telerik:RadComboBox>
                <br />
                <asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>
                </asp:Button>
                <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button>
            </FormTemplate>
        </EditFormSettings>
    </MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [Orders]" UpdateCommand="UPDATE [Orders] SET [ShipCountry] = @ShipCountry where OrderID=@OrderID"
    InsertCommand="INSERT INTO [Orders] ([ShipCountry]) VALUES (@ShipCountry)">
    <InsertParameters>
        <asp:Parameter Name="ShipCountry" Type="string"></asp:Parameter>
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="ShipCountry" Type="string"></asp:Parameter>
    </UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [Order Details] where OrderID = @OrderID"
    runat="server">
    <SelectParameters>
        <asp:SessionParameter Name="OrderID" SessionField="OrderID" Type="Int32"></asp:SessionParameter>
    </SelectParameters>
</asp:SqlDataSource>

Thanks,
Princy
0
Princy
Top achievements
Rank 2
answered on 11 Apr 2014, 06:14 AM
Hi Fred,

Please disregard my previous post, i was able to replicate the issue, when entering custom text, using automatic crud operation, the value was not getting saved. I guess for this, you have to manually perform the Update and Insert operation. On the UpdateCommand event, i was able to get the entered text, from there you can enter it to db:

C#:
protected void SampleRadGrid_UpdateCommand(object sender, GridCommandEventArgs e)
{
    GridEditableItem edititem = (GridEditableItem)e.Item;
    RadComboBox combo = (RadComboBox)edititem.FindControl("TaskCategory");
    string newvalue = combo.Text;
    //Code to update to db
}

Thanks,
Princy
Tags
Grid
Asked by
Fred
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or