Perspective table component selection prop has some strange behavior

When you select multiple rows in a table, Perspective will populate props.selection.data with the data from the rows you selected. If you then click on a single row, it will populate props.selection.data with the data for that single row. If you didn’t have multiple rows selected before hand, clicking on a single row will not update the data prop. Further, I found that this affects when the data property is assigned as a dataset, but not as a list.

This is a bug, yes?

What version are you using?

I’m using version 8.1.3.

image

I tried with version 8.1.6 and observed the same behavior.

We are unable to replicate this in 8.1.6. Could you provide the view.json file in which you are encountering this and provide precise steps for what you are seeing? if you’re using dynamic data, please provide a static data source so that we can replicate exactly what you’re seeing. If you can’t provide us these here on the forum, then you’ll need to contact support for further assistance.

I tracked the issue a bit, the unexpected behavior is triggered by having a ‘#’ as a column header in the dataset. Is there some undocumented limitations in what characters are allowed to be used in the header?

I haven’t seen any other unexpected behavior except for what I described here, it seems to work normally for data manipulation and display.

I wouldn’t expect # to be a problem.

Maybe it’s actually more complicated than that. I noticed that when I removed that column it fixed the behavior and removed the error message, but I added it back in and the behavior didn’t return (the error message did).

If you paste the attached dataset into a newly created table that had it’s data property set to a dataset via the code below you should be able to see the same behavior (I hope).

    headers = ["A", "B", "C"]
	data = []
	data.append(["A1", "B1", "C1"])
	data.append(["A2", "B2", "C2"])
	data.append(["A3", "B3", "C3"])
	
	self.getSibling("Table").props.data = system.dataset.toDataSet(headers, data)
	
	

Data.txt (105.8 KB)