When "AllowSorting" is true on an asp.net GridView, it just makes the headers with a SortExpression clickable. Trouble is that it does this with JavaScript links - so with JS turned off you cannot sort the columns. Before I go and write my own HeaderTemplate to use Querystrings instead of JavaScript, am I missing an easier way of being able to sort a GridView without any relyance upon JavaScript?
I posted the question below, and then discovered that the code I posted does work, if the button is not in the GridView header. In fact, I can't seem to make the button in the header do anything.As long as I can trigger the sort, I can make this work somehow, but ideally, I'd like the mechanism to be in the headers.Any ideas on why that button isn't working? Original message:I've got a GridView bound to a SQLDataSource, and have sorting enabled. This works great, but some of my users will have JavaScript disabled, and the page has to have the same functionality for them.
I've looked into sorting a GridView without JavaScript, but all the solutions I've found assume that I'm NOT binding to SQLDataSource - because of course, If I were, I'd just enable sorting. So I wind up back where I started.Is there a way for me to enable sorting for both regular and non-JavaScript users? I know one option is to install buttons instead of the header links, which would be fine, but I have no idea what my code should look like. I took a wild guess and tried:
[Code]....
...where "ColumnA" is the sort expression. I know I'd have to check the current sort direction for the Gridview and reset it - I just wanted to see if this would work at all, and it didn't seem to do anything. I also have both CausesValidation and UseSubmitBehavior set to False, since I just want to sort.
Moderators Note: THIS ISSUE IS BIG FOR ME AND EVEN IF POSSIBLE, GET THE REPLY FROM THE DESIGNER OF GRIDVIEW. I have been looking for him for long. I am really fed up with reviewing a good lot of web pages on how we can possibly customize the gridview to enable sorting and paging. So many sites have listed out a lot of information and so many guidances. But the problem is that one works out fine and the other is a burden. I really feel bad about being given the job of customizing this kind of a gridview which has no user friendly approach to it. Also, this control is rendered without the pager links inside the <tfoot> tag. I have tried the Pear Pager in php. It is that good and easy to use and compared to that, the gridview in asp.net is the worst ever control i have ever tried so far.
1. i can use the images to indicate the sorting direction 2. I can have the custom pager like
[code]
<<Previous 1 2 3 .. 7 Next >>.
[/code]
When i click the next when i am viewing the page at 3 , the pager links should change as
[code]
<<Previous 2 3 4 .. 7 Next >>
[/code]
Kindly look into this type of requirement and firstly tell me whether this is possible with the gridview control. I would like this request even to be escalated to the designers of the gridview control also, so that Microsoft comes out with a reply THAT WORKS and not the kind of stuff like surfing through a lot of links and pages and finally wasting a lot of days precious time and still breaking the head with this useless control. I have spent a lot of time in searching for a perfect way. Not writing a code that is non-standard. I am really serious b'cos I have spent weeks in customizing this control. If I dont get a solid reply atleast now, I am going to generate all the output by HTML content by custom coding.
How can I accomplish gridview sorting in client browser using javascript ? without using inbuilt gridview sorting method. I really dont want the gridview to go to the DB each time while sorting.
what I am trying to do;I want it so that when the user clicks on the datagrid column headers to sort the records, or when they go to page the datagrid, that a confirmation pop-up appears first, confirming that their changes are going to be lost (unless they click "Cancel").I have the confirmation pop-up scripted in Javascript and is added to the controls on the page using
[Code]....
How do I attach this to a datagrid header and to the pager?Do the columns need to be Template columns and the header text being hyperlink? If so, how do I set it up so it will, if the user clicks "OK" in the confirmation pop-up, still sort?
I got a web page, it has a tabcontainer, within each tab, there will be a gridview, all the tabs and gridview are created at run-time, i have only one code, that I will loop through to create all those tabs and gridview. When I apply the sorting, and I click on the column name on any grid, it returned an error saying index was out of bound. BUT, when there is only ONE grid view created, it is working fine, I suspect it mixed up all the grid view's id and so on. But I have assigned different ID to gridview
I have the gridview inside another gridview, i want to sort that both gridviews, I don't know how to achieve using asp.net 3.5 visual studio 2008 c# code behind. Following are my aspx page,
that aspx page contains gridview that contain one more gridview inside in it.Now i want to sort out both the grid i.e)claimgrid and Gdclmline1 i want code in c#.
I'm trying to extend the GridView control to enable sorting and paging for any situation.
When using my control I am fetching data from a database and filling a DataSet with it, then binding the GridView upon every page load. My first question would be, is this the correct approach?
To sort the GridView I am overriding the OnSorting method which stores the sort expression and direction in the ViewState, then creates a DataView and utalises the Sort method to sort the underlying data. It then sets the Data Source to this DataView and rebinds the GridView.
Paging is handled by OnPageIndexChanging which simply sets the PageIndex property and again rebinds the GridView.
My problem is; when any control causes a postback my GridView is no longer sorted, presumably because it is persistently rebound. If I don't rebind it then the GridView is empty on postback since the data isn't automatically stored in the ViewState. I have considered saving the data source in the ViewState but I would assume that this is bad practice for large amounts of data? - also DataViews are not seralisable.
The only solution I can think of currently is to override OnDataBound and sort the data every time. This results in a double sort when paging triggers a postback which seems inefficient. Code illustration of this below,
[Code]....
I'm looking for the cleanest 'best practice' solution as this is a learning exercise more than anything else.
inside the GridView. I have implemented the MyGridView_Sorting method. Thing is: it does not work. Does nothing. The header text "Name" looks like an active link, but clicking produces no effect. Putting a break point inside MyGridView_Sorting shows that it actually never goes inside the function. What is wrong? What do I miss?
I have a gridview and I allowed sorting. But when I run my application I click on the first column to sort it. But I get this error: "The GridView 'gvOutlookMeldingen' fired event Sorting which wasn't handled."
I have done research on how to manually create sorting in a grid-view and none of it is thorough enough for me to follow. I need more of a step by step solution, like what event should my sorting code go in, how would i enable the headers to allow sorting. normally, i just have .net do this but for some reason this time it doesn't allow it, maybe because i am not using a datasource.
that's my code that creates a datable and then binds to the gridview.
Function toptable() Dim reader As SqlDataReader cmd.Parameters.AddWithValue("@yeartoget", DropDownList1.SelectedValue) cmd.Parameters.AddWithValue("@mode", RadioButtonList1.SelectedValue) <FooterTemplate> <%#Getmovesales1().ToString("P1")%>.......
I am trying to sort in a grid view. There is some error in 7th line from last (Which is underlined) in my code, how to retrieve the data table there.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myConn As New SqlConnection myConn.ConnectionString = ConfigurationManager.ConnectionStrings("Fall2010_MSIS5643_Team1ConnectionString").ToString
and it's starting to smell, bad. I have 4 columns that I have to sort on. I'd like to avoid doing a switch or something to determine which property on the CustomerSet I'm trying to order. What would a better programmer do to associate the SortExpression, which is a string, to the property on one of my CustomerSet objects?
I have a Gridview for which I have provided Sorting, Edit functionality. I am not able to perform EDIT when I perform Sorting. After sorting edit is set on some other row.