Harlem 98

Harlem 98

  • 2k
  • 161
  • 5.4k

Performing Edit/Insert operations in grid

Nov 15 2021 4:30 PM

hello community!

I am trying to perform Insert/edit operations in my grid through the usage of a WebUserControl Edit Form. In the context of my architecture, the form should be triggered through the itemcommand event.

I got 2 problems, i am not calling the form the right way, and i am getting an error in my bll method, that a i can't explain.

// UI Buttons with the commandname ahve the following structure

<CommandItemTemplate>
    <telerik:RadButton  CommandName="InitInsert" IsinEditmode="true" RenderMode="Lightweight" ID="AddNewRecordButton"  runat="server" " NavigateUrl="~/Views/Projectos/Equipa/ViewEmissaoTimeSheetEdit.ascx" CommandArgument="ID">
    </telerik:RadButton>
</CommandItemTemplate>

//BLL Insert/update and save methods, all 3 with similar structure ( "ListagemTimesheet" represents the DAL )


public void InsertFile(ListagemTimesheet model)
{
    try
    {
        using (GestaoProjectosEntities lt = new GestaoProjectosEntities())
        {
            var result = lt.ListagemTimesheets.SingleOrDefault(b => b.ID == model.ID);
            if (result != null)
            {
                result.ID = model.ID;
                result.IDRecursoHumano = model.IDRecursoHumano;
                result.IDEstadoTimesheet = model.IDEstadoTimesheet;
                result.FileContent = model.FileContent;
                result.Ficheiro = model.Ficheiro;
                result.DataEnvio = model.DataEnvio;
                result.FileTipo = model.FileTipo;
                result.AssinaturaTimesheet = model.AssinaturaTimesheet;
                result.Observações = model.Observações;
                lt.SaveChanges();
            }
        }
    }

    //Grid_ItemCommand events

    if (e.CommandName == RadGrid.InitInsertCommandName)
    {
        UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);

        //Insert new values
        Hashtable newValues = new Hashtable();

        newValues["IDRecursoHumano"] = (userControl.FindControl("rdpInvestigador") as RadTextBox).Text;
        newValues["IDEstadoTimesheet"] = (userControl.FindControl("rdbEstado") as RadComboBox).Text;
        newValues["AssinaturaTimesheet"] = (userControl.FindControl("txtAssinaturaTimesheet") as RadTextBox).Text;
        newValues["Observações"] = (userControl.FindControl("Obervaçoestxt") as RadTextBox).Text;
        newValues["DataEnvio"] = (userControl.FindControl("DataEnvio") as RadDatePicker).SelectedDate.ToString();
        newValues["FileContent"] = (userControl.FindControl("RadAsyncUpload1") as RadAsyncUpload).TargetFolder.ToString();
        try
        {
            this.listagembll.InsertFile(model); //model does not exist in current context error
        }
        catch (Exception ex)
        {
            //ShowErrorMessage();
        }
    }

    if (e.CommandName == "Edit")
    {
        foreach (GridEditableItem item in gvTimesheets.EditItems)
        {
            GridEditFormItem formItem = e.Item as GridEditFormItem;
            string strID = item.GetDataKeyValue("ID").ToString();
            GridDataItem dataItem = formItem.ParentItem as GridDataItem;
        }

        UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);
        Hashtable newValues = new Hashtable();

        newValues["IDRecursoHumano"] = (userControl.FindControl("rdpInvestigador") as RadTextBox).Text;
        newValues["IDEstadoTimesheet"] = (userControl.FindControl("rdbEstado") as RadComboBox).Text;
        newValues["AssinaturaTimesheet"] = (userControl.FindControl("txtAssinaturaTimesheet") as RadTextBox).Text;
        newValues["Observações"] = (userControl.FindControl("Obervaçoestxt") as RadTextBox).Text;
        newValues["DataEnvio"] = (userControl.FindControl("DataEnvio") as RadDatePicker).SelectedDate.ToString();
        newValues["FileContent"] = (userControl.FindControl("RadAsyncUpload1") as RadAsyncUpload).TargetFolder.ToString();

        try
        {
            foreach (DictionaryEntry entry in newValues)
            {
                //listagembll.UpdateFile(model);
            }
            }
            catch (System.Exception)
            {
                //ShowErrorMessage();
            }
            //GridEditFormItem editFormItem = (GridEditFormItem)e.Item;
        }
    }

Any ideas on what to do here?


Answers (2)