Forms Data Controls :: How To Make A Gridview Header Fix And Sortable
Mar 25, 2011
how to make a gridview's header fixed and sortable. All the solutions I've seen do one or the other, but not both. If I put the header in a separate table, I don't know how to make it sort. None of the CSS options I've seen work either.
My gridview isn't anything special, but it is databound via a data accessor in c#.
I cannot seem to center the header text of a column in my GridView if it is sortable. The html output is much different for a sortable column (it seems to place a table inside of the td column).
Any thoughts on what can be done to get this centered?
I put the html ouput in a jsfiddle here ... [URL]
I have tried the following code on the grid view with no success. Bear in mind that the bound fields are server controls I designed but they do not affect the header text in any fashion:
I am able to put gridview inside asp:panel and scrolling works too. But the moment I down, the header of gridView scrolls above inside the panel and gets hidden.
I just want to scroll rows, not the header. How can I do that?. Following is what I am using.
On a side note, I have tried to wrap gridView in DIV but div doesn't show the scroll bars in the first load for some reason.
I am making one pointing web application. There are different Points like 20 Points, 50 Points, 75 Points,etc. These are saved in Database.This Points are belongs to some Vendors. Customer will take the Points from Vendors.want to show the summary in gridview like how many customer use 20 points, how many customer use 75 Points, etc.I want the Gridview Like below
Vendor Name 20 Points 50 Points 75 Points
ABC 5 7 8 XYZ 10 16 5
First Question, How can I represent the data in the above way?Second Question, If I add one more point like 100 Points, then how the one more column will come like below:
Vendor Name 20 Points 50 Points 75 Points 100 Points
I have stumbled into a problem in which Im having a hard time solving. I have a linq data setup(based on a mssql) where a Purchase Order contains a number Equipments - each equipment has a price. I have a gridview that shows the summed price of the equipments that are included in a Purchase Order. This sum is currently being calculated on RowDataBound through a "listOfEq.Sum(Eq => Eq.PurchaseOrderPrice);" expression which works without any problems. My problem is that I want to be able to sort the gridview based on this summed value, which I cannot do with a normal sortexpression. My next thought was to create a function in my database to calculate the sum instead and then use this is my data basis for the summed column. I have created a function like this:
[Code]....
I want to create a sortable column based on this data. My thought is something like this:
[Code]....
Displaying the correct information is not a problem, however creating the sorting is. Im not sure what to put in the SortExpression. Anybody got an idea of what to do? Perhaps I am forced to use a computed column for this however I dont know to create this column when its based on another table. If this is the case, any idea about how to do create a computed column thats based on data from another table?
Scenario: I have a Gridview where I want to handle the Sorting in a custom control that I've added to the header. I've added this control to my GridView's Header via OnRowCreate event handling. I want the Sort Expressions to persist session to session (via Webparts Personalization)
Here is what I have for adding the custom header control to the GridView Header
[Code]....
This works out well for adding the control, but I can't get anything to persist because these controls are creating initially via postback (per the event) and re-created on all subsequent postbacks. I can't add an If(!IsPostback) because the controls are initially created on the gridview's postback (well at least thats how it's acting when I put it in there) If I were to add this control via the ASP page, not via the Codebehind, I would be able to persist the control. If I try to treat it as though everything is setup correctly, and assign my custom control's controls to [Personalizable], I get a runtime error telling me that I can only have webpartzones in or before Page_init (I'm guessing this is due to when/where the gridview hits the OnRowCreate event). If there is some fundimental logic I'm missing, or best practices that I'm moving away from,
I have a datagrid with sorting. I set enable sorting to true, but that makes every column sortable. Is there a simple way to make it so that only one column header can be clicked for sorting? I feel like there should be a simple and quick fix for this, but who knows. some code:
i have a gridview bound to sql datasource with template fields binding the columns. I have set the Header Style to a css class. I have 3 columns not bound to data as Add, Edit and Delete. When I set the text color to white for the header only the non bound columns go white. The bound columns are BLUE like hyperlink. Any one know a way round this. (If I set the style in the gridview the all columns are white. Want to set in external css file).
I need to make a large Ebay-style list of listings (think of the page that comes up when you search for something in Ebay, with a photo, title, one-line description, price, that's paged, and sortable). My limited experience with DataGrids in the past always resulted in what felt like a sluggish page to me, but I'm not sure if it would have been faster if I had pieced it together with a data reader instead.So I'm wondering before I even get started, what is the fastest / most efficient way to retrieve and manage this data.Is it more efficient at runtime to use a DataGrid, or to write the paging and sorting in more manually and use a DataReader, or another way?Ebay manages to get thousands of listings to display very quickly, but they've obviously got a lot of manpower to squeeze every last bit of performance they can out of the site, and good high-powered servers.
I want user to be able to scroll in a div to see all the rows. But setting div's overflow property to true. When I starts scrolling header goes away. Is it possible to make header static. So that I can sort or do any kind of other operations.
Currently I tried to take fixed table above grid and hiding grids header. But on editing it is not expanding as the grid is expanding.
now the problem is that when i scroll down the gridview the header disappers and so I could not remember what a number is refering to...how can I fix the header so that I scroll down only the rows? is too much if I ask you for the code and where to put it? :P it is a home project for myself so I m not going to sell it or earn money form it.