Forms Data Controls :: How To Set Column/ Cell Width In Gridview
May 11, 2010
i need to set the column width of my gridview.
However the the column in the gridview is dynamic created which might more or less depend on system logic.
I have try to set the column width in row_created event, rowDataBound event, but it show me that no column is available by using gridview.columns.count.
I have a GridView, in which the width of each column is dynamic and changes depending on the dataset. I need to get the width of each column for use in my PDF exporter, but the column/cells width is always '0', presumably because I haven't set the width property.
How can I set GridView column width? I would like to show "Edit", "Delete" and "Details" links in the same row. Currently these links are wrapped in three different lines.
1) I have a template field with the HeaderText ="WheelChair" that has a checkbox. Just for checkbox its taking the width that of the HeaderText. How do I set the width of this column just enough to fit the checkbox or how do I break the HeaderText of such columns.
2) Also I have another column 'Address ' . I don't want to wrap the content in such columns.
I have been searching the internet for a solution to this for hours. I have tried all of the following methods to set the column width on my GridView control:
1. <asp:TemplateField HeaderText="ColumnHeader" ItemStyle-Width="100px"> 2. <ItemStyle Width="100px" Wrap="False" /> 3. GridView.Columns[0].ItemStyle.Width = 100 both on the PageLoad event and, out of desperation, on the RowDataBound event.
I have tried these settings by themselves and in combination. I have also experimented with different CSS width settings for the GridView and its containing <div> (including none) to no avail. The GridView columns are always equally spaced and wrap the row description text in the first column in a rather ugly fashion. As this needs to be fixed for a presentation to a client on Monday, I would be eternally grateful to anyone who could point me in the right direction.
I am trying to set the width of each column within my gridview. Problem is that none of it is working. I have tried setting the whole grid view to 100% and then break down each individual column to a certain percentage, tried manually adjusting Header Width, Item Style width, tried setting it in code, I have tried just about everything and the column doesn't want to budge. The only time I can adjust the width of the column/cell is when I do it in SQL, but because they are requesting the tooltip to preview the comment I would like to pursue my options doing it on the page itself.
//Code protected void grdComments_RowDataBound(object sender, GridViewRowEventArgs e) {//Setting the tooltip for the comment column and column width. grdComments.Columns[3].ItemStyle.Width = Unit.Pixel(100); //e.Row.Cells[3].Width = Unit.Pixel(100); e.Row.Cells[3].Wrap = false; e.Row.Cells[3].Style["overflow"] = "hidden"; e.Row.Cells[3].Style["text-overflow"] = "ellipsis"; e.Row.Cells[3].ToolTip = e.Row.Cells[3].Text; }
to setting the length of the lblContol in the template but no matter what I do the column size automatically increases beyond my fixed size to meet the size of the longest cell in the bound datatable.
Gridview columns are created programmatically and when displaying the gridview first time it looks great. But click on a number to go to another page in gridview the column size changes and looks terrible, but correct data is displayed.How do I fix the formatting problem?
I populate a gridview dynamically which has differen column numbers depend on requirements. My goal is to adjust column width dynamically. I have tried several methods and events, then RowCreated event of GridView looks best one to do. My code is as below. When i check result at the ViewSource on the browser, i can see that width of <td> successfully adjusted. BUT nothing changes on the browser, column width always as wide as text?
I have this lastname column and address column. The address obviously is longer so it makes the gridview to increase its height which I don't want to happen. What I want is to increase the column width of the address in gridview that will suit the long text inside it. How could I do it in C#? Currently this are my codes:
How to set the GridView column fixed in width size whether there is data in the column cell or not. I try below code using "ItemStyle-Width" in the BoundField control to fix the column width but column became narrower if there is no data to display in it. Is this a no solution of ASP Gridview control ?
I have one gridview with two columns.. I am fetching data which is like invno, invno, invno, invno, invno, invno, invno, invno,.......... in one column.. but problem is when ifetch more data its Growing Across Gridview and Table.. i used following code
I have an ASP.NET/C# web application that has a GridView control. In the last column of that GridView control I have a template field that contains a menu. In the OnMenuItemClick event I get a reference to which row the event was fired from, in order to determine what value the ID field contains for the current row. Currently I reference this cell by it's index "gvr.Cells[1].Text". However, this is highly volatile since any changes to the location of the ID column breaks the code. How can I instead gain the value in the cell that has a column name (or some other name-like property) of "SomeID" from a GridViewRow reference?
I have a GridView with bound columns, for which I am manually setting the ItemWidth and HeaderWidth to 500px, and nothing happens. Is there some trick to getting this to work?
This is a column a large amount of text in it, and it keeps sizing to the width of the header text, which is simply "note". I don't want to set Wrap to false, becuase then the colummn could be thousands of px wide in cases.
I have a ASP.NET/C# web application that contains user controls with GridView controls. The GridView controls contain the following column types.
CommandField - Contains buttons like Edit, Select, Delete, ... BoundField (x8) - Contains the data fields from the database. TemplateField - Contains a single ASP:Menu control.
The menu control consists of the following structure.
Navigate To (Parent MenuItem) - Location A (Child MenuItems) - Location B - Location C - Location D - Location E
What I need to do is when the OnMenuItemClick event is fired, determine which menu item was clicked (already done) and then capture what the value in the first BoundField cell is for the row that the menu item was clicked on.
So, for instance if I have three rows in the grid with the first BoundField column containing the IDs 1, 2 & 3. Then I hover my mouse over the menu on the 2nd row, and click the menu item "Location C". The "Menu1_OnMenuItemClick" event is fired and I can determine that "Location C" was clicked by e.Item.Value == "Location C".
However, how do I navigate up through the API to determine what the contents of the cell in the first bound field column are for the row that was clicked on?