All Answers

0 votes

Hi Luca,

thank you so much for your sample ! I’ll have a detailed look at it…
At the moment I’m at a customers site and I noticed a strange behavior which does not occur on my laptop (other internet access !). Maybe the network is locked down but I have no idea what this could cause:
The stock quotes are not updated automatically. They only get updated when I do a click on the page. In addition the session timeout dialog does not count down. It displays the minutes left and thats it…

Do you have any idea what can prevent the events to arrive ? I’m sure websocket connections of other application do work but I also know these are HTTPS connections…

 

  • Tobias answered Sep 27, 2017 - 3:22 pm
0 votes

I have attached a different example. You can have as many clients as you like and subscribe to any number of stocks. Each client will only update the stocks it’s interested about. The server doesn’t care about the specific stocks, it sends the list of changes to all the listeners without transferring anything. Only the changes make it to  the browser.

Each client animates the last update and animates the quote that has been updated.

HTH

[Edited] You can also try it here: http://demo.wisej.com/stockquotes

/Luca

  • Luca answered Sep 26, 2017 - 5:34 pm
  • last active Sep 26, 2017 - 5:38 pm
2 votes

Hi Tobias,

I’d suggest a different approach. Each client knows what it wants to read and display. The background task knows when a quote has changed. This is a typical subscriber/listener event pattern. The server exposes an event, say “QuotesUpdated”, and exposes a method or property to retrieve the quote for a particular stock. The background task checks whatever it needs to check at regular intervals, or receives updates in other ways, it doesn’t really matter how.

When the server process decides to inform the clients that something has changed it fires a single event “QuotesUpdated”. The server’s job is done. It doesn’t matter how many clients have subscribed and are listening. The event may even carry the list of stocks that have changed. The size doesn’t matter at all since it’s not transferred anywhere.

Each client will receive the event, and since each client knows which stocks it needs to update then it can use the sender instance, which is a reference to the server instance, to retrieve the particular quotes and updates the UI if necessary. Each client will only update for the stocks it’s interested to. This can be done synchronously or asynchronously.

HTH

/Luca

  • Luca answered Sep 26, 2017 - 4:35 pm
0 votes

Hi Frank,
thanks for your answer but I’m not sure if one of your solutions would fulfill my needs. When I think about of 100+ different stock quotes one event for each doesn’t make much sense in my opinion. In addition the amount can vary…
Your second solution I think would not be possible because of the much amount of data which is transfered to the client beacuse this should be also used on smartphones/tablets…

Let me describe what I have in mind: E.g. each client sends the data to subscribe (e.g. stock numbers) to the server. The server maintains a list of the clients subscription data as well as their session-id (or something like this). Once a stock quote updates the server side application loops through this list and notifies all clients/sessions which have this stock subscribed with an event…
But I don’t know if this would be possible. I think this would require WiseJ to be able to fire event for particular sessions…

 

 

  • Tobias answered Sep 26, 2017 - 4:24 pm
0 votes

Wisej.Core.showException(ex);

You can download the full wisej.js and qx.js source code with comments like this: /resource.wx/wisej.js and /resource.wx/qx.js

HTH

/Luca

  • Luca answered Sep 26, 2017 - 4:16 pm
0 votes
In reply to: Some suggestions

Hi Mariano,

thanks for your suggestions. They have already been logged as enhancement request WJ-8266 some time ago.
This enhancement is still on our TODO list and we inform you when it´s done.

Best regards
Frank

0 votes

Hi Tim,

this is just a short notice that we will come up with a sample shortly. It will be released after the next Wisej build is put online.
We´ll inform you when it´s available.

Best regards
Frank

0 votes

Hi Edmond,

by full screen right away you mean setting the WindowState to Maximized ?
Please find attached a very simple sample where I tried to reproduce the problem.

I have already contacted you by private mail.

Thanks in advance.

Best regards
Frank

0 votes

Hi Edmond,

I tried to reproduce but it only happened here when I set ShowModalMask for the form to true.
Can you please check that property and try setting it to false if it´s set to true ?

Thanks in advance.

Best regards
Frank

0 votes

Hi Ben,

we have enhanced our native DragDrop support so you will get the TreeNode where you´re going to drop in e.DropTarget.
It´s logged as enhancement WJ-8479 and will be included in the next Wisej build.

Best regards
Frank

0 votes

Hi Luca,

Ok, I have to admit I hadn’t thought about deeper hierarchy levels. I.e. I only considered one “expand” button on the top parent row header and no more on its child rows. I suppose what I really have in mind is more a master (parent) – detail (children) situation and not a real multi-level hierarchy. That’s why I tend to believe that the “row control” will be the best in my case.

I will have to play with the sorting as you describe it. For the moment, I have just disabled column header sorting altogether to avoid the problem!

Best,

Alex

 

0 votes

Hi Alex,

Putting the open/close button in the row header is possible (it’s like that for the first level in the PropertyGrid control), but it cannot show the hierarchy, all the open/close buttons would be at the same level. It could be an optional property. I haven’t seen tree grids doing that. See Sencha for example: http://examples.sencha.com/extjs/6.5.1/examples/classic/tree/locking-treegrid.html

You’ll also notice that when you see samples from DevEx, Telerik, Sencha, etc they never mix parent and non parent rows. The tree rows as implements in Wisej are quite flexible, but if you mix parent and non parents that’s what’s displayed.

Hierarchical row sorting is done by following the hierarchy. Wisej first create a tree in memory, then sorts it according to the path to the node, then flattens the list and updates the grid. I wasn’t able to break it with the latest build.

Putting an expandable panel under a row can also be a new enhancement. The main problem to adding that to our grid is the virtual scrolling mixed with variable height rows based on rows and not pixels – so a large panel would scroll as one unit. We don’t a solution to this yet since the rows can all be of a different height and with the virtual scrolling we need to be able to jump to a specific row according to the scrollbar position. Still working on this…

Last, but not least 🙂 the DGV in Wisej is extremely integrated with the server at all levels, i.e. data binding, editing, controls in cells, editing controls, events of all sorts, columns  event, scrolling. This makes it a lot more complicated to add super slick client-side features since they’d have to fit into the data and server model. In some cases it may be better to use third party grids and handle the data binding one way, like most js grids do.

Best,

Luca

  • Luca answered Sep 25, 2017 - 2:56 pm
0 votes

Hi Shawn,

your sample also uncovered a problem in Wisej where adding a row to an empty bound list should replace existing rows in the DataGridView bound to that list. It´s logged as WJ-8478, fixed and will be included in the next Wisej release.

With this fix, the additional line of code I mentioned will not be needed anymore.

Best regards
Frank

0 votes

Nope. Those are all normal warnings that indicate when the library is attempting to style a component/state but cannot find it in the theme. Which is normal, but it may be useful to know when debugging.

  • Luca answered Sep 25, 2017 - 1:52 pm
0 votes

Hi Shawn,

you need to reset the datasource before assigning it again:

Please add

Me.DataGridView1.DataSource = Nothing

prior to

Me.DataGridView1.DataSource = mYTest

Hope that helps.

Best regards
Frank

0 votes

Hi Tim,

our blog article showing how to integrate Telerik Kendo UI widgets is online:

https://wisej.com/blog/all-about-integration-part-3/

Best regards
Frank

0 votes

Hi Edmond,

we have logged enhancement request WJ-8467 for an abort method of the Upload control.
It will be included in the next Wisej release.

Best regards
Frank

0 votes

Hi Edmond,

we have updated the ElegantIcons pack to real monochrome now.
Additionally with PictureBoxes you could also simply use the ForeColor property instead of adding ?color=

Thanks again,
Frank

0 votes

Hi Edmond,

you can call toolTip.SetToolTip (<control>, <tip text>) to set the tooltip text for a control.

Best regards
Frank

0 votes
In reply to: Deployment issues

Figured it out:

https://wisej.com/support/question/http-error-500-19

Have to enable ASP.NET 4.5  Application Development – see screenshot for where to do it in Server Manager (2012)

Showing 8361 - 8380 of 11k results