Activities of "Spospisil"

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

If you're creating a bug/problem report, please include followings:

  • ABP Framework version: v6.0.0
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

Hi,

I've created another test project showing the issue I am not having with being able to save a entity to the database. See the below link for the git repo and the steps to reproduce. What does not make sense is that I can call my custom application services and subsequent associated repository methods when the logic is in a class inherited from AbpViewComponent (Which is in the web project too) but not from just a normal class (DashboardStorageExtension).

Run the migrations associated with the solution Login as host user/admin From the Setup Menu click 'Setup' From the resulting Dashboard list page choose the 'New Dashboard' button on the right. Click 'Create' in the middle of the screen Drag a dashboard control onto the main part of the designer From the hamburger menu in the upper left click the 'Save' option

The error occurs in the DashboardAppService class on the below highlighted line. For some reason it cannot insert a new record into the table. I was able to get past the previous issue of the service itself not being injected properly but now it seems like I cannot do anything database related from my injected service.

I've given access to https://github.com/maliming for the git repository that contains the example project showing the issue

Hi,

Any update on this?

If you're creating a bug/problem report, please include followings:

  • ABP Framework version: v6.0.0
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

I have 3 menu items at the 2nd structural level of my left side nav menu. The structure is as follows. As shown in the screenshot when I click the Test Sub Menu the 3 menu items belonging to Test Sub Menu do not show. If you want to reproduce this issue just add the below code to your class that implements the IMenuContributor interface.

Test Menu 1 Test Sub Menu Test Menu Item 1 Test Menu Item 2 Test Menu Item 3

Code to reproduce

    var miMenu1 = new ApplicationMenuItem(
        name: "TestMenu1",
        displayName: "Test Menu 1",
        elementId: "TestMenu1",
        order: 1
        ).RequireAuthenticated();

    var miMenu1SubMenu1 = new ApplicationMenuItem(
        name: "TestMenu1SubMenu1",
        displayName: "Test Sub Menu",
        elementId: "TestMenu1SubMenu1",
        order: 1
        ).RequireAuthenticated();

    miMenu1SubMenu1.Items.Add(
        new ApplicationMenuItem (
        "TestMenuItem1",
        "Test Menu Item 1",
        "TestMenuItem1",
        order: 1
        ).RequireAuthenticated());

    miMenu1SubMenu1.Items.Add(
        new ApplicationMenuItem(
        "TestMenuItem2",
        "Test Menu Item 2",
        "TestMenuItem2",
        order: 2
        ).RequireAuthenticated());

    miMenu1SubMenu1.Items.Add(
        new ApplicationMenuItem(
        "TestMenuItem3",
        "Test Menu Item 3",
        "TestMenuItem3",
        order: 3
        ).RequireAuthenticated());

    miMenu1.Items.Add(miMenu1SubMenu1);

    //Add Application Security Group menu item
    context.Menu.GetAdministration().AddItem(miMenu1);

Hi,

I'm still confused by your response. As you previously stated (before I provided a solution) tiered projects will not work in the manner that I was trying to use it in. Now your taking random statements from my code and adding comments that seem to be at the very least out of context.

Since I gave an example on how ABP users can get around the issue I was having, this ticket can be closed. Please don't deduct from my support question quota.

Hi,

I'm a little disappointed with your answer overall as you are suggesting that if you use an ABP tiered solution approach you cannot use the DevExpress UI. I'm pretty sure if that were the case it would affect the number of organizations that use ABP's framework to develop their enterprise solutions with as DevExpress is a popular web control provider.

That being said I feel what you should have probably explained or suggested is that if DevExpress had a way to call the tiered solution's API layer from the misc. control's functions via JavaScript then all ABP's inherent functionalities would work as advertised as the Application layer would function as expected.

Simple answers like 'because tiered project' and 'you can use DevExpress ui in a monolithic application' are not very helpful to ABP's user base as it does not offer any possibilities of how to get 3rd party controls to work with ABP.

Despite this, after doing some more research, the solution to utilizing the DevExpress Dashboard control, was to call my ABP tiered solution's Web API layer by using JavaScript to find the 'Save' menu item on the Dashboard and overriding the .Click event with an ajax call to the API's endpoint.

In this way DevExpress will recognize ABP's 'Application Service' so you can pass along any relevant data to your ABP service while giving you access to all of ABP's build in dependency injected services.

JavaScript needed

function onBeforeRender(sender) {
    var dashboardControl = sender;
    
    dashboardControl.registerExtension(new DevExpress.Dashboard.DashboardPanelExtension(dashboardControl));
    var toolboxExtension = sender.findExtension("toolbox");
    if(toolboxExtension) {
        var saveMenuItem = toolboxExtension.menuItems().filter(function (menuItem) { return menuItem.id == 'save' })[0];
        
        if(saveMenuItem) { 
        
            saveMenuItem.click = function(s, e) {
                //Save the variable
                var xml = dashboardControl.dashboard().getJSON();

                var apiurl = abp.appPath + "api/DashboardSample/Test/save-function/" + "123";

                console.log(apiurl);
                $.ajax({
                    url: apiurl,
                    type: "POST",
                    dataType: "json",
                    data: { dashboardDef: JSON.stringify(xml) },
                    success: function (result) {
                        console.log("Success!");
                    },
                    error: function (xhr, textStatus, errorThrown) {
                        alert('Request Status: ' + xhr.status + '; Status Text: ' + textStatus + '; Error: ' + errorThrown);
                    }
                });
            };  
        }
    }
}

Well you folks support devexpress ui with the report designer, so why not the dashboard control?

There’s a post in the community portal showing how to use the reporting designer and a promise to do the same For the dashboard control But nothing was ever done with it

https://github.com/abpframework/abp/issues/6977

So what do you suggest in order to get the solution to work so I can inject the repository into this class?

I’m looking for your guidance on how to structure this in abp to get it to work with devexpress.

Thanks

Just sent you an email.

Hi,

Can you provide your email and I will send it to you?

Thanks.

Thanks,

See the below link. Steps to reproduce.

Run the migrations associated with the solution Login as host user/admin From the Setup Menu click 'Setup' From the resulting Dashboard list page choose the 'New Dashboard' button on the right. Click 'Create' in the middle of the screen Drag a dashboard control onto the main part of the designer From the hamburger menu in the upper left click the 'Save' option

The error occurs in the DashboardStorageAppService class and as you can see by the error I cannot reference the Dashboard repository I created in the solution. I cannot inject it either in the constructor.

https://github.com/spospisil/ABPDevexpressDashboard

Showing 241 to 250 of 375 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 12, 2025, 10:20