[EDIT GRID] Add row to datatable variable

I built a datatable variable in my App (still blank). Then I used that as the data source to my EditGrid (is this correct?). I manually added the table columns.

Whenever a user adds a row to Edit Grid, I want that row to be added in the datatable. I am using the expresiion below.

Processes.ALLDATATYPES.in_datatable.AddRow(MainPage.EditGrid.NewItem)

If I try to print it the contents of the datatable, it does not show anything but the RowCount is correct. How to add data row correctly to a datatable from EditGrid?

Note: I do not want to use Entity. I need a datatable variable to pass it as input argument to a process.

@Aniesah_Malong i am just providing some steps which coluld solve your issue. Let me explain what I know about it.

Its about adding data from an EditGrid to a DataTable variable. Here’s a breakdown of the scenario and potential solutions:

Scenario:

  • A DataTable variable is created in the application.
  • An EditGrid allows users to enter data and add new rows.
  • The goal is to add these new rows from the EditGrid to the DataTable.

Attempted approach (with issue):

The code snippet Processes.ALLDATATYPES.in_datatable.AddRow(MainPage.EditGrid.NewItem) is used to add a new row to the DataTable. However, while the RowCount reflects the addition, the data itself isn’t showing up.

Possible reasons and solutions:

  1. Missing Data Assignment:

    • The MainPage.EditGrid.NewItem might not be directly assigning values to the corresponding columns in the DataTable. You might need to iterate through the NewItem object and explicitly assign each value to a new row in the DataTable.

    Here’s an improved approach:

    Dim newRow = dt.NewRow  ' Create a new row in the DataTable
    For Each cell In MainPage.EditGrid.NewItem  ' Loop through each cell in the new row
        newRow(cell.Key) = cell.Value  ' Assign cell value to corresponding column in new row
    Next
    dt.Rows.Add(newRow)  ' Add the newly created row to the DataTable
    
  2. Data Type Mismatch:

    • The data types of the values in NewItem might not match the data types of the columns in the DataTable. Ensure compatibility between the data types to avoid issues.

Additional Considerations:

  • Make sure the DataTable variable is correctly initialized with appropriate columns and data types before attempting to add rows.
  • You can use debugging tools within UiPath Studio to inspect the values in NewItem and verify data assignment.

If you can provide more details about the structure of your DataTable and the NewItem object, I can offer a more tailored solution.

image

I am using the expression below when initializing the datatable. I am adding a blank row at first and it is reading the correct number of columns in Apps.
image

However, I do not want it to initially have a row. If i use the expression below, it is reading the columns as 0.
image

Below is the EditGrid config.
image

For the data source of each column in EditGrid, how do we correctly bind it with the columns of the datatable?

Have you tried store the datatable as an app variable(datatable)?
From there you can then dt_apptable.clone() to retain the structure, but not keeping any rows.