Home / Community & Support / Knowledge Base / RadControls for ASP.NET and ASP.NET AJAX / Input / Using RadInput controls as editors in template columns of RadGrid

Using RadInput controls as editors in template columns of RadGrid

Article Info

Rating: 5

Article information

Article relates to

RadGrid, RadInput
or Telerik.Web.UI 2007.3.12.18+

Created by

 Stephen, Telerik

Last modified

March 13, 2008

Last modified by

 Stephen, Telerik

HOW-TO
Use RadInput controls as editors in template columns of RadGrid

SOLUTION
You can embed the input controls in EditItemTemplate of GridTemplateColumn and bind the their DbSelectedDate/Text properties directly in the grid edit column template.

On update/insert command you can extract the newly entered/updated data from the input editors through the ExtractValuesFromItems(newValues, EditInsertitem) method (part of the server-side API of RadGrid). Then just refresh the grid source content to reflect the changes made by the user:


VB.NET

    Private Sub RadGrid1_UpdateCommand(ByVal source As ObjectByVal e As Telerik.WebControls.GridCommandEventArgs) Handles RadGrid1.UpdateCommand  
        Dim editedItem As GridEditableItem = CType(e.Item, GridEditableItem)  
        Dim employeesTable As DataTable = CType(Session("gridSource"), DataTable)  
 
        Dim changedRows As DataRow() = employeesTable.Select("ID = " & editedItem.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("ID"))  
 
        If Not (changedRows.Length = 1) Then 
            RadGrid1.Controls.Add(New LiteralControl("Unable to locate the record for updating."))  
            e.Canceled = True 
            Return 
        End If 
 
        Dim newValues As Hashtable = New Hashtable  
        e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem)  
 
        Dim changedRow As DataRow = changedRows(0)  
        changedRow.BeginEdit()  
 
        Try 
            For Each entry As DictionaryEntry In newValues  
                changedRow(CType(entry.Key, String)) = entry.Value  
            Next 
            changedRow.EndEdit()  
        Catch ex As Exception  
            changedRow.CancelEdit()  
            RadGrid1.Controls.Add(New LiteralControl("Unable to update the source. Reason: " & ex.Message))  
            e.Canceled = True 
        End Try 
        RadGrid1.Controls.Add(New LiteralControl("Record " & changedRow("ID") & " updated"))  
 
    End Sub 
 
    Protected Sub RadGrid1_InsertCommand(ByVal source As ObjectByVal e As Telerik.WebControls.GridCommandEventArgs) Handles RadGrid1.InsertCommand  
        Dim editedItem As GridEditableItem = CType(e.Item, GridEditableItem)  
        Dim employeeTable As DataTable = CType(Session("gridSource"), DataTable)  
 
        Dim newRow As DataRow = employeeTable.NewRow  
        Dim allValues As DataRow() = employeeTable.Select("""ID", DataViewRowState.CurrentRows)  
 
        If allValues.Length > 0 Then 
            newRow("ID") = CType(allValues(allValues.Length - 1)("ID"), Integer) + 1  
        Else 
            newRow("ID") = 1  
        End If 
 
        Dim newValues As Hashtable = New Hashtable  
        e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem)  
 
        Try 
            For Each entry As DictionaryEntry In newValues  
                newRow(CType(entry.Key, String)) = entry.Value  
            Next 
        Catch ex As Exception  
            RadGrid1.Controls.Add(New LiteralControl("Unable to insert in the source. Reason: " & ex.Message))  
            e.Canceled = True 
        End Try 
 
        employeeTable.Rows.Add(newRow)  
        RadGrid1.Controls.Add(New LiteralControl("Record " & newRow("ID") & " inserted"))  
 
    End Sub 
 
    Protected Sub RadGrid1_NeedDataSource(ByVal source As ObjectByVal e As Telerik.WebControls.GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource  
        If (Session("gridSource"Is NothingThen 
 
            Dim MyOleDbConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/GridFormatting.mdb"))  
            Dim MyOleDbDataAdapter As New OleDbDataAdapter  
            MyOleDbDataAdapter.SelectCommand = New OleDbCommand("SELECT * FROM AutoFormatting", MyOleDbConnection)  
 
            Dim myDataTable As New DataTable  
 
            MyOleDbConnection.Open()  
            Try 
                MyOleDbDataAdapter.Fill(myDataTable)  
            Finally 
                MyOleDbConnection.Close()  
            End Try 
 
            RadGrid1.DataSource = myDataTable.DefaultView  
            Session("gridSource") = myDataTable  
        Else 
            RadGrid1.DataSource = Session("gridSource")  
        End If 
 
    End Sub 

C#

private void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)  
{  
    GridEditableItem editedItem = (GridEditableItem)e.Item;  
    DataTable employeesTable = (DataTable)Session["gridSource"];  
 
    DataRow[] changedRows = employeesTable.Select("ID = " + editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"]);  
 
    if (changedRows.Length != 1)  
    {  
        RadGrid1.Controls.Add(new LiteralControl("Unable to locate the record for updating."));  
        e.Canceled = true;  
        return;  
    }  
 
    Hashtable newValues = new Hashtable();  
    e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);  
 
    DataRow changedRow = changedRows(0);  
    changedRow.BeginEdit();  
 
    try   
    {  
        foreach (DictionaryEntry entry in newValues)   
        {  
            changedRow[(string)entry.Key] = entry.Value;  
        }  
        changedRow.EndEdit();  
    }  
    catch (Exception ex)   
    {  
        changedRow.CancelEdit();  
        RadGrid1.Controls.Add(new LiteralControl("Unable to update the source. Reason: " + ex.Message));  
        e.Canceled = true;  
    }  
    RadGrid1.Controls.Add(new LiteralControl("Record " + changedRow["ID"] + " updated"));  
 
}  
 
protected void RadGrid1_InsertCommand(object source, Telerik.WebControls.GridCommandEventArgs e)  
{  
    GridEditableItem editedItem = (GridEditableItem)e.Item;  
    DataTable employeeTable = (DataTable)Session["gridSource"];  
 
    DataRow newRow = employeeTable.NewRow();  
    DataRow[] allValues = employeeTable.Select("""ID", DataViewRowState.CurrentRows);  
 
    if (allValues.Length > 0)  
    {  
        newRow["ID"] = (int)allValues[allValues.Length - 1]["ID"] + 1;  
    }  
    else 
    {  
        newRow["ID"] = 1;  
    }  
 
    Hashtable newValues = new Hashtable();  
    e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);  
 
    try   
    {  
        foreach (DictionaryEntry entry in newValues)   
        {  
            newRow[(string)entry.Key] = entry.Value;  
        }  
    }  
    catch (Exception ex)   
    {  
        RadGrid1.Controls.Add(new LiteralControl("Unable to insert in the source. Reason: " + ex.Message));  
        e.Canceled = true;  
    }  
 
    employeeTable.Rows.Add(newRow);  
    RadGrid1.Controls.Add(new LiteralControl("Record " + newRow["ID"] + " inserted"));  
 
}  
 
protected void RadGrid1_NeedDataSource(object source, Telerik.WebControls.GridNeedDataSourceEventArgs e)  
{  
    if (Session["gridSource"] == null)  
    {  
 
        OleDbConnection MyOleDbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/GridFormatting.mdb"));  
        OleDbDataAdapter MyOleDbDataAdapter = new OleDbDataAdapter();  
        MyOleDbDataAdapter.SelectCommand = new OleDbCommand("SELECT * FROM AutoFormatting", MyOleDbConnection);  
 
        DataTable myDataTable = new DataTable();  
 
        MyOleDbConnection.Open();  
        try   
        {  
            MyOleDbDataAdapter.Fill(myDataTable);  
        }  
        finally   
        {  
            MyOleDbConnection.Close();  
        }  
 
        RadGrid1.DataSource = myDataTable.DefaultView;  
        Session["gridSource"] = myDataTable;  
    }  
    else 
    {  
        RadGrid1.DataSource = Session["gridSource"];  
    }  
 


  

ASPX/ASCX

            <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
            <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">  
                <AjaxSettings> 
                    <telerik:AjaxSetting AjaxControlID="RadGrid1">  
                        <UpdatedControls> 
                            <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                        </UpdatedControls> 
                    </telerik:AjaxSetting> 
                </AjaxSettings> 
            </telerik:RadAjaxManager> 
            <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" 
                Transparency="25" Width="75px">  
                <img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' 
                    style="border: 0px;" /> 
            </telerik:RadAjaxLoadingPanel> 
            <telerik:RadGrid ID="RadGrid1" runat="server" Skin="Office2007">  
                <MasterTableView AutoGenerateColumns="False" DataKeyNames="ID" CommandItemDisplay="Top" 
                    EditMode="InPlace">  
                    <Columns> 
                        <telerik:GridTemplateColumn HeaderText="Dates" UniqueName="DateColumn">  
                            <EditItemTemplate> 
                                <telerik:RadDateInput ID="datePicker" runat="server" Culture="(Default)" 
                                    DbSelectedDate='<%# Bind("Dates") %>' DateFormat="MMMM/dd/yyyy" MinDate="01/01/1950">  
                                </telerik:RadDateInput> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="dtLabel" runat="server" Text='<%# Eval("Dates", "{0:MMMM/dd/yyyy}") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridTemplateColumn HeaderText="Currency" UniqueName="CurrencyColumn">  
                            <EditItemTemplate> 
                                <telerik:RadNumericTextBox ID="currencyBox" runat="server" DbValue='<%# Bind("Currency") %>' 
                                    Culture="ja-JP" Type="Currency">  
                                </telerik:RadNumericTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="curLabel" runat="server" Text='<%# Eval("Currency", "{0:####.## JPY}") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridTemplateColumn HeaderText="Number" UniqueName="NumberColumn">  
                            <EditItemTemplate> 
                                <telerik:RadTextBox ID="numberTextBox" runat="server" Text='<%# Bind("Number") %>' 
                                    MaxLength="5">  
                                </telerik:RadTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="numLabel" runat="server" Text='<%# Eval("Number") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridTemplateColumn HeaderText="Telephone" UniqueName="TelephoneColumn">  
                            <EditItemTemplate> 
                                <telerik:RadMaskedTextBox ID="titleTextBox" runat="server" Text='<%# Bind("Telephone")%>' 
                                    AllowEmptyEnumerations="true" Mask="(###) ###-####" PromptChar="_">  
                                </telerik:RadMaskedTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="telLabel" runat="server" Text='<%# Eval("Telephone", "{0:(###)###-####}") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridEditCommandColumn /> 
                    </Columns> 
                </MasterTableView> 
            </telerik:RadGrid> 





ASPX/ASCX

<radG:RadGrid ID="RadGrid1" runat="server" EnableAJAX="True" Skin="Office2007" EnableAJAXLoadingTemplate="True"    
                LoadingTemplateTransparency="25">     
                <MasterTableView AutoGenerateColumns="False" DataKeyNames="ID" CommandItemDisplay="Top"    
                    EditMode="InPlace">     
                    <Columns>    
                        <radG:GridTemplateColumn HeaderText="Dates" UniqueName="DateColumn">     
                            <EditItemTemplate>    
                                <radI:RadDateInput ID="datePicker" runat="server" Skin="Windows" Culture="(Default)"    
                                    DbSelectedDate='<%# Bind("Dates") %>' DateFormat="MMMM/dd/yyyy"    
                                    MinDate="01/01/1950">     
                                </radI:RadDateInput>    
                            </EditItemTemplate>    
                            <ItemTemplate>    
                                <asp:Label ID="dtLabel" runat="server" Text='<%# Eval("Dates", "{0:MMMM/dd/yyyy}") %>' />    
                            </ItemTemplate>    
                        </radG:GridTemplateColumn>    
                        <radG:GridTemplateColumn HeaderText="Currency" UniqueName="CurrencyColumn">     
                            <EditItemTemplate>    
                                <radI:RadNumericTextBox ID="currencyBox" runat="server" Skin="Windows"      
                                 DbValue='<%# Bind("Currency") %>' Culture="ja-JP" Type="Currency">     
                                </radI:RadNumericTextBox>    
                            </EditItemTemplate>    
                            <ItemTemplate>    
                                <asp:Label ID="curLabel" runat="server" Text='<%# Eval("Currency", "{0:####.## JPY}") %>' />    
                            </ItemTemplate>    
                        </radG:GridTemplateColumn>    
                        <radG:GridTemplateColumn HeaderText="Number" UniqueName="NumberColumn">     
                            <EditItemTemplate>    
                                <radI:RadTextBox      
                                    ID="numberTextBox"      
                                    Runat="server"      
                                    Skin="Windows"    
                                    Text='<%# Bind("Number") %>'    
                                    MaxLength="5" >    
                                </radI:RadTextBox>    
                            </EditItemTemplate>    
                            <ItemTemplate>    
                                <asp:Label ID="numLabel" runat="server" Text='<%# Eval("Number") %>' />    
                            </ItemTemplate>    
                        </radG:GridTemplateColumn>    
                        <radG:GridTemplateColumn HeaderText="Telephone" UniqueName="TelephoneColumn">     
                            <EditItemTemplate>    
                                <radI:RadMaskedTextBox ID="titleTextBox" runat="server" Skin="Windows" Text='<%# Bind("Telephone")%>'    
                                    AllowEmptyEnumerations="true" ShowHint="True" Mask="(###) ###-####" PromptChar="_"></radI:RadMaskedTextBox>    
                            </EditItemTemplate>    
                            <ItemTemplate>    
                                <asp:Label ID="telLabel" runat="server" Text='<%# Eval("Telephone", "{0:(###)###-####}") %>' />    
                            </ItemTemplate>    
                        </radG:GridTemplateColumn>    
                        <radG:GridEditCommandColumn />    
                    </Columns>    
                </MasterTableView>    
</radG:RadGrid>    
 


The second approach uses automatic operations and does not require a single line of code to be written in the code-behind of the page (except for handling the null values passed on insert once again):

  

ASPX/ASCX

            <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
            <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">  
                <AjaxSettings> 
                    <telerik:AjaxSetting AjaxControlID="RadGrid1">  
                        <UpdatedControls> 
                            <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                        </UpdatedControls> 
                    </telerik:AjaxSetting> 
                </AjaxSettings> 
            </telerik:RadAjaxManager> 
            <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" 
                Transparency="25" Width="75px">  
                <img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' 
                    style="border: 0px;" /> 
            </telerik:RadAjaxLoadingPanel> 
            <telerik:RadGrid ID="RadGrid1" runat="server" Skin="Office2007" DataSourceID="AccessDataSource1" 
                GridLines="None" AllowAutomaticDeletes="true" AllowAutomaticUpdates="true" AllowAutomaticInserts="true">  
                <MasterTableView AutoGenerateColumns="False" DataKeyNames="ID" CommandItemDisplay="Top" 
                    EditMode="InPlace" DataSourceID="AccessDataSource1">  
                    <Columns> 
                        <telerik:GridTemplateColumn HeaderText="Dates" UniqueName="DateColumn">  
                            <EditItemTemplate> 
                                <telerik:RadDateInput ID="datePicker" runat="server" Culture="(Default)" DbSelectedDate='<%# Bind("Dates") %>' 
                                    DateFormat="MMMM/dd/yyyy" MinDate="01/01/1950">  
                                </telerik:RadDateInput> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="dtLabel" runat="server" Text='<%# Eval("Dates", "{0:MMMM/dd/yyyy}") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridTemplateColumn HeaderText="Currency" UniqueName="CurrencyColumn">  
                            <EditItemTemplate> 
                                <telerik:RadNumericTextBox ID="currencyBox" runat="server" DbValue='<%# Bind("Currency") %>' 
                                    Culture="ja-JP" Type="Currency">  
                                </telerik:RadNumericTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="curLabel" runat="server" Text='<%# Eval("Currency", "{0:####.## JPY}") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridTemplateColumn HeaderText="Number" UniqueName="NumberColumn">  
                            <EditItemTemplate> 
                                <telerik:RadTextBox ID="numberTextBox" runat="server" Text='<%# Bind("Number") %>' 
                                    MaxLength="5">  
                                </telerik:RadTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="numLabel" runat="server" Text='<%# Eval("Number") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridTemplateColumn HeaderText="Telephone" UniqueName="TelephoneColumn">  
                            <EditItemTemplate> 
                                <telerik:RadMaskedTextBox ID="titleTextBox" runat="server" Text='<%# Bind("Telephone")%>' 
                                    AllowEmptyEnumerations="true" Mask="(###) ###-####" PromptChar="_">  
                                </telerik:RadMaskedTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="telLabel" runat="server" Text='<%# Eval("Telephone", "{0:(###)###-####}") %>' /> 
                            </ItemTemplate> 
                        </telerik:GridTemplateColumn> 
                        <telerik:GridEditCommandColumn /> 
                    </Columns> 
                </MasterTableView> 
            </telerik:RadGrid> 
            <br /> 
            <asp:AccessDataSource ID="AccessDataSource1" runat="server" ConflictDetection="CompareAllValues" 
                DataFile="~/App_Data/GridFormatting.mdb" DeleteCommand="DELETE FROM [AutoFormatting] WHERE [ID] = ?" 
                InsertCommand="INSERT INTO [AutoFormatting] ([Dates], [Currency], [Number], [Telephone]) VALUES ( ?, ?, ?, ?)" 
                OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [ID], [Dates], [Currency], [Number], [Telephone] FROM [AutoFormatting]" 
                UpdateCommand="UPDATE [AutoFormatting] SET [Dates] = ?, [Currency] = ?, [Number] = ?, [Telephone] = ? WHERE [ID] = ? AND [Dates] = ? AND [Currency] = ? AND [Number] = ? AND [Telephone] = ?">  
                <DeleteParameters> 
                    <asp:Parameter Name="original_ID" Type="Int32" /> 
                </DeleteParameters> 
                <UpdateParameters> 
                    <asp:Parameter Name="Dates" Type="DateTime" /> 
                    <asp:Parameter Name="Currency" Type="Decimal" /> 
                    <asp:Parameter Name="Number" Type="Int32" /> 
                    <asp:Parameter Name="Telephone" Type="Double" /> 
                    <asp:Parameter Name="original_ID" Type="Int32" /> 
                    <asp:Parameter Name="original_Dates" Type="DateTime" /> 
                    <asp:Parameter Name="original_Currency" Type="Decimal" /> 
                    <asp:Parameter Name="original_Number" Type="Int32" /> 
                    <asp:Parameter Name="original_Telephone" Type="Double" /> 
                </UpdateParameters> 
                <InsertParameters> 
                    <asp:Parameter Name="Dates" Type="DateTime" /> 
                    <asp:Parameter Name="Currency" Type="Decimal" /> 
                    <asp:Parameter Name="Number" Type="Int32" /> 
                    <asp:Parameter Name="Telephone" Type="Double" /> 
                </InsertParameters> 
            </asp:AccessDataSource> 



ASPX/ASCX

            <radG:RadGrid ID="RadGrid1" runat="server" EnableAJAX="True" Skin="Office2007" EnableAJAXLoadingTemplate="True" 
                LoadingTemplateTransparency="25" DataSourceID="AccessDataSource1" GridLines="None" AllowAutomaticDeletes="true" 
                 AllowAutomaticUpdates="true" AllowAutomaticInserts="true">  
                <MasterTableView AutoGenerateColumns="False" DataKeyNames="ID" CommandItemDisplay="Top" 
                    EditMode="InPlace" DataSourceID="AccessDataSource1">  
                    <Columns> 
                        <radG:GridTemplateColumn HeaderText="Dates" UniqueName="DateColumn">  
                            <EditItemTemplate> 
                                <radI:RadDateInput ID="datePicker" runat="server" Skin="Windows" Culture="(Default)" 
                                    DbSelectedDate='<%# Bind("Dates") %>' DateFormat="MMMM/dd/yyyy" 
                                    MinDate="01/01/1950">  
                                </radI:RadDateInput> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="dtLabel" runat="server" Text='<%# Eval("Dates", "{0:MMMM/dd/yyyy}") %>' /> 
                            </ItemTemplate> 
                        </radG:GridTemplateColumn> 
                        <radG:GridTemplateColumn HeaderText="Currency" UniqueName="CurrencyColumn">  
                            <EditItemTemplate> 
                                <radI:RadNumericTextBox ID="currencyBox" runat="server" Skin="Windows"   
                                 DbValue='<%# Bind("Currency") %>' Culture="ja-JP" Type="Currency">  
                                </radI:RadNumericTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="curLabel" runat="server" Text='<%# Eval("Currency", "{0:####.## JPY}") %>' /> 
                            </ItemTemplate> 
                        </radG:GridTemplateColumn> 
                        <radG:GridTemplateColumn HeaderText="Number" UniqueName="NumberColumn">  
                            <EditItemTemplate> 
                                <radI:RadTextBox   
                                    ID="numberTextBox"   
                                    Runat="server"   
                                    Skin="Windows" 
                                    Text='<%# Bind("Number") %>' 
                                    MaxLength="5" > 
                                </radI:RadTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="numLabel" runat="server" Text='<%# Eval("Number") %>' /> 
                            </ItemTemplate> 
                        </radG:GridTemplateColumn> 
                        <radG:GridTemplateColumn HeaderText="Telephone" UniqueName="TelephoneColumn">  
                            <EditItemTemplate> 
                                <radI:RadMaskedTextBox ID="titleTextBox" runat="server" Skin="Windows" Text='<%# Bind("Telephone")%>' 
                                    AllowEmptyEnumerations="true" ShowHint="True" Mask="(###) ###-####" PromptChar="_"></radI:RadMaskedTextBox> 
                            </EditItemTemplate> 
                            <ItemTemplate> 
                                <asp:Label ID="telLabel" runat="server" Text='<%# Eval("Telephone", "{0:(###)###-####}") %>' /> 
                            </ItemTemplate> 
                        </radG:GridTemplateColumn> 
                        <radG:GridEditCommandColumn /> 
                    </Columns> 
                    <ExpandCollapseColumn Visible="False">  
                        <HeaderStyle Width="19px" /> 
                    </ExpandCollapseColumn> 
                    <RowIndicatorColumn Visible="False">  
                        <HeaderStyle Width="20px" /> 
                    </RowIndicatorColumn> 
                </MasterTableView> 
            </radG:RadGrid> 
            <asp:AccessDataSource ID="AccessDataSource1" runat="server" ConflictDetection="CompareAllValues" 
                DataFile="~/GridFormatting.mdb"   
                DeleteCommand="DELETE FROM [AutoFormatting] WHERE [ID] = ?" 
                InsertCommand="INSERT INTO [AutoFormatting] ([Dates], [Currency], [Number], [Telephone]) VALUES ( ?, ?, ?, ?)" 
                OldValuesParameterFormatString="original_{0}"   
                SelectCommand="SELECT [ID], [Dates], [Currency], [Number], [Telephone] FROM [AutoFormatting]" 
                UpdateCommand="UPDATE [AutoFormatting] SET [Dates] = ?, [Currency] = ?, [Number] = ?, [Telephone] = ? WHERE [ID] = ? AND [Dates] = ? AND [Currency] = ? AND [Number] = ? AND [Telephone] = ?">  
                <DeleteParameters> 
                    <asp:Parameter Name="original_ID" Type="Int32" /> 
                </DeleteParameters> 
                <UpdateParameters> 
                    <asp:Parameter Name="Dates" Type="DateTime" /> 
                    <asp:Parameter Name="Currency" Type="Decimal" /> 
                    <asp:Parameter Name="Number" Type="Int32" /> 
                    <asp:Parameter Name="Telephone" Type="Double" /> 
                    <asp:Parameter Name="original_ID" Type="Int32" /> 
                    <asp:Parameter Name="original_Dates" Type="DateTime" /> 
                    <asp:Parameter Name="original_Currency" Type="Decimal" /> 
                    <asp:Parameter Name="original_Number" Type="Int32" /> 
                    <asp:Parameter Name="original_Telephone" Type="Double" /> 
                </UpdateParameters> 
                <InsertParameters> 
                    <asp:Parameter Name="Dates" Type="DateTime" /> 
                    <asp:Parameter Name="Currency" Type="Decimal" /> 
                    <asp:Parameter Name="Number" Type="Int32" /> 
                    <asp:Parameter Name="Telephone" Type="Double" /> 
                </InsertParameters> 
            </asp:AccessDataSource> 

For additional information you can refer to the two demo projects enclosed at the bottom of this thread. Note that if you prefer to fetch the data from the column editors individually, you can do that looping through the column editors manually as presented in this online demo.     

Finally, you may prefer to use the five new built-in column types instead of template columns with editors in them.

Comments

If you'd like to comment on this KB article, please, send us a Support Ticket.
Thank you!

Please Sign In to rate this article.