Hi Neil,
Thank you for reporting the issue, it’s a confirmed bug and we will let you know as soon as a fix is released!
Best,
Alaa
Regarding your question, I am attaching the operating procedure and the comparison screen between the test program source and VS2022.
The attached sample program source is created during debugging by starting it up with debugging.
In the list of scripts in the Script Docments, the following line should appear
Widget.startup.jp” in the list of scripts in Script Docments.
InitScript scripts are created dynamically, so the “msg = ‘Hello Message!!!'” on line 40 should be a breakpoint in the running WebWidget.
and press the “Message” button from the running web program, the script is created dynamically in the Widget control with the script name “hello message!
In VS2022 version 17.2.6, the script pauses at the breakpoint.
VS2022 version 17.4.0 does not pause at breakpoints.
Hi Takao,
Can you please wrap up a small sample application for this issue?
Also, it would be much helpful if you provide a full description of what was working before and isn’t now, with the addition of the steps to reproduce!
TIA,
Alaa
Hi Alaa.
The answer was that the PrintPreview extension does not support paper larger than A3 size, but the browser you are using could be the problem.
Analyzing the program source of the PrintPreview extension, we found that it uses “Microsoft Print To PDF” to convert the PDF file as intermediate data for the print preview, but this may be the cause of the problem.
Microsoft Print To PDF only allows a maximum paper size of A3.
Hi Nicholas,
Any version of Wisej that’s prior to version 3.0 (That means Wisej.NET 2.5 and below) has the ThemeBuilder bundled when you use the installer.
Can you provide more details as to why you would need an older build?
TIA,
Alaa
Hi Huỳnh,
Like Gerhard mentioned, it’s best to use the System.Net namespace instead of System.Web which is available only in .NET Framework 4.8.
For the “SqlDataSourceEnumerator.Instance.GetDataSources” error, it’s implementation is only available in .NET Framework 4.8, Microsoft still didn’t implement it in its System.Data.SqlClient for .NET Core.
There’s an alternative however, you can use https://github.com/mrsquish/SqlBrowserClient.
You can keep yourself updated about its implementation by looking at https://github.com/dotnet/SqlClient/issues/17 .
This is not a Wisej issue.
Best,
Alaa
Hi Alaa,
I’m still doing something wrong. I added this to the config file “localization.js”: “Syncfusion2/localization-%culture%.js”
Is that a file/path I have to provide myself?
executing ej2Base.Culture = new CultureInfo(“de-DE”); still throws an exception (see screenshot)
Hi Huỳnh,
Unfortunately, you can’t use regular ASP.NET Controls with .NET6.
When you run your application with .NET 6, you’re running it as an ASP.NET Core application, and regular ASP.NET Controls don’t work in that environment.
You’ll have to change the Target Framework to .NET Framework 4.8 (net48) for it to work correctly!
Best,
Alaa
Hi Sascha,
The solution you found in the demo basically loads all the relevant JSON files that correspond to the de-DE Culture.
Check https://github.com/iceteagroup/wisej-demobrowser/blob/main/Wisej.DemoBrowser.Premium/Wisej.Web.Ext.Syncfusion2.Demo/Syncfusion2/cldr-data/de-DE/localeText.json as an example of it!
But in order to load it, you’ll have to add the localization package to your Wisej.Ext.Syncfusion2.json configuration file like the one here: https://github.com/iceteagroup/wisej-demobrowser/blob/main/Wisej.DemoBrowser.Premium/Wisej.Web.Ext.Syncfusion2.Demo/Wisej.Web.Ext.Syncfusion2.json
You can simply pull the files from the demo repository and add them to your project, just make sure that you specify the Culture by using ej2base.Culture = ej2Base.Culture = new CultureInfo(“de-DE”);
HTH,
Alaa
Best would be to have a code review by Wisej guys.
Out-of-memory situations are not strictly Wisej problem, but they can point you to memory leaks and help improving session handling.
What you can do yourself:
During debugging, you can: (1) take a memory snapshot, (2) open a window, (3) do some operations, (4) close the window, (5) take another memory snapshot.
The Diagnostic Tools will show you all object created between the snapshots.
3. If really critical (like you are losing reputation and need a quick fix), you can (temporarily) force-run a garbage collection, until you resolve the issue.
Do not run GC as a permanent fix.
This should be called after a client disposes a window.
This will freeze all clients for ~1 second.
System.Runtime.GCSettings.LargeObjectHeapCompactionMode = Runtime.GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced, True, True)
System.Threading.Thread.Sleep(100)
GC.WaitForPendingFinalizers()
System.Threading.Thread.Sleep(100)
GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced, True, True) ‘ collect dead objects
System.Threading.Thread.Sleep(100)
4. In your web.config, set something like
<configuration>
<runtime>
<gcServer enabled=”true” />
<gcConcurrent enabled=”true” />
<gcAllowVeryLargeObjects enabled=”true” />
<GCLOHThreshold enabled=”4194304″ />
</runtime>
</configuration>
5. Even you have 32 GB RAM, increase your paging file to be fixed-size 16 GB.
But better ask Wisej team for special support.
Here’s a sample. Hope it gives you a general idea on how to make clever use of the Movable property.
Replace the sample image with one of your own to test it with different sizes.
(You can move and resize the red box)
This would be something I’d like too.
I’ve created an application which uses instrumentation diagrams and these images are over 5000 by 3500 pixels give or take. The panning is easy to implement in WiseJ by clever using the “Moveable” property. My application has over 400 objects which are drawn over the big image and these objects can be selected, moved and resized. The Movable property (as far as I know) is handled on the client which makes it super fast. I could be wrong but though.
Anyway, if you’d like to try this:
Now run the application and try dragging the image arround.
To get the cursor position in relation to the image you can use the MousePosition and the scrollbar offsets of the Panel.
I’ve not been able to implement zooming because of memory issues so if WiseJ could implement pan/zoom that would be so cool!
Attached a screenshot of the application with picturebox panning. The red squares are selectable object, the numbers are movable in realtime.
Hi Neil
I’m afraid that’s not an option with the LinkLabel.
However, you can use plain CSS in your HTML, or you can use a CSS Class.
Take a look at the modified sample I just attached, I have used the Stylesheet component to write a CSS class that I used later inside the Label.
HTH,
Alaa
Thanks Alaa – the reason we’re using the Label is because we have multiple links in the one label. We’re also using something like <a href=”google.com” target=”_blank”>Goto Google</a><br />Here’s another link:<br /><br /><a href=”somewebsite”>Some Web Site</a>
Can the LinkLabel have multiple links?
We store sessions in a SQL table and as soon as a user starts a new session, we disable the existing session – it doesn’t log them out, or close their tab, we just check the “session” whenever they click anything and if they’ve been logged out, they’re told and the action is ignored.
We charge clients a per seat fee and don’t want the same user logging in to multiple tabs, browsers or computers.
You could check the table to see if they are logged in and block them if they are, however the reason we did it how we did was because we can’t know if they close the browser. We’re yet to find a way of listing all the active session id’s unfortunately.
Hi Neil,
You can actually use the LinkLabel control, it’s much better suited for using as links instead of using a regular Label control.
You can control the link decoration in a LinkLabel by setting the LinkBehavior Property to “HoverUnderline”, and you can use Application.Navigate to control your navigation rather than relying on HTML.
I have attached a sample.
Let me know if you need any additional help.
Best,
Alaa
Hi Frank – we’re also experiencing this issue. The data is actually held in the DataGridView but not displayed. When we refresh a grid with say 3,000 rows (one column) a lot of rows will be blank, but it’s always the last n rows. We’re yet to replicate it consistently, but if we do, we’ll let you know.
To keep it simple, I’d replace HttpUtility.UrlEncode with WebUtility.UrlEncode (from namespace System.Net).
Cheers, Gerhard
You have to handle it in a javascript event handler. You cannot handle synchronous events on the server.
When you run the app in Android Studio, are you running the app in an emulator, or did you connect your physical device to the computer? If you’re running in an emulator, certain actions like vibrate won’t work- you have to use a physical device.
You said that native alertboxes from wisej don’t work- are they being triggered by mobile events? If you make a simple button that you can click on to display an alertbox, does that work?
I suspect that Webview is functioning the same as if you had opened your mobile app in a web browser on the desktop. Just like how mobile-specific actions don’t work in the desktop web browser, I would expect them not to work in Webview. If you create something simple that doesn’t rely on mobile-specific actions, like a button that you can click on to display an alertbox, I would expect it to work on Webview, desktop browser, and mobile.
You need to use the Wisej Mobile Android app in order to publish on Google Play. The whole point of our Wisej Mobile Hybrid app is to provide services to the Wisej Mobile Extension exactly for the things that aren’t working for you. You’re simply running a web site in a WebView.