Forms Data Controls :: Gridview Datasource Null When Sorting
Jan 11, 2010
I have 4 gridviews on a page that get databound with a datatable from sql. So I have created the sort/paging events for each. These were working fine. However now they do not work.
Problem: it will sort and paging correctly but when after change a page, it will not display the corrected sorted order.
Protected Sub PFTGridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs) Handles PFTGridView.PageIndexChanging Dim PFTObj As New PFT Dim PFTDST As New Data.DataSet
I have a GridView whose datasource is set programatically. The sorting is also handled in code via the OnSorting event of the GridView.Since I'm stuck in crappy dotnetnuke, I've had to change the doctype of the skin to XHTML Transitional so that the AjaxControlToolkit would work properly with IE.fter doing this, the sorting of this GridView stopped working... if I remove the doctype change file, it goes back to working again.I can tell that the event is firing, but it is now unable to find the underlying DataSource of the GridView to have something to sort. My OnSorting event follows; whenever it is fired, the "Data Source not Found" message is displayed.
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.
In asp I want to add row to my gridview when I read barcode. But when I want to add second row , gridview.datasource = null. So, my first row is removed from gridview in TxtBxBarcode_TextChanged event.
TxtBxBarcode and gridview are in the different update panels.
How can I prevent this "gridview.datasource is null when Postback" ?
If I write the following code, teh gridview will no longer show the data
gridview.DataSource = null; gridview.Databound.
My question is , I want to make the same thing with a user control that contain a gridview. when I use the user control in an aspx page, I am able to populate it with data, but when I try to make this code, the Datasource does not show, instead, I see .DV. So I tried this code but then , I do not see DataSource property instead I see DV (DataView), when I put .DV = null, I get an error message that the object is not in existed. any idea how to clear the user control gridview from its data.
I have setup my business object to have a create_date and edit_date members both datetime datatypes. My company want to display the create_date and edit_date fields in a gridview for each transaction. The problem i have is that after insterting a record it will have a valid create_date but no edit_date and when displayed in the gridview it defaults to datetime.minvalue (My default). How on earth do i show an empty field in my gridview for a null datetime field in the database?
I am using similar architecture to the Imar Spaanjaars example of a tiered solution. With a few small tweeks it has worked well for me for ages. I am passing a List<Database> to my object datasource which connects to my gridview.
I have Gridview control which bind data from LINQ datacontext object which use store procedure. sort the gridview using LINQ datacontext object which use store procedure.
I am using a ListView and i want to get my datatables sorted by clicking table headers. I am binding my ListView to DataSet via DataSource peoperty of ListView.I donot want to use ObjectDataSource or SQLDataSource Controls.
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.
I started learning LINQ, So i thought of just creating gridview with sorting and paging using objectdatasource using LINQ. So i got this link
[URL] which Brian Orrel tell us how to do using IQueryable Interface. but i have nearly 300 lines of stored procedure which joins nearly 20 tables. so i thought of creating a stored procedure and using that instead of IQuerytable.
I'm trying to sort GridView but I have problem with converting DataSource to DataTable. Object of DataTable is empty. I don't know how to convert it.Do you have any ideas? Here is my code:
private void SortGridView(string sortExpression, string direction) { DataTable dt = GridViewDzialania.DataSource as DataTable; DataView dv = new DataView(dt); dv.Sort = sortExpression + direction; GridViewDzialania.DataSource = dv; GridViewDzialania.DataBind(); }
I have a single gridview and multple objectDataSources. Based on the user's input I bind the correct objectDataSource to the gridview in the OnClick handler when they click 'search'. ThegridView/ObjectDataSource have customPaging enabled and all that works, but I can't get the sorting to work. The sorting works when I have 1 ODS dedicated to 1 GV, but since it is set on the fly, no dice. It complains that I need to have a 'GridView1_Sorting' event. I think the answer lies in some how sorting the data inside of the ODS programmatically, but I don't know.
There are few columns in Gridview control , i want them to be sorted according to the column which i have specified . .how to specify that . .code is shown below . .By default i want them to be sorted according to "ENTRYDATE" . .
I have a gridview that can be sorted by a few of the columns.
How do I tell the gridview to go back to the unsorted mode. That is, go back to listing rows in the order they appear in the datasource.
It's ok if this will only work the next time a rebind is done on the grid. Currently it's maintaining the sort mode after a rebind. I don't want it to do that.