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

Rad dataform to open in Insert when added in EditformControl of RadGrid

5 Answers 304 Views
DataForm
This is a migrated thread and some comments may be shown as answers.
jyotsna
Top achievements
Rank 1
jyotsna asked on 18 Mar 2016, 02:21 PM

I am trying to open the Raddataform which is in Editform control of Rad Grid in the insert mode ,and as there are no items in the grid it goes to exception  as above users,I tried the solution from Ole  like inserting an empty template but dint work out. when I have data in the grid it works fine for the new grid to add a record using the dataform it fails.pls suggest.Here is sample.

I also Tried All options mentioned in the other Threads

 //   gridDataform.DataForm.IsItemInserted = true;
                  //  gridDataform.DataForm.Rebind();
                    // gridDataform.DataForm.Items[0].FireCommandEvent("InitInsert", "");
                    gridDataform.DataForm.ShowInsertItem();
 

gridDataform is the instance of the usercontrol which has Raddataform and this code is beign used in the grid itemcommand.

 

                    if (gridDataform == null)
                    { throw new Exception("No Grid Found"); }

                    log.logDebug(logMessage: "Fire Insert Mode for DataForm");


                   gridDataform.DataForm.Items[0].FireCommandEvent("InitInsert", "");
Also my add buttons are on the mastertableview of the grid

 

 <MasterTableView Width="100%" CommandItemDisplay="Top" ShowGroupFooter="true" AllowFilteringByColumn="true">
            <EditFormSettings EditFormType="Template">
                <EditColumn UniqueName="EditCommandColumn1" />
                <FormTemplate>
                    <uc1:PageUIControl IsBoundToGrid="true" runat="server" ID="EditFormControl"  />
                </FormTemplate>
                <PopUpSettings ScrollBars="None" />
            </EditFormSettings>

            <CommandItemTemplate>


                <div style="color:black!important;" >

                    <asp:LinkButton ID="btnEditSelected" runat="server" CommandName="EditSelected" Visible='<%# RadGridUI.EditIndexes.Count == 0 %>'><i class="fa fa-pencil fa-lg"></i></asp:LinkButton>
                        <asp:LinkButton ID="btnUpdateEdited" runat="server" CommandName="UpdateEdited" Visible='<%# RadGridUI.EditIndexes.Count > 0 %>'><i class="fa fa-pencil fa-lg"></i></asp:LinkButton>
                        <asp:LinkButton ID="btnCancel" runat="server" CommandName="CancelAll" Visible='<%# RadGridUI.EditIndexes.Count > 0 || RadGridUI.MasterTableView.IsItemInserted %>'><i class="fa fa-ban fa-lg"></i></asp:LinkButton>&nbsp;&nbsp;
                       <asp:LinkButton ID="btnNew" runat="server" CommandName="InitInsert" Visible='<%# !RadGridUI.MasterTableView.IsItemInserted %>'><i class="fa fa-plus-square fa-lg"></i></asp:LinkButton>
                        <asp:LinkButton ID="btnInsert" runat="server" CommandName="PerformInsert" Visible='<%# RadGridUI.MasterTableView.IsItemInserted %>'><i class="fa fa-plus-square fa-lg"></i></asp:LinkButton>&nbsp;&nbsp;
                        <asp:LinkButton ID="btnDelete" OnClientClick="javascript:return confirm('Delete all selected customers?')" runat="server" CommandName="DeleteSelected"><i class="fa fa-trash fa-lg"></i></asp:LinkButton>&nbsp;&nbsp;

                </div>

            </CommandItemTemplate>
        </MasterTableView>

5 Answers, 1 is accepted

Sort by
0
Maria Ilieva
Telerik team
answered on 23 Mar 2016, 10:12 AM
Hello,

I would suggest you to review the online demo below that demonstrates how the RadDataForm can be used as external edit form for RadGrid.
http://demos.telerik.com/aspnet-ajax/dataform/application-scenarios/integration-with-radgrid/defaultcs.aspx
Try to implement this approach on you end and see if it works for you.

Regards,
Maria Ilieva
Telerik
0
jyotsna
Top achievements
Rank 1
answered on 23 Mar 2016, 02:01 PM

My scenario is different here,I have all my code written dynamically,binding data to Grid ,and binding data to raddataform,So inorder to acheive tht I have to trigger the raddataform insert/edit from the grid item databound.So Please suggest how can I initiate  the Insert mode from the Grids itemdatabound if there are no records,I.e inserting for the first time.

And As i said this approach totally works fine for insert/Edit if there is data.The issue is only with inserting the first record.

Thanks

0
Maria Ilieva
Telerik team
answered on 28 Mar 2016, 01:43 PM
Hello,

Can you please share your full page markup and related code behind so that we can further revise the exact scenario you have and advise you further?

Regards,
Maria Ilieva
Telerik
0
jyotsna
Top achievements
Rank 1
answered on 28 Mar 2016, 06:40 PM
Here is  the usercontrol with the dataform:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PageUIControl.ascx.cs" Inherits="BMA.Core_User_Controls.PageUIControl" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<telerik:RadAjaxManagerProxy ID="RadAjaxManager1" runat="server" ClientIDMode="AutoID">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Raddataform1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Raddataform1" LoadingPanelID="PageUIPnlLoad"></telerik:AjaxUpdatedControl>
                <telerik:AjaxUpdatedControl ControlID="PageUIErrorNotification" LoadingPanelID="PageUIPnlLoad"> </telerik:AjaxUpdatedControl>  <telerik:AjaxUpdatedControl ControlID="ValidationSummary1" LoadingPanelID="PageUIPnlLoad">
                </telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManagerProxy>
<link href="../Content/styles.css" rel="stylesheet" />


<div id="divPageUIControlMain">


    <asp:Panel ID="Panel1" runat="server" Width="100%" BorderStyle="None" CssClass="PageUIBackground">
        <telerik:RadAjaxLoadingPanel runat="server" ID="PageUIPnlLoad" Skin="Metro" Transparency="35">
                     <div style="background-color:#ffffff; width:100%; height:100%"></div>
                    </telerik:RadAjaxLoadingPanel>  
        <telerik:RadNotification ID="PageUIErrorNotification" runat="server" EnableRoundedCorners="true"
        EnableShadow="true" Text="" Title="" Animation="Slide" AnimationDuration="800" Position="TopCenter" ContentScrolling="Auto">
                <ContentTemplate>
                    <b>Please copy the Log below and send to Support Team for Issue Resolution </b>
                    <br>
                    <asp:TextBox TextMode="MultiLine" ID="txtpageui" Enabled="false" Height="130" Width="580" runat="server"></asp:TextBox>
                </ContentTemplate> 
               </telerik:RadNotification>
               <telerik:RadDataForm Visible="true" runat="server" ID="Raddataform1" AllowPaging="True" EnableViewState="true"  OnNeedDataSource="Raddataform1_NeedDataSource" BorderStyle="None" 
                   OnItemUpdating="RadDataForm1_ItemUpdating" OnItemCanceling="Raddataform1_ItemCanceling"  OnItemInserting="RadDataForm1_ItemInserting" >
                    </telerik:RadDataForm>

 
    <asp:ValidationSummary ID="ValidationSummary1" runat="server"  ShowMessageBox="false"  ShowSummary="true" ShowValidationErrors="true"    />
    </asp:Panel>
</div>
Code behind:
using BMA.Helper;
using System;
using System.Collections.Generic;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Telerik.Web;
using Telerik.Web.UI;



namespace BMA.Core_User_Controls
{
    public partial class PageUIControl : System.Web.UI.UserControl
    {
        public string UserID
        {
            get
            {

                return Session["UserID"].ToString();
            }
            set
            {
                Session["UserID"] = value;
            }
        }
    

        public UserContextHelper UserContext
        {
            get
            {
                return (UserContextHelper)Session["UserContext"];
            }
            set
            {
                Session["UserContext"] = value;
            }
        }
        public RadDataForm DataForm
        {
            get
            {
                return Raddataform1;
            }
        }
        public string KeyNameValue
        {
            get
            {
                return ViewState["PageUIKeyName"].ToString();
            }
            set
            {
                ViewState["PageUIKeyName"] = value;
            }
        }

        

        public string EntityObject
        {
            get
            {
                if (ViewState["PageUIEntityObject"] == null)
                { ViewState["PageUIEntityObject"] = ""; }
                return ViewState["PageUIEntityObject"].ToString();
            }
            set
            {
                ViewState["PageUIEntityObject"] = value;
            }
        }

        public Mode UpdateMode
        {
            get
            {
                if (ViewState["PageUIUpdateMode"] == null)
                { ViewState["PageUIUpdateMode"] = Mode.Item; }
                return (Mode)ViewState["PageUIUpdateMode"];
            }
            set
            {
                ViewState["PageUIUpdateMode"] = value;
            }
        }
        public enum Mode
        {
            Update,
            Insert,
            Item
        }

        public string Entity
        {
            get
            {
                if (ViewState["PageUIEntity"] == null)
                { ViewState["PageUIEntity"] = ""; }
                return ViewState["PageUIEntity"].ToString();
            }
            set
            {
                ViewState["PageUIEntity"] = value;
            }
        }
        private string _primaryKeyValue;
        public event EventHandler ItemCommand;

      
        public int GridItemIndex
        {
            set
            {
                ViewState["PageUIGridItemIndex"] = value;

            }
            get
            {
                if (ViewState["PageUIGridItemIndex"] == null)
                { ViewState["PageUIGridItemIndex"] = -1; }

                return (int)ViewState["PageUIGridItemIndex"];
            }
        }

        public bool IsBoundToGrid
        {
            set
            {
                ViewState["PageUIIsBoundToGrid"] = value;

            }
            get
            {
                if (ViewState["PageUIIsBoundToGrid"] == null)
                { ViewState["PageUIIsBoundToGrid"] = false; }

                return (bool)ViewState["PageUIIsBoundToGrid"];
            }
        }
        public int TaskOrderID
        {
            get
            {
                if (ViewState["PageUITaskOrderID"] == null)
                {
                    if (ViewState["PageUITaskOrderID"] == null)
                        ViewState["PageUITaskOrderID"] = 0;
                }
                return (int)ViewState["PageUITaskOrderID"];
            }
            set
            {
                ViewState["TableUITaskOrderID"] = value;
            }
        }
        public string PrimaryKeyValue
        {
            get
            {

                return (string)ViewState["PageUIprimaryKeyValue"];
            }
            set
            {
               ViewState["PageUIprimaryKeyValue"] = value;
            }
        }
        public string PrimaryKeyValueData
        {
            get
            {

                return (string)ViewState["PageUIPrimaryKeyValueData"];
            }
            set
            {
                ViewState["PageUIPrimaryKeyValueData"] = value;
            }
        }
        
        public int columnsno
        {
            get
            {
                if (ViewState["PageUIcolumnsno"] == null)
                { ViewState["PageUIcolumnsno"] = 5; }

                return (int)ViewState["PageUIcolumnsno"];
            }
            set
            {
                ViewState["PageUIcolumnsno"] = value;
            }
        }

        public string Validationgroup
        {
            get
            {
                return (String)ViewState["Validationgroup"];
            }
            set
            {
                ViewState["Validationgroup"] = value;
            }
        }

        protected void Page_Init(object sender, EventArgs e)
        {

            logHelper log = null;
            try
            {

                log = logHelper.getlogger(ref log, Logger: "PageUI.Page_Init", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "Page_Init Start");

                if (!Page.IsPostBack)
                {

                    CurrentSkin = "Metro";
                }
                
                if (IsBoundToGrid)
                {
                    GridEditFormItem item = (GridEditFormItem)this.NamingContainer;
                    EntityTableUIControl TableCtl = (EntityTableUIControl)item.OwnerTableView.Parent.Parent.Parent;
                     // EntityTableUIControl TableCtl = (EntityTableUIControl)item.OwnerTableView.Parent;
                   // EntityTableUIControl TableCtl = (EntityTableUIControl)item.FindControl("EntityTableUIControl");
                    EntityObject = TableCtl.EntityObject;
                    Entity = TableCtl.Entity;

                        PrimaryKeyValue = TableCtl.PrimaryKeyValue;
                 
                    PrimaryKeyValueData = TableCtl.PrimaryKeyValueData;
                    if (PrimaryKeyValueData == "")
                        PrimaryKeyValueData = null;
                    
                        ValidationSummary1.ValidationGroup = TableCtl.Validationgroup;
                    Raddataform1.ValidationSettings.ValidationGroup = TableCtl.Validationgroup;
                    columnsno = TableCtl.columnsno;
                   
                }
                else
                {
                    string keydata = Request.QueryString["PrimaryKeyData"];
                    PrimaryKeyValueData = keydata;//"5539";

                   Entity = Request.QueryString["Entity"];
                    EntityObject = Request.QueryString["EntityObject"];
                    UserID = this.UserID;//Request.QueryString["UserID"];
                    
                }
                Raddataform1.Attributes["Updating"] = "false";
                
              //  Raddataform1.Attributes["Inserting"] = "false";
                log.logDebug(logMessage: "PageUI.Page_Init Executing RenderTableUITemplates Start");

                RenderTableUITemplates(uiEntity: Entity, log: ref log);

               // Notification.Title = Entity + " Table UI Notifications";
                //}

            }
            catch (Exception ex)
            {

                log.logError(logMessage: "PageUI.Page_Init Error: " + ex.Message);
                //throw ex;
                ((TextBox)PageUIErrorNotification.ContentContainer.FindControl("txtpageui")).Text = log.logstr;
                PageUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "Page_Init Exit ");
                log.Flush(logger: "PageUI.Page_Init");
            }

        }

        private void LayOutprerender_event(object sender, EventArgs e)
        {

        }
        public string CurrentSkin
        {
            get
            {

                return Session["CurrentSkin"].ToString();
            }
            set
            {

                Session["CurrentSkin"] = value;
            }
        }

        //public RadNotification Notification
        //{
        //    get
        //    {

        //        return (RadNotification)Session["Notification"];
        //    }
        //    set
        //    {

        //        Session["Notification"] = value;
        //    }
        //}


        public void RenderTableUITemplates(string uiEntity, ref logHelper log)
        {

            try
            {

                DataSet entityMetaData = null;
                // int columnsno = 4;

                log = logHelper.getlogger(ref log, Logger: "RenderPageUITemplates", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "RenderPageUITemplates Start uiEntity: " + "Entityttribute");

                entityMetaData = DynamicUILayoutHelper.FetchEntityMetaData(uiEntity, ref log);
                foreach (DataRow rowitem in entityMetaData.Tables[1].Rows)
                {
                    if (rowitem["Access"].ToString().IndexOf("R") > -1)
                    {
                        Raddataform1.Visible = true;
                        break;
                    }
                    else
                        Raddataform1.Visible = false;

                }
                log.logDebug(logMessage: "RenderPageUITemplates Creating Templates");

                KeyNameValue = DynamicUILayoutHelper.DataformKey(ref log, Entity, ref Raddataform1);
                ////Locate the changed row in the DataSource

                Raddataform1.DataKeyNames = new string[] { KeyNameValue };
                Raddataform1.LayoutTemplate = null;
             Raddataform1.EmptyDataTemplate = new PageUIEmptyDataTemplate(entityMetaData, log, CurrentSkin, new System.EventHandler(LayOutprerender_event));
                Raddataform1.EditItemTemplate = new PageUIEditItemTemplate(entityMetaData, log, columnsno);
                Raddataform1.ItemTemplate = new PageUIItemTemplate(entityMetaData, log, columnsno);
                Raddataform1.InsertItemTemplate = new PageUIInsertItemTemplate(entityMetaData, log, columnsno);

                log.logDebug(logMessage: "RenderPageUITemplates Templates Done");

                PageUIErrorNotification.Title = "PageUI :" + Entity + "  Page UI Notifications";
                
            }
            catch (Exception ex)
            {
                log.logError(logMessage: "RenderPageUITemplates Error: " + ex.Message);
                //Notification.Title = "PageUI" + "RenderPageUITemplates Error: " + ex.Message;
                // throw ex;
                ((TextBox)PageUIErrorNotification.ContentContainer.FindControl("txtpageui")).Text = log.logstr;
                PageUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "RenderPageUITemplates Exit ");
                log.Flush(logger: "RenderPageUITemplates");
            }
            

        }
        protected void Raddataform1_NeedDataSource(object sender, RadDataFormNeedDataSourceEventArgs e)
        {
            logHelper log = null;
            try
            {
                log = logHelper.getlogger(ref log, Logger: "Raddataform1_NeedDataSource", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "Raddataform1_NeedDataSource Start");
                if (Entity != "")
                {
                  DataSet entityData = DynamicUILayoutHelper.FetchEntityData(EntityObject, selectedCommand: "[EIS_SP_GetGenericEntityData]", log: ref log, primaryVal: PrimaryKeyValueData,taskOrder:TaskOrderID);
                   
                    log.logDebug(logMessage: "Raddataform1_NeedDataSource Fetched Data Done");

                    Raddataform1.DataSource = entityData;
                    if (entityData.Tables[0].Rows.Count > 0)
                        Raddataform1.Visible = true;
                    else
                        Raddataform1.Visible = false;

                    log.logDebug(logMessage: "Raddataform1_NeedDataSource RadDataform DataSource Setdate Done");
                }

            }
            catch (Exception ex)
            {
                log.logError(logMessage: "Raddataform1_NeedDataSource Error: " + ex.Message);
                //throw ex;
                ((TextBox)PageUIErrorNotification.ContentContainer.FindControl("txtpageui")).Text = log.logstr;
                PageUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "Raddataform1_NeedDataSource Exit ");
                log.Flush(logger: "Raddataform1_NeedDataSource");
            }

        }
        protected void RadDataForm1_ItemInserting(object sender, RadDataFormCommandEventArgs e)
        {
            logHelper log = null;
            try
            {
                log = logHelper.getlogger(ref log, Logger: "RadDataForm1_ItemInserting", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "RadDataForm1_ItemInserting Start");

                RadDataFormEditableItem editedItem = e.DataFormItem as RadDataFormEditableItem;


                Hashtable newValues = new Hashtable();
             //   Raddataform1.Attributes["Inserting"] = "True";
                editedItem.ExtractValues(newValues);

                string Rowkey = "";
                newValues.Add("UserName", UserID);
               // newValues.Add("TaskOrderID", TaskOrderID);
                newValues.Add("InsertMode", "I");
                
                //  object dit = editedItem.GetDataKeyValue(KeyNameValue);
                log = logHelper.getlogger(ref log, Logger: "RadDataForm1_ItemInserting" + "NewValues:" +newValues);
                DynamicUILayoutHelper.InsertEntityData(Entity, ref log, Rowkey, newValues);
                //Raddataform1.Attributes["Inserting"] = "false";
                if (IsBoundToGrid)
                {

                    GridEditFormItem item = (GridEditFormItem)this.NamingContainer;
                    EntityTableUIControl parentgrid = (EntityTableUIControl)item.OwnerTableView.Parent.Parent.Parent;
                    // EntityTableUIControl parentgrid = (EntityTableUIControl)editedItem.Page.FindControl("RadGridUI");
                    if (parentgrid != null)
                    {
                        parentgrid.Grid.MasterTableView.GetInsertItem().FireCommandEvent("Cancel", "");
                    }
                }


            }
            catch (Exception ex)
            {
                log.logError(logMessage: "RadDataForm1_ItemInserting Error: " + ex.Message);
                // throw ex;
                ((TextBox)PageUIErrorNotification.ContentContainer.FindControl("txtpageui")).Text = log.logstr;
                PageUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "RadDataForm1_ItemInserting Exit ");
                log.Flush(logger: "RadDataForm1_ItemInserting");
            }
        }
        protected void RadDataForm1_ItemUpdating(object sender, RadDataFormCommandEventArgs e)

        {
            logHelper log = null;
            try
            {
                log = logHelper.getlogger(ref log, Logger: "RadDataForm1_ItemUpdating", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "RadDataForm1_ItemUpdating Start");

                RadDataFormEditableItem editedItem = e.DataFormItem as RadDataFormEditableItem;

                Hashtable newValues = new Hashtable();
                Raddataform1.Attributes["Updating"] = "true";
                editedItem.ExtractValues(newValues);

                newValues.Add("UserName", UserID);
               // newValues.Add("TaskOrderID", TaskOrderID);
                newValues.Add("UpdateMode", "U");

                object dit = editedItem.GetDataKeyValue(KeyNameValue);
                log = logHelper.getlogger(ref log, Logger: "RadDataForm1_GetValues");
                log.logDebug(logMessage: "RadDataForm1_NewValues"+ "NewValues: " + newValues.Count);
                DynamicUILayoutHelper.UpdateEntityData(Entity, ref log, dit.ToString(), newValues);
                Raddataform1.Attributes["Updating"] = "false";
                if (IsBoundToGrid)
                {

                    GridEditFormItem item = (GridEditFormItem)this.NamingContainer;
                   // EntityTableUIControl parentgrid = (EntityTableUIControl)item.OwnerTableView.Parent.Parent.Parent;
                    EntityTableUIControl parentgrid = (EntityTableUIControl)item.OwnerTableView.Parent.Parent.Parent;
                    // EntityTableUIControl parentgrid = (EntityTableUIControl)editedItem.Page.FindControl("RadGridUI");
                    if (parentgrid == null)
                    { throw new Exception("Parent Grid Not Found!"); }

                    if (UpdateMode == Mode.Update)
                    {
                        if (GridItemIndex != -1)
                        {
                            if (parentgrid.Grid.Items[GridItemIndex] != null)
                            { parentgrid.Grid.Items[GridItemIndex].FireCommandEvent("Cancel", ""); }

                        }
                    }
                    else if (UpdateMode == Mode.Insert)
                    {

                        if (parentgrid.MasterTable.IsItemInserted)
                        {
                            parentgrid.Grid.MasterTableView.GetInsertItem().FireCommandEvent("Cancel", "");
                        }

                    }
                }

            }
            catch (Exception ex)
            {
                log.logError(logMessage: "RadDataForm1_ItemUpdating Error: " + ex.Message);
                // throw ex;
                ((TextBox)PageUIErrorNotification.ContentContainer.FindControl("txtpageui")).Text = log.logstr;
                PageUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "RadDataForm1_ItemUpdating Exit ");
                log.Flush(logger: "RadDataForm1_ItemUpdating");
            }


        }

        protected void Raddataform1_ItemCanceling(object sender, RadDataFormCommandEventArgs e)
        {
            logHelper log = null;
            try
            {
                log = logHelper.getlogger(ref log, Logger: "Raddataform1_ItemCanceling", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "Raddataform1_ItemCanceling Start");

                RadDataFormEditableItem editedItem = e.DataFormItem as RadDataFormEditableItem;


                if (IsBoundToGrid)
                {
                    GridEditFormItem item = (GridEditFormItem)this.NamingContainer;
                    // EntityTableUIControl parentgrid = (EntityTableUIControl)editedItem.Page.FindControl("RadGridUI");
                    EntityTableUIControl parentgrid = (EntityTableUIControl)item.OwnerTableView.Parent.Parent.Parent;
                    if (parentgrid == null)
                    { throw new Exception("Parent Grid Not Found!"); }

                    if (UpdateMode == Mode.Update)
                    {
                        if (GridItemIndex != -1)
                        {
                            if (parentgrid.Grid.Items[GridItemIndex] != null)
                            { parentgrid.Grid.Items[GridItemIndex].FireCommandEvent("Cancel", ""); }

                        }
                    }
                    else if (UpdateMode == Mode.Insert)
                    {

                        if (parentgrid.MasterTable.IsItemInserted)
                        {
                            parentgrid.Grid.MasterTableView.GetInsertItem().FireCommandEvent("Cancel", "");
                        }

                    }
                }

            }
            catch (Exception ex)
            {
                log.logError(logMessage: "Raddataform1_ItemCanceling Error: " + ex.Message);
                //throw ex;
                ((TextBox)PageUIErrorNotification.ContentContainer.FindControl("txtpageui")).Text = log.logstr;
                PageUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "Raddataform1_ItemCanceling Exit ");
                log.Flush(logger: "Raddataform1_ItemCanceling");
            }
        }
    }


}
Grids UI where Raddataform is used in EditformSettings.I am trying to click the Add icon from the Grid to open a RadDataform to edit/insert.
 <telerik:RadGrid ID="RadGridUI" AllowFilteringByColumn="true" MasterTableView-EditMode="EditForms"
        FilterType="Classic"
        EnableHeaderContextMenu="true"
        EnableHeaderContextFilterMenu="true"
        AllowMultiRowEdit="false"
        AllowMultiRowSelection="false"
        AllowAutomaticUpdates="false"
        AllowAutomaticDeletes="false"
        AllowAutomaticInserts="false"
        OnNeedDataSource="RadGridUI_NeedDataSource"
        OnDeleteCommand="RadGridUI_DeleteCommand"
        OnFilterCheckListItemsRequested="RadGridUI_FilterCheckListItemsRequested"
        OnItemCreated="RadGridUI_ItemCreated"
        OnItemCommand="RadGridUI_ItemCommand" OnItemDataBound="RadGridUI_ItemDataBound"
        EnableLinqExpressions="false"
        ClientSettings-AllowColumnsReorder ="true" 
        AllowSorting="true" runat="server" Width="100%" CssClass="GenericGrid">

        <MasterTableView Width="100%" CommandItemDisplay="Top" ShowGroupFooter="true" AllowFilteringByColumn="true">
            <EditFormSettings EditFormType="Template">
                <EditColumn UniqueName="EditCommandColumn1" />
                <FormTemplate>
                    <uc1:PageUIControl IsBoundToGrid="true" runat="server" ID="EditFormControl"  />
                </FormTemplate>
                <PopUpSettings ScrollBars="None" />
            </EditFormSettings>

            <CommandItemTemplate>


                <div style="color:black!important;" >

                    <asp:LinkButton ID="btnEditSelected" runat="server" CommandName="EditSelected" Visible='<%# RadGridUI.EditIndexes.Count == 0 %>'><i class="fa fa-pencil fa-lg"></i></asp:LinkButton>
                        <asp:LinkButton ID="btnUpdateEdited" runat="server" CommandName="UpdateEdited" Visible='<%# RadGridUI.EditIndexes.Count > 0 %>'><i class="fa fa-pencil fa-lg"></i></asp:LinkButton>
                        <asp:LinkButton ID="btnCancel" runat="server" CommandName="CancelAll" Visible='<%# RadGridUI.EditIndexes.Count > 0 || RadGridUI.MasterTableView.IsItemInserted %>'><i class="fa fa-ban fa-lg"></i></asp:LinkButton>&nbsp;&nbsp;
                       <asp:LinkButton ID="btnNew" runat="server" CommandName="InitInsert" Visible='<%# !RadGridUI.MasterTableView.IsItemInserted %>'><i class="fa fa-plus-square fa-lg"></i></asp:LinkButton>
                        <asp:LinkButton ID="btnInsert" runat="server" CommandName="PerformInsert" Visible='<%# RadGridUI.MasterTableView.IsItemInserted %>'><i class="fa fa-plus-square fa-lg"></i></asp:LinkButton>&nbsp;&nbsp;
                        <asp:LinkButton ID="btnDelete" OnClientClick="javascript:return confirm('Delete all selected customers?')" runat="server" CommandName="DeleteSelected"><i class="fa fa-trash fa-lg"></i></asp:LinkButton>&nbsp;&nbsp;

                </div>

            </CommandItemTemplate>
        </MasterTableView>

        <ClientSettings>
            <Selecting AllowRowSelect="true"></Selecting>
            <ClientEvents OnGridCreated="GenericGridCreated"   />
            
        </ClientSettings>
    </telerik:RadGrid>
and the code where the raddataform is called in insert mode from grids itemcommand.:I tried all the ways in the below commented code:
 protected void RadGridUI_ItemCommand(object sender, GridCommandEventArgs e)
        {

            logHelper log = null;
            PageUIControl gridDataform;
            try
            {
                log = logHelper.getlogger(ref log, Logger: "RadGridUI_ItemCommand", userid: UserID, userContext: UserContext);
                UserContext = log.vUserObj;
                log.logDebug(logMessage: "RadGridUI_ItemCommand Start");
                log.TaskOrderID = TaskOrderID;


            if (e.CommandName == RadGrid.InitInsertCommandName)
            {
                e.Canceled = true;
                        log.logDebug(logMessage: "Setup Dataform for Insert");
                e.Item.OwnerTableView.InsertItem();
                    GridEditableItem insertedItem = e.Item.OwnerTableView.GetInsertItem();

                    if (insertedItem == null)
                    { throw new Exception("No Inserted Item Found"); }

                    gridDataform = (PageUIControl)insertedItem.FindControl("EditFormControl");
                    gridDataform.UpdateMode = PageUIControl.Mode.Insert;
                    gridDataform.UserContext = this.UserContext;
                    gridDataform.UserID = this.UserID;
                    //String MyUserControlId = GridEditFormItem.EditFormUserControlID;
                    //    gridDataform = insertedItem.FindControl(MyUserControlId) as PageUIControl;

                    if (gridDataform == null)
                    { throw new Exception("No Grid Found"); }

                    log.logDebug(logMessage: "Fire Insert Mode for DataForm");

                  // gridDataform.DataForm.IsItemInserted = true;
                    //  gridDataform.DataForm.Rebind();
                     gridDataform.DataForm.Items[0].FireCommandEvent("InitInsert", "");
                  //  gridDataform.DataForm.ShowInsertItem();
                    //gridDataform.DataForm.DataSource=RadDataFormEmptyItem
                  //  gridDataform.DataForm.Items.FireCommandEvent("InitInsert", "");
                   // gridDataform.DataForm.Items[0].FireCommandEvent("InitInsert", "");
                   // gridDataform.DataForm.Items.Add();
                }
                else if (e.CommandName == "RowClick")
                    if (ItemCommand !=null)
                    { ItemCommand(sender, e); }
                    

            }
            catch (Exception ex)
            {
                log.logError(logMessage: "RadGridUI_ItemCommand Error: " + ex.Message );

                ((TextBox)TableUIErrorNotification.ContentContainer.FindControl("txtnot")).Text = log.logstr;
                TableUIErrorNotification.Show();
            }
            finally
            {
                log.logDebug(logMessage: "RadGridUI_ItemCommand Exit ");
                log.Flush(logger: "RadGridUI_ItemCommand");
            }

        }

I am also attaching the screen shot for better understanding of how the ui looks with the raddataform  which opens with the above working code if there is data in grid.
0
Maria Ilieva
Telerik team
answered on 31 Mar 2016, 11:15 AM
Hello,

The DataForm usage in your code is out of the designed usage of the control. DataForm itself is DataBound control and can be used stand-alone, or outside(but related) the grid

The EditForm of the grid does not need databound control inside. So your user control can just have the inputs, without wrapping them in DataForm. For reference see this demo:
http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/edit-form-types/defaultcs.aspx


Regards,
Maria Ilieva
Telerik
Tags
DataForm
Asked by
jyotsna
Top achievements
Rank 1
Answers by
Maria Ilieva
Telerik team
jyotsna
Top achievements
Rank 1
Share this question
or