VS 2008 - Creating Gridview User Control With Sorting And Filtering?
Sep 20, 2010
I find myself always repeating code when it comes to gridviews. I want to build a usercontrol so I can just set a datasource andcolumn types etc and I can use the same control over and over in different projects.
I have created an asp.net usercontrol that should list users in a number of applications. For that purpose, the control renders a repeater (foreach application) which in turn renders a gridview (with users for that application).
The control renders fine, except the fact that columns in the gridview are not sortable. Nothing happens (no postback) when clicking the headers. Apparently, no JavaScript is rendered to perform the postback when clicking the header.
i'm developing a webusercontrol, that has very properties, properties are of custome types (not primitive), so i want user can edit properties in grid property. i want something like gridview here is a portion of my code:
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 have a BLL that takes data from DB into datatables and for each datatable there are functions that transform them into Collections of the corresponding class.
When I put the data in a Collection into GridView through ObjectDataSource I don't have the option to click on the header of a column and get the data sorted. The headers are only clickable when DataTable is passed to the ObjectDataSource.
How can I get arround this problem without passing DataTables to the ODS?
I have a gridview control on .aspx page. Situation is, the columns in the gridview control are not databound. I query the database and load the gridview control using the following code.
The gridview control shows about 13 columns from the database. But we want the user to be able to edit only one column. Rest of the 12 columsn should be read only. When the clicks one Edit button button, as usual the Update and Cancel buttons should come up. It is not happening. Only the _Rowediting event is getting trigged. Following is the code from my .aspx page. I don't know anything about template columns and not sure if I have to use that concept in my situation.
This filter / dropdown works fine....apart from if anyone sorts or pages the grid in which case it looses the filter expression. I have looked at a few examples on the web and cant get my head round it (ie
[URL]
PS I connect my grid to the following datasource using the GUI - ie nothing databinding in the code behind apart from page refresh
I would like develop an application written in ASP.NET which include an option to configure user accounts in such a way that each user account can be freely assigned to a different module to which it will has access.
So, for example, I would have one table in a database that maps user to modules.
In ASP.NET there is the whole mechanism of roles, but his assumptions are slightly different -> Here you need to centrally configure finished profiles. This can be circumvented in such a way that each application module is a separate role. And for one user can be assigned multiple roles.
But whether such a method is elegant? Should I do it differently?
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.
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.
I have a datagrid that is displaying data that is being returned from a stored procedure. That works fine. The problem is that I want to do sorting. I know that there is sorting functionality in the grid, however, I don't want to go back to the server and get a new set of data. What I want to do is just re-sort the data that is already being displayed.
Basically, I couldn't not find an easy solution to this issue. I tried updating my dataGrid to a gridView control and even that (for my particular issue) was difficult. I wound up un-doing all the changes and just adding another grid that had just the data I wanted for the requirement. If anyone else has an issue like this I would recommend taking it out of a datagrid and writing it in jQuery. I could of written a table that had the data I wanted (and fully sortable using a plug-in mentioned below) in 15 minutes compared to the hours I spent trying to jam a square peg into a round hole.
I currently am using an ASP.Net gridview control and when a sortexpression is defined on the column, the column header is rendered as a linkbutton. I want to know if it is possible to convert that LinkButton to a Button control and preserve all the functionality.I cannot use TemplateColumns because I using DataControlField implementation to create columns and add them to the grid.
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 have a gridview in an update panel which is declared in an ASPX page, and bound to a SQLDataSource in code. The gridview's 'allowsorting' attribute is set to true, and because it is bound to a SQLDataSource, I expect the sorting to be automatically handled.
Yet I am getting the "Message: Sys.WebForms.PageRequestManagerServerErrorException: The GridView 'grdStatusItems' fired event Sorting which wasn't handled" error. I am using Visual Studio 2008, IE8, IIS7. What am I doing wrong? I have done anextensive search for this error, but it seems in most cases where this error occurs, the people are not using a SQLDatasource, so have to handle the sorting event themselves. Is this the case here? Here is the updatepanel and gridview declaration in the aspx file:
I am using 5items inside one template field & Grid Contains only one Column.Plz Tell me how to do sortingbased on the onefield(i.e,Date&time field) out of the 5.The main logic i want implement is Most recent dated item shound come first.Kindly help me soon.asap. Awauiting[Edit - Split from closed thread: Enable Sorting in a GridView control]
I have a user control which contains a number of child controls. I want to be able to change the layout of the control (i.e. change the markup surrounding the child controls) via a property of the user control, but I don't want to have to duplicate the child controls themselves. This precludes using, say, a MultiView with different versions of the layout in each view, since in that case I'd have to duplicate the controls. I'd also rather use markup than emit the code for the control directly (as you'd do in a server control).
To give a contrived example, say I have a label and a textbox. In one layout, I want the label and textbox to be contained by divs and laid out on top of each other. In an alternate layout, I want them to be contained side by side in a table.
Should I just go ahead and duplicate the controls between each view? It seems like a violation of the DRY principle, but I'm not sure if I have much choice. A partial solution would be making the views of a multiview into naming containers so that I could at least save myself the time of having to prefix the duplicate control IDs with something to make them unique.
here's a situation and I would appreciate your response.
I have programmatically created the Wizard control:
Page_Load(obj s, evargs e) { Wizard ClaimDetailWizard = new Wizard(); foreach(int item in selectedItems) { //create new step //added custom control to new step //add step to wizard } //added wizard to a placeholder on a page }
Based on List I get from Session i added new steps to my wizard To each step I had added a custom control
Each custom control in tern contains another custom Gridview Control in it.
So here's the problem when the page loads for example for two steps. All is good Wizard does what it's supposed to do.
But when I try to use sorting or paging in that custom Gridview. Somehow it displays the gridview I should see in the next step of the wizard.
Also what I'm noticing through debugging. Is that when I press next in the wizard I go back to the original page where I do all of the code specified above, and it recreates the wizzard. But it goes to the next step. Is this the way wizard supposed to work? Just doesn't seem very efficient.
I have a gridview which sources information dynamically from database.Here when i go for the default "AllowSorting" flag equal to true, i am able to achieve sorting of all displayed columns except the textBox control column whose values refreshes to zero.
I have a user control which has a Gridview and a listview, I want to make this control generic so that I can just pass the type of the class I want to edit, which would be a linq entity, and then it would automatically do the rest, so far I havent had any success and I was wondering if anybody knows a tutorial or some info about doing this?
I am in a situation where i need to reserach on a reporting tool, Other than SSRS for a good interface, cool features like having parameters with AJAX like intellesence. Please advice on the toold that are available currently that could be available and worked with an MVC .net application.
the features i am looking for in a report are:
Ajax intellesence when i search the Student name...
interactive Sorting
Graphs, Pie, maps
Either or parameter passing into the report, with SSR we have to provde all the parameters or it wouldnt let us run the report
I want to create a completely new control instead of extending an existing one. I have found a few articles on the net, but it's not exactly what I'm looking for. I've created Custom User controls in Win Forms before and thought it would be somewhat the same in ASP.NET, but it does not seem so. Many articles talk about a Web Control Library template which doesn't seem to be available when creating a New Project, but is available when adding a New item to an existing ASP.NET forms project in VS2008.
I have extended control by using the ASP.NET Server Control template. But all you get with is a .cs file. How do design a brand new control with that?What I want is to create a control from scratch, with postback functionality, and that compiles to a DLL. Am I going about this all wrong? Should I rather be looking at the ASP.NET Server Control Project Template? If so, How do I create a brand new control with the ASP.NET Server Control?I'm working with VS2008 SP1, .net 3.5, and C#.
I've got a GridView populated via a SqlDataSource whose Select command is controlled by a DropDownList. This is all working nicely:
How do I support the "All" user choice:
In other words, when the user selects "All" there are no aircraft names that match that so nothing is returned. Instead, I'd like the select statement to skip the WHERE clause in this case and just show everything. Do I need to create a second page for this case or is there a way to programmatically alter the SELECT command or some other way to accomplish this?
i have following issue: I am creating a new user register form manually without CreateUserWizard control, and all works perfectly unitil I intentionaly (for test purposes) enter existing username (for example BLABLABLA) into username.textbox. After that i get my error message as expected that says "username BLABLABLA allready exist", now when I tray (as a future user who could be in the same situation) to correct the username and enter another one (for example TRATRATRA), it still gives me this error "username BLABLABLA allready exist!" This is the second day that I'm traying to solve this!
I have a requirement where 15 listviews have to be loaded on a web page.But only one shown at a time. Number of columns will be only 2 for each and Number of rows for every listview is very limited.The thing I am not able to decide is the sorting method.1. If I am using the datasource control, it automatically sorts my listview.2. If I am programmatically populating listview , I will have to sort my datatable and rebind to the listview.To use the second method I have to store the datatables in sessions.So taking that into consideration, will datasource control be more efficient ?