UI Interest Group Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

.NET Datagrid (table control) in LabVIEW UI

Roger_P_Case wrote:... This is the only notification you will receive while this person is away.

If only that were true Roger_P_Case .

Imagine someone elses out of office was also on replying like this. All of our inboxes would fill pretty quickly as they kept replying to each other.

Troy - CLD "If a hammer is the only tool you have, everything starts to look like a nail." ~ Maslow/Kaplan - Law of the instrument
0 Kudos
Message 11 of 26
(5,388 Views)

All

Sorry for the spam. I reached out to our community manager, who incidentally, sent back an OOO auto-reply... 😛

Right now I'm focused on helping define how we invest in user interfaces for future versions of LabVIEW. It seems like this .NET Datagrid table control has some interesting features.

Please give me feedback - what do you like the most about this .NET Datagrid table? If you were to list out in order of importance the features you would like our Multi-Column Listbox or Table controls to have, what would they be?

Joey S.
Senior Product Manager, Software
National Instruments
Message 12 of 26
(5,388 Views)
  1. I like to have data (string) and control (buttons/listbox/checkbox...) right on the table.  Right now, it's achievable in LabVIEW by modifying a cluster which overlays programatically on the row where user clicks.
  2. I like to avoid the glitches in current table in LabVIEW.  I can't insert a row in the table, I can't delete a row.. I have to do this (insert/delete) in an array and then update that array data into the table.  And the table redraws the whole data from 0th row to end where we will find thd glitches of data update.  If I frequently update a whole data of the table, this giltch is very disturbing to the user.
--
Ajay MV


0 Kudos
Message 13 of 26
(5,388 Views)

Hey Joey,

I'd like many things that I think excel in html/c# datagrids:

  1. Data binding to data source objects or data sets (so they autoupdate and link to an object of data (database or class for example)
  2. content sizing: width controls for filling, wrapping, % widths and pixel widths so the grid will scale according to how it is intended for use and support resize panels seamlessly
  3. Large dataset support with auto loading / scrubbing through data scrollbar or paging so that a million records for example could be shown with fast loads into that data set based on wehre the user is scrolled or paged in the dataset
  4. Multiple data type cells (strings, buttons, rings, drop downs, combobox, detail rows, template rows, web links, images, etc) for any column at least, ideally any cell.
  5. Resizing columns, ordering columns, grouping and filtering (show / hide) of columns at the user level all enabled and disabled by programmatic properties as well to control those features.
  6. Proper full word wrap control, row/cell expansion (min/max width/height limits)
  7. Cell merges and spans for pivot style datasets
  8. Auto display of complex datasets (cluster arrays, tdm files, for example)
  9. ability to export csv / excel selections, full set, pdf output would be awesome
  10. copy paste compatible with excel (so many UIs need this in engineering tools, it very useful)
  11. CSS style support for templating, coloring, display control
  12. more keyboard navigation (similar to excel) to edit, tab, alter, select, move cursors and data in table

I'm sure I'll think of more but these are all items I've done and used in HTML/.NET gids that are missing in LabVIEW.  I think 1-6 are most important for basic usage.

Message 14 of 26
(5,388 Views)

Hello;

I've similar customer feedback with the table controls. Major feedback is as follows:

1) Content sizing: width controls for filling, wrapping, % widths and pixel widths so the grid will scale according to how it is intended for use. Also currently it is not possible to vertically justify the text within each cell.

2) Resizing columns, ordering columns, grouping and filtering (show / hide) of columns at the user level.

3) Keyboard navigation (similar to excel) to edit, tab, alter, select, move cursors and data in table

4) Cell merges and span. Also adding/deleting columns during programming at least.

(Bay) Candan CANER
National Instruments Türkiye
Message 15 of 26
(5,388 Views)

I am out of the office until 09/24/2015.

Contact me for phone or email access.

Note: This is an automated response to your message "[UI Interest Group] -

Re: .NET Datagrid (table control) in LabVIEW UI" sent on 9/22/2015 3:21:54

AM.

This is the only notification you will receive while this person is away.

0 Kudos
Message 16 of 26
(5,386 Views)

Dear Roger

Can you please sto this automated reply.

Thank you.

Message 17 of 26
(5,386 Views)

First of all, thanks Mike for taking the time to post this excellent example and for sharing it on Github! I am still evaluating the use of the Datagridview control for a project, and I also ran into the "visually see...it load the data rows one by one" issue. 

There may be a better/easier way around this problem, but modifying the LabVIEW API to follow the suggestion in this post seems to work great.

http://stackoverflow.com/questions/1132818/deferring-datagridview-update-when-editing-the-underlying...

I can now generate and display a >10,000 element table in less than 1 second, and the update happens instantaneously.

I am still in the processes of exploring this control, but if we end up using it I'll be sure to share the updates.

0 Kudos
Message 18 of 26
(5,386 Views)

Thanks Burt.  And yes, you MUST either disconnect the datasource or defer the change events because it will show each addition.  If you load your data table, then bind it to the grid, you don't have this problem.  You cna also disconnect the datasource and reconnect after massive adds/deletes instead of the defer change events.  Both work to keep it fast.  Even with a datagrid, you still have to manage how it draw with large data sets to be efficient.  It would be a good property to add to this grid project, I'll look at it to simplify it for users.  The datatable's add/remove methods are next on my list, so I'll test it with huge datasets.

Thanks for the link, it adds another way for me to handle the updates, instead of disconnecting the datasource.  I'll have to test which is faster still though.

0 Kudos
Message 19 of 26
(5,386 Views)

I Just thought I'd update everyone on this project.  Its come a long way and much easier to use now.  Here are  a couple images to help show progress and please help comment or contribute to the project here on Github.

https://raw.githubusercontent.com/unipsycho/LabVIEWdotNetDataGrid/v0.1/documentation/img/Frontpanel.png

https://raw.githubusercontent.com/unipsycho/LabVIEWdotNetDataGrid/v0.1/documentation/img/BlockDiagram.jpg

Message 20 of 26
(5,386 Views)