Forms Data Controls :: Gridview Images Do Not Sort When The Columns Are Sorted?
May 21, 2010
I have a gridview which displays images as shown in the code below. When the page loads the images load fine. But when any of the columns are sorted, the images are not displayed. In the page source view the grid still hold reference to the images when they were first loaded.
How do i bind the images so that they sort when the other columns are sorted.
i am having a gridview in which all columns get dynamically added, i applied sorting in it, all column added as boundcolumn get sort properly but two column which are added as templated column do'nt get sort. Though my dataview have these column as it is.
Just spent about 8 hours googling and looking through this forum for a solution on how to make sure that I can dynamically sort. Here is the situation.
I have 1 Gridview that displays 10 different scenarios based on what button is clicked.
I am also returning only top 10 records. I am doing all of the data binding pragmatically. So I have BoundFields, HyperLinkFields etc.
I also want to sort some records. When I change DataSource SQL statement the gridview somehow remembers what the last sort value was and it errors out saying that value "x" cannot be sorted because it does not exists.
Here I get an error that says that the data source does not support sorting? Doesnt it say gridview1.allowsorting = false;
I also tried gridview1.sort("", SortDirection.Ascending); This does nothin... except query my database one more time because i have a onSorting event that looks like this:
[Code]....
Here is an example of just one of those SLQ statements inside GetSQLQuery:
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.
I see from google that this is a common problem. I have a SQL server database that contains 26 rows of data. Two columns, the first is PK and an identity column (keys numbered 1 to 26) and the second column is a text field (nchar(10)) containing a letter of the alphabet (A..Z). The letters were inserted randomly to simulate sql being unsorted by default. I have a query that returns all of the data ordered by the letter column ascending. If I execute the query in sql server I get 26 rows orderd A..Z.
I have a gridview that is set up for paging (page size = 15) and sorting. When sorting is disabled, all data is correctly displayed on the gridview, 15 rows on the first page, 11 rows on the second page.
If I enable sorting, I get 15 rows on the first page and 11 rows on the second page, however on closer examination I find two letters missing and two letters duplicated on both pages. If I navigate to page two, then back to page 1 I find that the data is then shown correctly and the missing letters are back.
Has anyone struck this issue? I am thinking that the sort is not being initialized correctly, but am not sure where to look.
I am building a SortedList object for use as the DataSource of a GridView control. The key-value pairs are being built manually with the "key" fields being inserted in already sorted order. The "key" column is invisible with the "value" column the single displayed data item. I set the DataSource property of the gridview to the sortedlist and call the Bind method. The gridview then displays the data in random fashion!
So I have a gridview that is sortable. I also have enabled it to export to excel. The problem is that it exports the original datasource and not the sorted data on the screen. What I need is when the export control is fired, the exact gridview or newly sorted gridview is sent to an Excel spreadsheet. Here what my excel export looks like:
I've got a Gridview bound to an objectdatasource. Sorting is enabled in gridview, but objectdatasource isn't doing any sorting. I can pick up the unsorted datatable from the Selected event of the objectdatasource, but I really want the sorted version. Is there any event on the gridview where I can access the sorted dataview it must be using internally?
Why am I asking? We're using paging as well (i.e. truncated data in gridview) and I want to loop through the full sorted dataview to find the primary key value to set selectedindex.
Is it possible to have 2 ListBox then when a Button is Click the Items is Sorted already to GridView accordingly. btw I have done a sort button but for LB1 only. and LB2 only.
I have a GridView that sorts and has paging features. I need to grab the data from the SORTED DATA from the GRIDVIEW and put it into a DataTable. Who Do I get that sorted data gridview and store it into a DataTable. I am an ASP.NET Programmer. Goal: Get and Store Sorted GridView Data into a DataTable.
in asp.net page user able to select gridview Columns, and it will hide remaining columns and that selection done by check box with column list bellow is Image link , what exactly I am looking for [URL] it look bellow after selection of column done [URL]
i have the following scenario, i have a column of a gridview that shows me a text telling me is the user is allowed or not to access to some page, but now i just showing allow and deny, but i wanna show images that represent me the action, how can i do that?
I have a gridview with data. I want a button which is not part of the gridview. Then if I press a button the gridview is sorted by two colums. i.e column1 ascending column2 descending.
I am not looking to work with a Sqldatasource as I use a data access layer. So the sort would have to be from a datatable and databind or directly with the gridview.
I want to create simple rating page where player's place,name and rating is displayed. I've created database with ID,Name and Rating Columns, binded Gridview to this database and created TemplateField "Place". With following code I've created numbered list for Place:
protected void Page_Load(object sender, EventArgs e){ for (int i = 0; i < GridView1.Rows.Count; i++)
I'm a newbie to .NET, so the solution might be really trivial. I have a database, I have an Entity Data Model, I add in my Index.aspx page an EntitryDataSource and a GridView. I connect them and everything works fine (the data is displayed as expected). The problem is that clicking on the coulmn name or on the pagination lists doesnt do a thing... Although I did set the properties AllowSorting="True" and AllowPaging="True". I also tried with another datasource type (SqlDataSource) and the same problem.