If the websocket connection fails it automatically reverts to http mode. Images don’t come through websocket anyway. From your test app that we published here (http://uitest-2-2-48-images.somee.com/) where it works without issues (it has the websocket connection error too, which is correct since the hosting provider has it disabled) I can see that the image is the Image of the PictureBox. When you look at the browser in dev tools select the missing image and you will find something like this:
component.wx?sid=41ab8719-ed18-e76e-617b-905c7b34cc2f&x=ewAiAGkAZAAiADoAIgBpAGQAXwA2ACIALAAiAHYAZQByAHMAaQBvAG4AIgA6ACIAMAA4AEQAQQAwAEMARgBEADYAMQA3ADIANQBDAEQARAAiACwAIgBkAGkAcwBwAG8AcwBlACIAOgBmAGEAbABzAGUALAAiAG4AYQBtAGUAIgA6ACIASQBtAGEAZwBlACIAfQA=
Right click on it and select Open in new Tab. In dev tools you can see why the image link is broken in your installation. If you provide a link that shows the broken image we can look too.
Hi Dino
You can support different version Wisej apps on same development machine as also you can have different .net framework sdk
Here you can found more info
Wisej Nuget documentation
Regards
I figured out how to fake it. The first row in the data bind is empty and I set the height to 0 for the first row.
There is no DataBindingComplete event like the DataGridView. The data binding is ongoing since it’s a completely virtual system: only the visible panels are created and then continually reused while the user scrolls. You can scroll 1M panels and the control only creates 5, for example. The data is always coming from the data source.
When a new panel is needed, there is the ItemCloning and ItemCloned event. If 5 items fits in the view + PrefetchItems then you get 5 ItemCloned events only. When an item is populated with the data from the data source there is the ItemUpdate event. It fires everytime an item is updated from the data source. If you have 5 items in view and 1M rows then ItemUpdate is fired every time an item is reused. It is fired after the update so when you process that event the data in the controls is already correct.
You could handle the update cycle this way, override the DataRepeater in your class, say DataRepeaterEx:
protected override void OnWebEvent(WisejEventArgs e)
{
if (e.Type == "update") {
// updating items in view.
base.OnWebEvent(e);
// done updating items in view.
}
else{
base.OnWebEvent(e);
}
}
We may add an event for that actually, seems like a good thing to have.
Hi John
Thanks for your question
Wisej works exactly the same with F# except that you cannot use the designer because it only generates C# or VB.NET files.
But in F# you can as easily write code that builds forms, adds controls, etc.
Regards
Hi Haas,
Can you please send us the .lic file and the license key to support AT wisej.com ?
In any case, a license check or writing the .lic file shouldn’t restart the application, perhaps you are writing something in /bin ?
Thank you,
Alaa
I have darkroom js integrated somewhere. It’s quite easy to use these controls with Wisej.
https://mattketmo.github.io/darkroomjs/
See second demo at the bottom. Problem is darkroom is not supported anymore but it was open source anyway in github https://github.com/MattKetmo/darkroomjs and it is a very simple lightweight in-place image cropper and rotator. I liked it because of the simplicity. If I find the code I will post it here. It works with our PictureBox control. You can crop and rotate and save any png.
Hi mgmst,
It would be a nice feature, I agree. We don’t have the implementation of that kind of extension on the horizon, but if you need a professional solution to the issue you can send a message to sales AT iceteagroup DOT com and we can figure out a solution for you using consulting hours.
HTH,
Levie
Frank,
As soon as I read your comment, the light went on!! Yes, I went back and changed my panel modifiers on the file “ucBaseControl.Designer.cs” (this is my base user control class) from private to public. Now I can add controls into these panels on my inherited controls.
Thank you very much.
Edwin
Edwin,
you might want to check your controls modifiers. They should be protected or public.
If that´s not the reason, please send us a small runnable test case that we can check.
Best regards
Frank
Frank and Alaa,
I have checked the Namespaces and paths. They are the same. I have attached a pdf of what the usercontrol file looks like in solution explorer before being added as an existing file and after. Also, the pdf has images of how the UI in design mode looks before and after being added. Hope this makes sense.
thanks GH
Hi mgmst,
Upload have event Error, for validation of file.
UploadErrorEventArgs have enum UploadErrorType
Happy coding,
Kevin (ITG)
Hi Carl,
Sorry for the late reply,
I wanted to inform you that the issue was fixed.
Best,
Alaa
//
Hi Angelo,
Really sorry for this late reply,
You should be able to integrate and use any Javascript library with Wisej.
You can follow many of our extension that you can find on GitHub: https://github.com/iceteagroup/Wisej-extensions .
HTH,
Alaa
Hi Greg,
In addition to what Frank said, you’ll have to only add the .cs files, the other ones will be added automatically.
It’s mainly a VS thing not a Wisej issue.
And don’t forget to adjust the Namespaces !
HTH,
Alaa
Thanks, I will try to recreate the theme using the latest version.
Hi Jorge
Complementing what done Alaa, Im done the nexts steps to verify the problem
Im done a local publis from visual studio for your solution
For the output folder, I done a local IIS Application and works OK
After, the same files on the outputfolder, I uploaded on a server web hosting and also working OK
Here you can check your test app published Test-Wisej-App
All this indicate us that the problem is not a Wisej issue
Regards
Hi Greg,
you might want to check out the Namespaces for your moved files. Maybe they don´t fit together or to the new Namespace?
Best regards
Frank
Hi Ruben,
We’re still trying to reproduce the issue you mentioned.
However, I wanted to give you some pointers on how to handle DataGridView with lots of data and/or rows.
I would highly suggest that you use the “Virtual Mode” by setting the VirtualMode property to true.
With that, you can use the CellValueNedded to fill your DGV after setting a RowCount.
Also, you can completely get rid of Application.StartPolling() and Application.EndPolling() since they don’t work when you’re app has WebSocket enabled.
I have attached a slightly modified version of your app to see the changes 🙂
Also, your HTML is correct yes, but it’s not semantically correct. If you inspect the content of a cell you’ll see that you have a “<style>” tag right before the “<img>” tag. It’s really a small thing but I just wanted to let you know!
If you implement the approach I mentioned above, you’ll be able to notice significant performance boost.
We’ll keep you updated as soon as we can reproduce!
HTH,
Alaa
//
