I want to avoid horizontal scroll in Vaadin grid and oblige column to be resized according to the screen. I tried grid.setExpandRatio() but I have no change.
Have you any idea please?
The Vaadin Grid component provides width control for each column. See API doc.
You can set expand ratio of each column that is added when additional free space is available beside the space that is required for each column. But this doesn't help in your case. The best way I found so far is to set a maximum width for a column that is suitable for shrinking.
Related
I am using Tableau for data visualization and generating lists that can be exported to Excel.
However, when the amount of columns get too big, I cannot see all my columns in the view (They are there though). The problem is that there doesn't seem to be a horizontal scrollbar. I can scroll vertically through my rows, but I haven't found a way to do this horizontally to look through my columns, the same way you would do at the data source tab.
If anyone could help me to figure out how to achieve this that would be awesome! I am using Tableau Desktop version 2018.3 on a Mac.
Edit: The problem also seems to be on Windows and is not related to the maximum amount of columns or the view mode.
Example image of the described problem
You are not getting scrollbar because you are viewing it on a worksheet. Try putting it on the dashboard and set dashboard size to fixed and increase width to accommodate all columns.
now you will get horizontal scrollbar for sure
thanks
Besides updating the horizontal row/column label limit #Bernardo mentioned here:
You'll need to make sure you've have selected "Standard" from the display option list at the top of the screen. That options prevent Tableau from fitting everything into the height, width or view of your current display.
Tableau shows a horizontal scroll bar for measures, but not for dimensions. When only dimensions are included on either the Columns or Rows shelf, the lower horizontal scroll bar will not display. Dimensions are treated as headers for measure aggregations and do not generate a horizontal scroll bar when they exceed the width of the view.
To change the Table Layout and increase the number of columns and rows in your table, go to:
Analysis > Table Layout > Advanced
Set each of the Maximum values to 16, which is the limit allowed.
I have a couple of interactive grids on my page and one of them is overflowing the region. I have tried resizing columns but no matter what I do, the grid bounces right back - overflowing the region. It almost seems as if there is a minimum width property set somewhere but I cannot figure it out.
Under Advanced settings for the interactive grid there is a column that says custom attributes. This field allows you to type in CSS that can override the default CSS. My recommendation would be to play with this column with commands such as
style="width: 90%;"
This would reduce the maximum width the interactive grid will take up (from 100% of screen to 90% of screen).
Additionally when looking at the page you can hit F12 to open a web inspect that could help show more details about the CSS of the grid. If this doesn't help could you provide a screenshot or demo so we can further assist.
jqGrid offers a bunch of fantastic features, but there is one feature missing that my customer keeps on complaining about (OK, he is never really satisfied with what he gets ) and that's proper vertical and horizontal scrolling. The grid I had to set up contains about 20 columns with some columns containing longer text so the grid won't even fit a 24″ screen. To properly layout the grid and the rest of the visual components (i.e. additional search and filter functions above the grid) I moved the grid to a scrolling div being about 95% of the screen width with a horizontal scrollbar to scroll the oversized grid, the problem with that workaround is that you won't see the vertical scrollbar of the grid itself, it only becomes visible if you first scroll to the right and that's not really comfortable.
Hope my explanation is comprehendible? If someone knows a good workaround, I would be eager to know it! Otherwise a "dual scrolling grid" would be a nice feature in 4.5
Thanks a lot!
Video example http://screencast.com/t/gPdOVPQlRc
jqGrid have many many options. It could be a problem with usage of jqGrid. The grid with many columns could be displayed in different ways.
One way is just to display full grid on the page and to use scrollbars of the browser windows. If you have simple page layout then the way could be really the best.
Another way could be to use shrinkToFit: false option. In the case you should specify the exact width values for columns in colModel. If you use shrinkToFit: false option you can set width option of jqGrid. In the case horizontal scrollbars will be placed in jqGrid.
In many cases the grid with many columns contains not always really interesting information for every user. So it can be helpful if you would provide columnCooser in the grid. Additionally you can save the users preferences in localStorage (see the answer and another one). It could improve user experience.
You don't wrote about the height of the grid, but the usage of height: "auto" produced typically good results.
In the view propreties I set Grid - Dashes and Dots , color Black. But the grids are only horizontally. I want both vertical and horizontal.
The header style is Beveled. Thanks!
Native Notes applications cannot produce vertical dash-dots grids to simulate a grid. A View in Notes is record (or document) oriented. The grid setting in the view appears in version 8+. I tested dash-dot and it appears to be there, if you increase your line height it should be visible. The dash dots appear to be standard and not variable to font size.
It depends on the first column of the view, if it's not categorized, both vertical and horizontal grids are shown. As soon as you change the column to categorized, the view only shows the horizontal grids.
I want slickgrid to autosize the columns based on the widest content or header text - whichever is wider. In simpler terms, I want it to simulate the default behavior of regular HTML tables when it comes to column sizing. How can I do it in slickgrid?
When constructing your options, you can use forceFitColumns: true
var options = {
enableCellNavigation: true,
forceFitColumns: true
};
This will make the columns fill the entire width of your grid div.
The OP is looking for columns to grow to match their content. grid.autosizeColumns() grows the cells to fit the parent container, which is not the same thing.
I have added this feature, and it is about as manual as you might imagine. You loop through the displayed cells and measure each one, saving the widest cell and using that width to set the width of your column. SlickGrid gives you good access to the cells in the viewport, so that works nicely.
The measurement algorithm is your big decision. You may put the content off screen and measure it, as #jay suggests. This works, but it is the slowest method, as it requires a repaint to insert, and a repaint when you remove. There may be ways to optimize. The solution I went with is to measure the width of every letter in the alphabet, as well as other typographic characters we come across, and sum them to generate a width. Yes, this sounds absurd. It has many constraints: The font size must be the same, it doesn't support images, there can't be any line returns, and more. If you can live with the constraints though, you can calculate sizes for a huge grid viewport in <5ms, because the character widths are only measured once.
After you get the sizes of the columns, you assign them to your columns using grid.setColumns().
Slickgrid will not support column auto size based on data.You need to write a plugin or fork the slickgrid core to modify.
Here is the link I have created a plugin to handle slickgrid auto size
https://github.com/naresh-n/slickgrid-column-data-autosize
I added this after the grid is drawn and it works fine.
$(window).resize(function() {
var cols = grid.getColumns();
grid.setColumns(cols);
})
You should be able to call the autosizeColumns() method of the grid object.
grid.autosizeColumns();
Make this simple adjustment to Naresh's https://github.com/naresh-n/slickgrid-column-data-autosize, on the init function:
Add $container.ready(resizeAllColumns); to the init function.
This ensures the columns autoresize on initial load
Insert the text into an off-screen element and retrieve the width of the element. This is what excanvas does to measure text. Use this to set the width of the column since it's expecting a pixel value.