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

After insert Highlight the Inserted Row and Open it Edit Mode to fill more data.

3 Answers 193 Views
Grid
This is a migrated thread and some comments may be shown as answers.
gc_0620
Top achievements
Rank 1
gc_0620 asked on 05 Mar 2012, 08:32 PM
Folks I am using VS 2010 SP1 and RadControls for ASP.NET AJAX Q1 2012. I would like the following steps if possible in Rad Grid:

1)  After Edit, highlight the last edited row in Grid.

2)  After Insert, without any user interaction (automatically)
   
      A) Retrieve the Primary Key value of newly inserted row, 
      B) Highlight (Select) newly inserted row in Grid
      C) Open the newly inserted row in Edit Mode to enter some additional data that are not required in initial insert.
      D) Show the Primary Key Value of newly inserted row in a Label in Edit Form.

3) After user Updates or Cancel in Step 2, do Step #1 (i.e. highlight the last edited row in Grid)

Is these above possible?

I am using below link as sample (RadGrid2).  and attached is my code.

http://demos.telerik.com/aspnet-ajax/grid/examples/programming/commanditem/defaultcs.aspx


Thanks

GC_0620
-------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DefaultCS.aspx.cs" Inherits="Grid.Examples.Programming.CommandItem.DefaultCS" %>
 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head runat="server">
    <!-- custom head section -->
    <style type="text/css">
        .bigModuleBottom td
        {
            padding: 0;
        }
    </style>
    <!-- end of custom head section -->
</head>
<body class="BODY">
    <form runat="server" id="mainForm" method="post">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server" />
    <!-- content start -->
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function RowDblClick(sender, eventArgs) {
                sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
            }
        </script>
    </telerik:RadCodeBlock>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadGrid2">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid2" />
                    <telerik:AjaxUpdatedControl ControlID="Label3" />
                    <telerik:AjaxUpdatedControl ControlID="Label4" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <div>
        <asp:Label ID="Label1" runat="server" EnableViewState="False" Font-Bold="True" ForeColor="#FF8080"></asp:Label>
        <asp:Label ID="Label2" runat="server" EnableViewState="False" Font-Bold="True" ForeColor="#00C000"></asp:Label>
    </div>
    <br />
    <br />
    <br />
    <br />
    <div class="bigModule">
        <div class="bigModuleBottom">
            <%--<div class="title">
                    Default command-item outlook</div>--%>
        </div>
    </div>
    <br />
    <div>
        <asp:Label ID="Label3" runat="server" EnableViewState="False" Font-Bold="True" ForeColor="#FF8080"></asp:Label>
        <asp:Label ID="Label4" runat="server" EnableViewState="False" Font-Bold="True" ForeColor="#00C000"></asp:Label>
    </div>
    <br />
    <telerik:RadGrid ID="RadGrid2" DataSourceID="SqlDataSource2" AllowSorting="True"
        AllowAutomaticInserts="true" AllowAutomaticUpdates="true" AllowAutomaticDeletes="true"
        PageSize="7" AllowPaging="True" GridLines="None" runat="server" ShowFooter="True"
        OnItemCreated="RadGrid_ItemCreated" OnItemDeleted="RadGrid_ItemDeleted" OnItemUpdated="RadGrid_ItemUpdated"
        OnItemInserted="RadGrid_ItemInserted" Skin="Vista" OnItemCommand="RadGrid2_ItemCommand">
        <PagerStyle Mode="NextPrevAndNumeric" />
        <MasterTableView Width="100%" CommandItemDisplay="TopAndBottom" DataSourceID="SqlDataSource2"
            InsertItemPageIndexAction="ShowItemOnCurrentPage" DataKeyNames="CustomerID" AutoGenerateColumns="false"
            InsertItemDisplay="Top">
            <Columns>
                <telerik:GridEditCommandColumn>
                </telerik:GridEditCommandColumn>
                <telerik:GridBoundColumn DataField="CustomerID" UniqueName="CustomerID" HeaderText="Customer ID"
                    MaxLength="5">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="CompanyName" UniqueName="CompanyName" HeaderText="Company Name">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="ContactName" UniqueName="ContactName" HeaderText="Contact Name">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="ContactTitle" UniqueName="ContactTitle" HeaderText="Contact Title">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="Address" UniqueName="Address" HeaderText="Address">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="City" UniqueName="City" HeaderText="City">
                </telerik:GridBoundColumn>
                <telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="DeleteColumn">
                </telerik:GridButtonColumn>
            </Columns>
            <CommandItemSettings AddNewRecordText="Add new record" AddNewRecordImageUrl="Images/AddRecord.gif"
                RefreshText="Refresh" RefreshImageUrl="Images/Refresh.gif" />
        </MasterTableView>
        <ClientSettings>
            <ClientEvents OnRowDblClick="RowDblClick" />
        </ClientSettings>
    </telerik:RadGrid>
    <br />
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString35 %>"
        DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID" InsertCommand="INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], [City]) VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, @Address, @City)"
        SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], [City] FROM [Customers]"
        UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, [Address] = @Address, [City] = @City WHERE [CustomerID] = @CustomerID">
        <DeleteParameters>
            <asp:Parameter Name="CustomerID" Type="String" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="CustomerID" Type="String" />
            <asp:Parameter Name="CompanyName" Type="String" />
            <asp:Parameter Name="ContactName" Type="String" />
            <asp:Parameter Name="ContactTitle" Type="String" />
            <asp:Parameter Name="Address" Type="String" />
            <asp:Parameter Name="City" Type="String" />
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="CompanyName" Type="String" />
            <asp:Parameter Name="ContactName" Type="String" />
            <asp:Parameter Name="ContactTitle" Type="String" />
            <asp:Parameter Name="Address" Type="String" />
            <asp:Parameter Name="City" Type="String" />
            <asp:Parameter Name="CustomerID" Type="String" />
        </UpdateParameters>
    </asp:SqlDataSource>
    <!-- content end -->
    <p>
         </p>
    </form>
</body>
</html>

_____________

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
 
namespace Grid.Examples.Programming.CommandItem
{
    public partial class DefaultCS : System.Web.UI.Page
    {
        
        
        protected void RadGrid_ItemCreated(object sender, GridItemEventArgs e)
        {
           
            GridEditableItem item = e.Item as GridEditableItem;
            if (item != null && e.Item.IsInEditMode && e.Item.ItemIndex != -1)
            {
                (item.EditManager.GetColumnEditor("CustomerID").ContainerControl.Controls[0] as TextBox).Enabled = false;
            }
        }
 
        protected void RadGrid_ItemUpdated(object source, Telerik.Web.UI.GridUpdatedEventArgs e)
        {
            if (e.Exception != null)
            {
                e.KeepInEditMode = true;
                e.ExceptionHandled = true;
                DisplayMessage(true, "Customer " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CustomerID"] + " cannot be updated due to invalid data.");
            }
            else
            {
                DisplayMessage(false, "Customer " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CustomerID"] + " updated");
            }
        }
 
        protected void RadGrid_ItemInserted(object source, GridInsertedEventArgs e)
        {
            if (e.Exception != null)
            {
                e.ExceptionHandled = true;
                e.KeepInInsertMode = true;
                DisplayMessage(true, "Customer cannot be inserted due to invalid data.");
            }
            else
            {
                DisplayMessage(false, "Customer inserted");
            }
            e.Item.Edit = true;
        }
 
        protected void RadGrid_ItemDeleted(object source, GridDeletedEventArgs e)
        {
            if (e.Exception != null)
            {
                e.ExceptionHandled = true;
                DisplayMessage(true, "Customer " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CustomerID"] + " cannot be deleted");
            }
            else
            {
                DisplayMessage(false, "Customer " + e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["CustomerID"] + " deleted");
            }
        }
 
        private void DisplayMessage(bool isError, string text)
        {
            if (isError)
            {
                this.Label1.Text = text;
                this.Label3.Text = text;
            }
            else
            {
                this.Label2.Text = text;
                this.Label4.Text = text;
            }
        }
 
 
        protected void RadGrid2_ItemCommand(object sender, GridCommandEventArgs e)
        {
            
        }
}
}




3 Answers, 1 is accepted

Sort by
0
Tsvetina
Telerik team
answered on 09 Mar 2012, 08:16 AM
Hi,

Your requirements are possible with some coding in the grid code-behind.

You can take a look at the following resources for some ideas on how to achieve your goal.
Edited Row highlight
Select Last Inserted Row in the RadGrid with both Paging and Sorting enabled.
And with the below described method, you could fire Edit command for the row of your choice:
How to fire command events from code

All the best,
Tsvetina
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
0
LaurentDuveau
Top achievements
Rank 1
answered on 19 Mar 2015, 03:28 PM
Hi,
The link to "Select Last Inserted Row in the RadGrid with both Paging and Sorting enabled." is not working anymore.
Where can I find this article ?
Laurent
0
Eyup
Telerik team
answered on 24 Mar 2015, 12:54 PM
Hi Laurent,

I've already replied to your query in the following forum post:
http://www.telerik.com/forums/select-inserted-updated-row-after-performing-command#UqPp6075pUO9rOJsy-RmIw

I suggest that we continue our conversation on the mentioned threat.

Regards,
Eyup
Telerik
 

See What's Next in App Development. Register for TelerikNEXT.

 
Tags
Grid
Asked by
gc_0620
Top achievements
Rank 1
Answers by
Tsvetina
Telerik team
LaurentDuveau
Top achievements
Rank 1
Eyup
Telerik team
Share this question
or