I’m not sure about this one. But similar errors in VWG are caused by the wrong compilation when the app has some custom resources. VWG added a build step in the VS project to transform resources when compiling.
Looks like the same issue with the docked control. The viewport in your devices seem to be too big. Wisej already adjusts the position of the popups, see attached screenshot on my phone and attached sample.
You can also see in there the usage of a spacer in the top FlexPanel with FillWeight = 1 to push the button to the right.
The placement mode can be controlled in the theme and in the code if you call contextMenu.Show(). In the theme you can set all the MPlacement properties: http://qooxdoo.org/qxl.apiviewer/#qx.ui.core.MPlacement.
That was fast! Thank you, Luca! It certainly helps, this is what I thought too.
Thanks again and have a peaceful weekend.
Alex
Dependency Injection and the related concepts are not new to .NET Core. In fact .NET Core doesn’t provide any support for DI. A lot of bloggers get it wrong because they think that .NET Core is the same as ASP.NET Core. For DI in .NET Core you need to use a DI library. Microsoft provides one, but there are many. ASP.NET Core supports DI and it’s mixed in their application builder architeture based on OWIN.
In, lets call it standard .NET or old .NET, dependency injection existed since version 1.1 I believe. It’s nothing else than a coding patterns and a related service container. In .NET (old, standard, core, new) it is based on System.ComponentModel.IServiceProvider. Which is all it is. A central place where you can retrieve and store instances or singletons implementing certain interfaces.
You can either implement your own or use one of the many containers. The designer architecture in Visual Studio (and Wisej) it uses it heavily. I usually create my own in projects where I need it and avoid all the overhead and quirky syntax.
I guess this is a good list: https://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx
In Wisej you can rely on the Application.Session to store session instances.
Adding parameters to constructors is a necessity in .NET Core because those constructors are called on every round trip since those objects are destroyed and recreated every time. Otherwise you’d have to retrieve the provider from the session. It doesn’t make sense in Wisej because the object is persisted so you can keep a reference to the service.
Injecting the DbContext in a controller constructor is a way to preserve the DbContext instance across requests. There is no need to do that in Wisej.
HTH
Here it is:
Hi Luca.
Thank you so much for the reply and the sample.
And yes, mine was set up just like yours, same docking configuration and it also worked just fine on emulators. The problem is when I use an actual mobile phone, in this case an iPhone SE and and iPhone 8. I got puzzled and to test it I published your own sample… surprise, got the same results, attached the screen-shot.
However, I have a feeling I have found out what is going on. I have 3 monitors in my dev machine, one of them having the resolution of 3840 X 2160. So, when I edit the Page, it shows it huge and apparently its size is set according to this monitor resolution. For a Window, we can define its size for a Phone profile, but for the Page, it looks like we can’t, so we are not able to say that for the Phone this Page should look smaller, and being huge, depending on the proportions, the Responsiviness is producing weird results on the actual phone. If I open your sample, edit your page on another monitor (normal resolution 1920 X 1080), build the solution and copy the DLL to the publishing server, it works fine. On the other hand, if I open it on my big monitor, save it, build it and publish it, I get the result on the screen-shot attached.
So, the question is, are we able to limit the Page size in the designer for different profiles? Does this even make any sense?
By the way, thanks for the fancy Blazor nomenclature. I will make sure I will show it off around. Man, I will never catch up.
Cheers.
Ivan
Hi Ivan,
I depends on how you arranged the docking. When you use the Desktop control in a Page then the main container is the Page and the Desktop is a child in the page. Floating windows will be managed by the Desktop and limited to the Desktop but the controls in the Page are at the same level.
If you want the Desktop to be the main container then using Application.Desktop = new Desktop() (or new MyDesktop()), in that case there is no MainPage but there is a main Desktop.
Coming to your sample, I tried something similar but I arranged the docking to have the navbar and flexlayout top panel reduce the space used by the desktop child. You can do that by using Bring to Front and Send to Back in each control in the designer or use the outline viewer. See attached video and notice how the dock fill changes when I change the position of the control in the rendering tree (to use a fancy blazor word instead of control collection, children, …)
See also attached sample and video https://www.screencast.com/t/ZMo8uBtZmHsZ
Hi Levie.
Got it. Brilliant.
Thank you.
Ivan
Hi Ivan,
They’re snap lines to help you align and snap controls in the designer. You can turn it off by clicking the little tab part on the ruler.
We use them when building applications with custom size specifications.
Best,
Levie
Hi Cristian,
We talked about the issue and actually believe that it should stay the way that it is now.
If you want to add buttons beside each other horizontally as you did in your screenshot, you should just add RibbonBarItemButtons to a group. They will automatically be horizontal.

The RibbonBarItemButtonGroup can be used to stack multiple button (groups) vertically.
Like in this example:

You also have the option to insert a divider into a group. It’s one of the options in the dropdown. It will always fill vertically.
If you have any questions because this isn’t clear, please let me know! I know it’s a bit confusing.
Best regards,
Levie
Hi Luca.
Wow, that was quick. And easy!
Thank you so much, it worked like a charm.
And it is documented, my bad.
Cheers.
Ivan
Wisej connects to wss:// when the url is https:// because it mandatory or the browser will not allow a ws:// connection over https:///
The rewrite rule probably messes it up since it’s only for http. In Wisej it’s a lot simpler, simply add
“secure”: true
in Default.json
It should be document and commented in Default.json already.
Logged as #2412 Sorting a DataGridView bound to a read-only IList shouldn’t sort the data source.
It will behave like it does closer to winforms: ignore the sorting on IsReadOnly IList and ignore it on IBindingList that don’t support sorting. If does programmatically by the it will throw an exception.
Thanks Cristian!
Logged as issue #2410. It will be fixed in our next release!
Best,
Levie
Hi Cristian,
I wasn’t able to replicate the issue, could you please provide a small sample that demonstrates the issue?
What’s the error you’re getting?
Best regards,
Levie
Hi Wilfred,
I logged it internally as checking if the list IsReadOnly = true and in that case ignore the sorting or throw an exception (we haven’t decided yet, suggestions?)
In your test I always get IsReadyOnly = false on all lists so this wouldn’t fix the problem in that case.
In general, it is impossible to sort a list without moving the items in it.
A data-storage bound list should support sorting to it can take over the sorting and update the grid back, or ignore it. A normal list can be sorted without problems.
Otherwise the only other option is to disable sorting, use custom sorting, which can be done by implementing SupportsSorting on a IBindingList object or overriding the Sort() method.
/Luca
Hi Norm,
Did you see the Syncfusion Integration Test source code here?
https://github.com/iceteagroup/Wisej-Ext-Syncfusion
You can see a live demo here:
http://demo.wisej.com/syncfusion/#ejPivotClient
If you let me know what specific feature you’re trying to integrate I can help provide a solution.
The basic integration is this:
// Changing properties
this.ejPivotClient1.Options.enableCellClick = true;
// Calling methods and returning the result (async)
var data = await this.ejPivotClient1.Instance.getJSONRecordsAsync();
// Attaching to events
this.ejPivotClient1.Instance.cellSelection += new WidgetEventHandler(ejPivotClient1_WidgetEvent);
You can find a full list of members, methods, and events for the PivotClient here: https://help.syncfusion.com/api/js/ejpivotclient
Please let me know if you have any more questions or need help with the integration!
Best,
Levie
Hi Luca,
Did you log the sorting a readonly list bug? Any Update?
How about the suggestion in my previous post:
“about adding a property to DataGridView to force Wisej to always use it’s own sorting implementation?”
Sorting a list by physically swapping records is very bad as all the records is marked as updated and needs to be saved to the database as mentioned in the first post. I still have no solution for this except for disabling the sort on the grid.
Thanks.
Best regards,
Wilfred
Sorry for the delay. There was a bug in the bindToGrid() javascript function that has been fixed in the latest 2.1 release. See attached sample.
