Base solution for your next web application

Activities of "slamj1"

When running the ASP.NET ZERO RAD Tool version 1.5.6, a NullReferenceException is thrown (see attachment).

The tool worked for us a few days ago. What has changed since is we updated to VS.NET 2017 15.8.4 (from 15.8.3) and .NET core SDK 2.1.402 (from SDK 2.1.401). Unfortunately without the source code to the tool, it makes it difficult to diagnose on our end.

Cheers.

@yekalkan thanks for the reply - just tried this this morning and it is not the RAD tool, but rather a bad model column in the migrations snapshot.

Hi @rnguyen, I see from your request screenshot(s) you are hitting the url http://aixem.com. Your ServerRootAddress, ClientRootaddress CorsOrigin must be set according to the url requested (i.e. http://aixem.com).

Your other screen indicates http://xyz.com which would of course be incorrect given the screenshots you've provided. In this case, this would definitely produce a CORs pre-flight access error.

Can you provide a screenshot of your network tab under the F12 tools? This would indicate any access errors.

I'm unable to support you via Teamviewer, but you need to ensure your CORs settings are correct. As @mumfie suggested check your apppool permissions for the site. Ensure whatever account you're running under has read/write access to your host database.

Also, check your app_data log folder (ensure your apppool account has modify/write access to this folder as well), the logs should provide more info.

@rnguyen, glad to hear you found the problem.

Some additional info for other users is that the ASP.NET core environment can also be set right in the Windows environment under Control Panel > System > Advanced system settings | Environment variables.

Some addtional notes on our experience with upgrading to V6.0:

  1. FreezeUI has replaced the spinner. When using the previous spinner component, we would pass the div id to it (when used programatically), so that only that component would be blocked. Since JQuery was removed, that code broke, and the default CRUD grids also did not localize the spinner correctly (blocked the whole screen instead). In order to get FreezeUI to function on any arbitrary component that required a loading indicator, we choose to add position:relative to the CSS class attached to the desired div and set the [busyif].

  2. Since JQuery was removed, our metronic Accordian control ceased to expand. IMHO, Metronic's accordian that is better than Angular's, so we simply re-added JQuery (also requires BootstrapJS) back in specifically for that control.

Hi @mdframe, I've currently implemented NServiceBus for this. It may be more than you require but NSB is a fully distributed enterprise service bus and can use MSMQ + distributed transactions. It's a dual source model, but the commercial cost (25.00 per node/month) beats most any other vendors' products for ROI.

Answer

Hi @klawsuc, Turbo Table is being used in ANZ currently, at least as of V 6.0. It's being used in Roles, Tenants, Users etc. p-table is TurboTable I beleive.

Let me put something together for you shortly.

Answer

Hi @mdframe, we use the tables rowexpansion feature on the frontend. There are a couple of tricky parts on the angular side. Below is a sample client-side abridged code with the key parts:

 <p-table #dataTable
                             (onLazyLoad)="getSupplementalMaintenanceList($event)"
                             [value]="primengTableHelper.records"
                             dataKey="supplementalMaintenanceList.id"  
                             rows="{{primengTableHelper.defaultRecordsCountPerPage}}"
                             [paginator]="false"
                             [lazy]="true"
                             [scrollable]="true"
                             ScrollWidth="100%"
                             [responsive]="primengTableHelper.isResponsive"
                             [resizableColumns]="primengTableHelper.resizableColumns">
                             .
                             .
                             .
              <ng-template pTemplate="body" let-record="$implicit" let-rowData let-expanded="expanded">
                            <tr>
                                <td style="width: 3em">
                                    <div>
                                        <a href="#" [pRowToggler]="rowData">
                                            <i [ngClass]="expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'"></i>
                                        </a>
                                    </div>
                                </td>
                                .
                                .
                                .
                <ng-template pTemplate="rowexpansion" let-record let-rowData>
                            <div class="primeng-datatable-container">
                                <td style="width: 3em"></td>
                                <td colspan="6">
                                    <span>
                                        <supplementalMaintenanceListDetail></supplementalMaintenanceListDetail>
                                    </span>
                                </td>
                            </div>
                        </ng-template>
     </p-table>    
     

And the .ts file for the parent will have the child defined as a component:

        @ViewChild('supplementalMaintenanceListDetail') supplementalMaintenanceListDetail:              SupplementalMaintenanceListDetailComponent;
     

The important parts are the dataKey="supplementalMaintenanceList.id" and the <ng-template pTemplate="rowexpansion" let-record let-rowData>. The dataKey will get passed to the child component when you expand the row.

Notice the <supplementalMaintenanceListDetail></supplementalMaintenanceListDetail>? That is the child table bundled as an angular component. It receives the parent id.

That's about all you have to do on the client side - fairly basic.

As far as the server side, you don't need to do anything special are far as the basic CRUD operations are concerned. The parent will use it's service, while the child will use it's own. The child will of course need to have the parent ID filled in on it's entity member in order to perform the CRUD operations.

Hope that helps. Sam.

Showing 1 to 10 of 16 entries