6 Answers, 1 is accepted
0
Shinu
Top achievements
Rank 2
answered on 27 Aug 2014, 03:27 AM
Hi Jack,
As far as I know there is no such issue to use RadAutoCompleteBox in RadGrid EditItemTemplate. Please have a look into the sample code snippet which works fine at my end. Please provide your code if it doesn't work
ASPX:
Thanks,
Shinu.
As far as I know there is no such issue to use RadAutoCompleteBox in RadGrid EditItemTemplate. Please have a look into the sample code snippet which works fine at my end. Please provide your code if it doesn't work
ASPX:
<
telerik:RadGrid
ID
=
"rgrdOrders"
runat
=
"server"
DataSourceID
=
"sqldsOrders"
AutoGenerateColumns
=
"false"
AutoGenerateEditColumn
=
"true"
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"OrderID"
HeaderText
=
"OrderID"
UniqueName
=
"OrderID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CustomerID"
HeaderText
=
"CustomerID"
UniqueName
=
"CustomerID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"ShipName"
>
<
EditItemTemplate
>
<
telerik:RadAutoCompleteBox
ID
=
"rautocompleteOrders"
runat
=
"server"
DataSourceID
=
"sqldsOrders"
DataTextField
=
"ShipName"
DataValueField
=
"OrderID"
>
</
telerik:RadAutoCompleteBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
Thanks,
Shinu.
0
jack
Top achievements
Rank 1
answered on 27 Aug 2014, 01:11 PM
this is how I am trying to make it work
*******This radAutocomplete works outside of the grid . because I set the datasource in the pageload*******
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" AllowCustomEntry="true" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
Dim dt As DataTable
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
RadAutoCompleteBox1.DataSource = dt
RadAutoCompleteBox1.DataTextField = "name"
RadAutoCompleteBox1.DataValueField = "id"
End Sub
*************
I tried to do something similar for this autocomplete but I get a error saying datasource or datasourceId is not set/
<telerik:RadGrid ID="rgvPrimitiveAssoctoMessage" runat="server" GridLines="None" AutoGenerateColumns="False" MasterTableView-NoMasterRecordsText="No Records To Display" CellSpacing="0">
<MasterTableView DataKeyNames="ielm_Id" CommandItemDisplay="Top" NoDetailRecordsText="No Records To Display" EditMode="InPlace">
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" />
<telerik:GridBoundColumn DataField="ielm_Id" HeaderText="Elementid" UniqueName="Elementid" Display="False" Visible="False" Resizable="False"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Elem_nm" HeaderText="Element Name" >
<ItemTemplate>
<asp:LinkButton ID="lblMessageElement" CommandName="EDIT" runat="server" Text='<%#Container.DataItem("ielm_nm")%>' />
</ItemTemplate>
<EditItemTemplate>
<%-- <telerik:RadComboBox runat="server" ID="rcbelement" DataTextField="ielm_nm" DataValueField="ielm_id" DropDownAutoWidth="Enabled"></telerik:RadComboBox>--%>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox2" AllowCustomEntry="true" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
**********************************
Protected Sub RgvMessage_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles rgvMessage.ItemDataBound
Dim dt As DataTable
Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
Dim msgElement As RadAutoCompleteBox = DirectCast(item.FindControl("RadAutoCompleteBox2"), RadAutoCompleteBox)
msgElement.DataSource = dt
msgElement.DataTextField = "Name"
msgElement.DataValueField = "Id"
msgElement.DataBind()
*******This radAutocomplete works outside of the grid . because I set the datasource in the pageload*******
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" AllowCustomEntry="true" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
Dim dt As DataTable
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
RadAutoCompleteBox1.DataSource = dt
RadAutoCompleteBox1.DataTextField = "name"
RadAutoCompleteBox1.DataValueField = "id"
End Sub
*************
I tried to do something similar for this autocomplete but I get a error saying datasource or datasourceId is not set/
<telerik:RadGrid ID="rgvPrimitiveAssoctoMessage" runat="server" GridLines="None" AutoGenerateColumns="False" MasterTableView-NoMasterRecordsText="No Records To Display" CellSpacing="0">
<MasterTableView DataKeyNames="ielm_Id" CommandItemDisplay="Top" NoDetailRecordsText="No Records To Display" EditMode="InPlace">
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" />
<telerik:GridBoundColumn DataField="ielm_Id" HeaderText="Elementid" UniqueName="Elementid" Display="False" Visible="False" Resizable="False"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Elem_nm" HeaderText="Element Name" >
<ItemTemplate>
<asp:LinkButton ID="lblMessageElement" CommandName="EDIT" runat="server" Text='<%#Container.DataItem("ielm_nm")%>' />
</ItemTemplate>
<EditItemTemplate>
<%-- <telerik:RadComboBox runat="server" ID="rcbelement" DataTextField="ielm_nm" DataValueField="ielm_id" DropDownAutoWidth="Enabled"></telerik:RadComboBox>--%>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox2" AllowCustomEntry="true" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
**********************************
Protected Sub RgvMessage_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles rgvMessage.ItemDataBound
Dim dt As DataTable
Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
Dim msgElement As RadAutoCompleteBox = DirectCast(item.FindControl("RadAutoCompleteBox2"), RadAutoCompleteBox)
msgElement.DataSource = dt
msgElement.DataTextField = "Name"
msgElement.DataValueField = "Id"
msgElement.DataBind()
0
jack
Top achievements
Rank 1
answered on 27 Aug 2014, 01:14 PM
Thanks, think my problem is with the "DataSourceID=" Because I am using oracle and we call it a different way. Here is my code snippet.
*******This radAutocomplete works outside of the grid . because I set the datasource in the pageload*******
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" AllowCustomEntry="true" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
Dim dt As DataTable
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
RadAutoCompleteBox1.DataSource = dt
RadAutoCompleteBox1.DataTextField = "name"
RadAutoCompleteBox1.DataValueField = "id"
End Sub
*************
I tried to do something similar for this autocomplete but I get a error saying datasource or datasourceId is not set/
<telerik:RadGrid ID="rgvPrimitiveAssoctoMessage" runat="server" GridLines="None" AutoGenerateColumns="False" MasterTableView-NoMasterRecordsText="No Records To Display" CellSpacing="0">
<MasterTableView DataKeyNames="ielm_Id" CommandItemDisplay="Top" NoDetailRecordsText="No Records To Display" EditMode="InPlace">
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" />
<telerik:GridBoundColumn DataField="ielm_Id" HeaderText="Elementid" UniqueName="Elementid" Display="False" Visible="False" Resizable="False"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Elem_nm" HeaderText="Element Name" >
<ItemTemplate>
<asp:LinkButton ID="lblMessageElement" CommandName="EDIT" runat="server" Text='<%#Container.DataItem("ielm_nm")%>' />
</ItemTemplate>
<EditItemTemplate>
<%-- <telerik:RadComboBox runat="server" ID="rcbelement" DataTextField="ielm_nm" DataValueField="ielm_id" DropDownAutoWidth="Enabled"></telerik:RadComboBox>--%>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox2" AllowCustomEntry="true" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
**********************************
Protected Sub RgvMessage_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles rgvMessage.ItemDataBound
Dim dt As DataTable
Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
Dim msgElement As RadAutoCompleteBox = DirectCast(item.FindControl("RadAutoCompleteBox2"), RadAutoCompleteBox)
msgElement.DataSource = dt
msgElement.DataTextField = "Name"
msgElement.DataValueField = "Id"
msgElement.DataBind()
*******This radAutocomplete works outside of the grid . because I set the datasource in the pageload*******
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" AllowCustomEntry="true" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
Dim dt As DataTable
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
RadAutoCompleteBox1.DataSource = dt
RadAutoCompleteBox1.DataTextField = "name"
RadAutoCompleteBox1.DataValueField = "id"
End Sub
*************
I tried to do something similar for this autocomplete but I get a error saying datasource or datasourceId is not set/
<telerik:RadGrid ID="rgvPrimitiveAssoctoMessage" runat="server" GridLines="None" AutoGenerateColumns="False" MasterTableView-NoMasterRecordsText="No Records To Display" CellSpacing="0">
<MasterTableView DataKeyNames="ielm_Id" CommandItemDisplay="Top" NoDetailRecordsText="No Records To Display" EditMode="InPlace">
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" />
<telerik:GridBoundColumn DataField="ielm_Id" HeaderText="Elementid" UniqueName="Elementid" Display="False" Visible="False" Resizable="False"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Elem_nm" HeaderText="Element Name" >
<ItemTemplate>
<asp:LinkButton ID="lblMessageElement" CommandName="EDIT" runat="server" Text='<%#Container.DataItem("ielm_nm")%>' />
</ItemTemplate>
<EditItemTemplate>
<%-- <telerik:RadComboBox runat="server" ID="rcbelement" DataTextField="ielm_nm" DataValueField="ielm_id" DropDownAutoWidth="Enabled"></telerik:RadComboBox>--%>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox2" AllowCustomEntry="true" InputType="Token" runat="server"></telerik:RadAutoCompleteBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
**********************************
Protected Sub RgvMessage_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles rgvMessage.ItemDataBound
Dim dt As DataTable
Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
dt = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
Dim msgElement As RadAutoCompleteBox = DirectCast(item.FindControl("RadAutoCompleteBox2"), RadAutoCompleteBox)
msgElement.DataSource = dt
msgElement.DataTextField = "Name"
msgElement.DataValueField = "Id"
msgElement.DataBind()
0
jack
Top achievements
Rank 1
answered on 27 Aug 2014, 09:27 PM
I was able to fix this problem today. will post code later
0
Shinu
Top achievements
Rank 2
answered on 28 Aug 2014, 03:52 AM
Hi Jack,
Try to bind the RadAutoCompleteBox in the ItemCreated event of RadGrid which works fine at my end.
C#:
Thanks,
Shinu.
Try to bind the RadAutoCompleteBox in the ItemCreated event of RadGrid which works fine at my end.
C#:
protected
void
ThatGrid_ItemCreated(
object
sender, GridItemEventArgs e)
{
if
(e.Item
is
GridEditableItem && e.Item.IsInEditMode)
{
var item = e.Item
as
GridEditFormItem;
RadAutoCompleteBox autocompletebox = (RadAutoCompleteBox)item.FindControl(
"RadAutoCompleteBoxValue"
);
autocompletebox.DataSourceID =
"SqlDataSource1"
;
autocompletebox.DataBind();
}
}
Thanks,
Shinu.
0
jack
Top achievements
Rank 1
answered on 28 Aug 2014, 01:05 PM
Yes I finally got it to work and here is my code on what I did .
How I fixed the problem of AutoComplete box not working in RadGrid Edititem.
1) Added postback to True
2) DataTextField="Name" & DataValueField="id"
3) OnEntryAdded I added this toi get the id value back from the autocomplete
****************************************************************************
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" />
<telerik:GridBoundColumn DataField="ielm_Id" HeaderText="Elementid" UniqueName="Elementid" Display="False" Visible="False" Resizable="False"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Elem_nm" HeaderText="Element Name" >
<ItemTemplate>
<asp:LinkButton ID="lblMessageElement" CommandName="EDIT" runat="server" Text='<%#Container.DataItem("ielm_nm")%>' />
</ItemTemplate>
<EditItemTemplate>
<%-- <telerik:RadComboBox runat="server" ID="rcbelement" AllowCustomText="true" DataTextField="ielm_nm" DataValueField="ielm_id" DropDownAutoWidth="Enabled" AutoPostBack="True" MinFilterLength="3"></telerik:RadComboBox>--%>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox2" OnEntryAdded="RadAutoCompleteBox2_EntryAdded" AutoPostBack="true" DataTextField="Name" DataValueField="id" AllowCustomEntry="true" InputType="Token" runat="server" MinFilterLength="3"></telerik:RadAutoCompleteBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
*************** Page load ********************************
Using page load to populate the session datatable
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
Session("dt") = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
End If
end sub
*************** Item Created ********************************
I had to find a sub that would allow me to set the autocomplete datasource before the error "datasource not set"
Protected Sub rgvPrimitiveAssoctoMessage_ItemCreated(sender As Object, e As GridItemEventArgs) Handles rgvPrimitiveAssoctoMessage.ItemCreated
If TypeOf e.Item Is IGridInsertItem Then
Dim item = TryCast(e.Item, GridEditableItem)
Dim AutoCompleteBox As RadAutoCompleteBox = DirectCast(item.FindControl("RadAutoCompleteBox2"), RadAutoCompleteBox)
AutoCompleteBox.DataSource = Session("dt")
AutoCompleteBox.DataTextField = "Name"
AutoCompleteBox.DataValueField = "Id"
AutoCompleteBox.DataBind()
End If
getting value from Autocomplete
Protected Sub RadAutoCompleteBox2_EntryAdded(sender As Object, e As AutoCompleteEntryEventArgs)
Session("label1") = e.Entry.Value
End Sub
How I fixed the problem of AutoComplete box not working in RadGrid Edititem.
1) Added postback to True
2) DataTextField="Name" & DataValueField="id"
3) OnEntryAdded I added this toi get the id value back from the autocomplete
****************************************************************************
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" />
<telerik:GridBoundColumn DataField="ielm_Id" HeaderText="Elementid" UniqueName="Elementid" Display="False" Visible="False" Resizable="False"></telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="Elem_nm" HeaderText="Element Name" >
<ItemTemplate>
<asp:LinkButton ID="lblMessageElement" CommandName="EDIT" runat="server" Text='<%#Container.DataItem("ielm_nm")%>' />
</ItemTemplate>
<EditItemTemplate>
<%-- <telerik:RadComboBox runat="server" ID="rcbelement" AllowCustomText="true" DataTextField="ielm_nm" DataValueField="ielm_id" DropDownAutoWidth="Enabled" AutoPostBack="True" MinFilterLength="3"></telerik:RadComboBox>--%>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox2" OnEntryAdded="RadAutoCompleteBox2_EntryAdded" AutoPostBack="true" DataTextField="Name" DataValueField="id" AllowCustomEntry="true" InputType="Token" runat="server" MinFilterLength="3"></telerik:RadAutoCompleteBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
*************** Page load ********************************
Using page load to populate the session datatable
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim paramColl As List(Of OracleParameter) = New List(Of OracleParameter)()
paramColl.Add(New OracleParameter("o_RECORDSET", OracleDbType.RefCursor, ParameterDirection.Output))
Session("dt") = OracleHelper.RetrieveDataTable("GET_MESSAGE_ELEMENT", paramColl)
End If
end sub
*************** Item Created ********************************
I had to find a sub that would allow me to set the autocomplete datasource before the error "datasource not set"
Protected Sub rgvPrimitiveAssoctoMessage_ItemCreated(sender As Object, e As GridItemEventArgs) Handles rgvPrimitiveAssoctoMessage.ItemCreated
If TypeOf e.Item Is IGridInsertItem Then
Dim item = TryCast(e.Item, GridEditableItem)
Dim AutoCompleteBox As RadAutoCompleteBox = DirectCast(item.FindControl("RadAutoCompleteBox2"), RadAutoCompleteBox)
AutoCompleteBox.DataSource = Session("dt")
AutoCompleteBox.DataTextField = "Name"
AutoCompleteBox.DataValueField = "Id"
AutoCompleteBox.DataBind()
End If
getting value from Autocomplete
Protected Sub RadAutoCompleteBox2_EntryAdded(sender As Object, e As AutoCompleteEntryEventArgs)
Session("label1") = e.Entry.Value
End Sub