C# - Improve Efficiency Of GridView Or DetailsView?
Jul 29, 2010
In ASP.net when we perform paging over Gridview or DetailsView than the Gridview fetch all rows from the Database each time.
Suppose our Database contains 100 rows and we have configured Paging in Gridview with page size of 10 records per page.But whenever we click on the the pager control of gridview for any particular page no. then GridView should fetch only particular 10 rows from database.
If we click on page no 3 then it should query only rows 21-30 but it fetches all rows and neglect the remaining .which is simply a wastage of resources.
In ASP.net when we perform paging over Gridview or DetailsView than the Gridview fetch all rows from the Database each time.Suppose our Database contains 100 rows and we have configured Paging in Gridview with page size of 10 records per page.But whenever we click on the the pager control of gridview for any particular page no. then GridView should fetch only particular 10 row
I have developed a gridview which has displays 8,000 records. However, the user is compaining that it is too slow. A major function of this gridview is to filter on two of the columns. It seems to me that if the records were stored in memory it would be much faster. This is caching, I think. Is that the case? Since filtering is being done I don't think custom paging will help much. When they submit a filter, with custom paging wouldn't the entire table be read again? So I was thinking of trying caching which is available on SQL Server. Am I on the right track? Can you cache with an Access database? Can you think of any other ways to improve performance of a gridview?
But I´m trying to do that programmatically, not with the sqldatasource. So I wrote the method that binds data to Detailsview and I call it in the page_load. The problem is that I have to click two times on the select button to view the detailsview. The first time I click on the select button nothing happens.
I have a gridview with a Select button. Clicking the Select button for a particular item, I need its full details displayed in DetailsView. how I can bind to DetailsView? Here is what I have so far.
I am trying to speed up a Gridview on my page that reads 8,000 records using an AccessDataSource. So I am trying to implement caching. I have used the information given here: [URL] but it has made no difference in the response time. Can anyone direct me on this? Is there something you have to specify in the gridview (besides the datasource). Would it work if I went to SQL Server?
This is my AccessDataSource code. You can see the 3 relevant lines starting 6 lines from the top.
I'm working on a project in which the client has required a lot of things to happen on a single page, and this has resulted in a rather large blob of HTML being rendered out to the client browser.
The main issue is with input tags (where runat="server" attribute is set), these tend to cause a drastic increase in markup size due to validation, updatepanel triggers, viewstate, and the control markup itself. I've done what I can to reduce the amount of triggers I'm using, I'm compressing the viewstate (to something like 8% of the original viewstate size), I've gotten rid of a lot of ASP.NET Validators and rolled my own, and and I've been using ClientIdMode to reduce the length of the ID attributes of many asp.net elements. All of these combined significantly reduces the amount of HTML being sent to the client, (for example going from 2 megabytes for a request down to 500-600 kb - these are HUGE pages, mind you).
The website I am working on has a section where users can search for content they have digitally subscribed to. way to cross-check both data sets, the first being content that matches the search criteria, the second being the content the user has subscribed to. What's making this is a mess is how the data is structured. Here is an example...
We store all of our content in a "Content" table in our database. A piece of content, a "journal", for example, and all of its child records (volumes, issues, and articles) are all stored as records in the "Content" table, each with a ParentId of its corresponding parent record. So, A journal can have n volumes. Each volume can have n issues. Each issue can have n articles. A user can have a subscription to any of these, which would implicitly give them access to all child records. For example, if a user was subscribed to a journal, they would have access to all of its volumes, issues, and articles. If the user was subscribed to an issue, they would have access to all of its articles, but not the parent volume or journal.
Some users own over 30,000 records, and we have over 100,000 content records in the database. The Content table has relationships with several other tables that are used for the search. This leaves me with an expensive query to find what the user has access to, and another expensive query to search through all of the records to find search criteria matches. Some of our searches take 20-30 seconds and I would like to speed it up to a max of 5sec per search.
I tried running a query to get the ContentIds of everything the user owned when they first visited the search page, and then caching it to eliminate further database hits, but when I passed the list of ints into the query via a linq .Contains statement, I hit the SQL parameter limit of 2100, since apparently .Contains() splits them all out.
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.
It is a very large .txt file (more than 3M), and produced everyday, the content is user's system log like below:
2007-11-01 18:20:42,983 [4520] INFO GetXXX() SERVICE START 2007-11-01 18:21:42,983 [4520] WARING USER ACCESS DENIED 2007-11-01 18:22:42,983 [4520] ERROR INPUT PARAMETER IS NULL CAN NOT CONVERT TO INT32 2007-11-01 18:23:59,968 [4520] INFO USER LOGOUT
I have to build a few ascx partial views in my MVC applications to encapsulate re-usable functionalities as well as archive SOR and SOC. However, I encountered challenge how to encapsulate the business logic that drives MVC ascx views.In webforms, the code behind of an ASCX control can handle a button click event and browser still shows the same page with only one postback. How can I archive the same thing in MVC? When ~/Address/Edit/2 includes an ascx partial view with a button on it that calls another MVC action - let's say ~/ShareController/CommonAction - what is the best way for the CmmonAction to return to the very same view that includes the ascx file?Perhaps I am missing a common pattern in MVC web development?
I know there is a couple answered questions on here regarding "request scoped" globals, but I want to nit-pick on something specifically and maybe squeeze some extra enlightenment out of one or two of you.I have an ASP.NET C# Website and a static Dictionary of objects (loaded from DB once on Application start). Each page request will need to do a lookup in the Dictionary (based on a key derived from the request url/etc) and get the appropriate object.The issue is I'm trying to maximize efficiency by reducing the lookups to the Dictionary per Request. Doing just a single lookup within a Page itself is easy enough and I can pass the object to sub controls, etc too.. but global.asax is separate from the Page and it also needs to use the object (in Application_BeginRequest and Session_Start).
So is doing a Dictionary lookup once in Application_BeginRequest, once (when necessary) in Session_Start and once in the Page negligible speed wise, even if there are many requests coming in every second?I would like it if I could just have a Request scoped global variable that I can easily call upon.. the only one I see available though is HttpContext.Current.Items and that is a Dictionary itself.Am I beingridiculously nit-picky with my concern over efficiency? or will these milliseconds (nanoseconds?) get me in the long run when more and more requests are being made?
PS. I currently only have around 100 objects in the Dictionary although this may increase in the future.
I am trying to arrange the information from a SQL record into a 3 column by 3 row table to fit the form presentation that I want. I have placed on the page 3X3 table and then tried to place a detailsview in the first cell for the first picture called P1dv.
I have place a detailsview in the last cell that would control the paging of information called Controldv. I need to fiqure out how to link P1dv paging to Controldv page action. I am using visual web dev. 2005. I am not updating or editing these are read only views.
example of what i need the form output to look like:
I am creating a GridView/DetailsView page. I have a grid that displays a bunch of rows, when a row is selected it uses a DetailsView to allow for Insert/Update.
My question is what is the best way to link these? I do not want to reach out to the web service again, all the data i need is in the selected grid view row. I basically have 2 separate data sources that share the same "DataObjectTypeName", the first data source retrieves the data, and the other to do the CRUD.
What is the best way to transfer the Selected Grid View row to the Details View? Am I going to have to manualy handle the Insert/Update events and call the data source myself?
Is there no way to link these two so they use the same data source ?
Im fairly new to .net so apologise if this is a simple request!
I have a simple page with a GridView control getting data from a sql database. I have added a hyperlink as below <asp:HyperLinkField Text="Select" DataNavigateUrlFields="title_id" DataNavigateUrlFormatString="title.aspx?id={0}" />
On my title.aspx page, i have a detailsview control and i want to be able to retrieve information using the id from the gridview hyperlink.
My scenario is : WebApp -> WCF Service -> EDMX -> Oracle DB
When I want to bind grid I fetch records from Oracle DB using EDMX i.e LINQ Query. But, this degrades performance as multiple layers take place between WebApp & Oracle DB. Can I use caching mechanism to improve the performance? But as far as I know cache is shared across the whole application. So, if I update cache other user might receive wrong information. Can we use caching per user? Or is there any other way to improve performance of the application?
I am using Asp.net MVC 2 for my application.In view pages consist of aroung 4 jqgrids,data loading in grid asynchronous using jquery post method when user performace action on the view.In jqgrid i used datatype as local while view is displayed,when ever user perform an action it load json data to grid.In view i have 3 partial page which also loaded based on the user action.It takes more time to display the view.How to improve the performace while opening the view
ASP.NET 3.5 Classes throughout our solution referenced ConfigurationManater.AppSettings[""] to get appSettings (from web.config).
We decided we weren't happy with that. Folks were mistyping appSetting key names in code (which compiled fine), and it was cumbersome to track usages. And then there's the duplicated strings throughout the codebase as you reference the same appSettings all over the place.
So, we decided that only one class would be allowed to reference the ConfigurationManager, and the rest of the solution would reference that class when it needed the value of a certain appSetting. ConfigurationManater.AppSettings[""] was static, so we exposed a bunch of static read-only properties off of our single Settings class.
[Code].....
And now we're injecting the ISettings instance as a dependency of the objects which use settings values (the class/interface are in a project that everyone can reference without problems).
In places where we can't inject an existing instance (e.g. Global.asax), we construct a new instance into a static field.
Given all of that, what would you recommend we change, and why?
So i am using visual studio 2008, asp.net 3.5, with the basic toolkit provided. Now i have made the gui which a lot of functionality but the design is very basic. nd looks too old. I need to give it a new look, a new feeling new designs. like the gridview, the buttons the textboxes, the menus look basic. this is not working for me. let me how should i go about doing this?
1) i have herd about tool kits but dont kno which ones are good..(dont want the really expensive ones) but if it is really good my company is ready to spend.
2) will the new VS 2010 or asp.net 4.0 make a difference.
3) The ajax toolkit or silverlight toolkit is any good?
4) i also need to show Charts and graphs now, currently using MS charts.. but now i need which is good.
I'm hacking my way through ASP.Net WebForms, coming from VB.Net WinForms. I was hoping the transition would've been more seamless... it is not.
I have a GridView (Paging enabled) bound to a DataTable, filled with Joined tables from an Access 2000 DataBase.
The GridView and DetailsView are bound to the same DataTable.
In the GridView's SelectedIndexChanged Event I have the following:
vb.net Code:
' dtvSelected is the DetailsView' dgvJobTOF is the GridView Me.dtvSelected.PageIndex = Me.dgvJobTOF.SelectedIndex
When the page loads the first item in the GridView is also displayed in the DetailsView.
I've added a "Select" button in the GridView and when it is clicked the Data in the DetailsView remains the same regardless of the selected GridView row.
am in commercial development for few months only,the team leader is not using gridview, detailsview, formview, repeater, datalist.we alwyas write our own looping to dislpay the data even it is read only.He said : we do this for better performance.and I am always thinking, so why microsoft create them???I checked other questions and articles, and I am still confused.
I have a GridView and DetailsView in a Master/Detail relationship inside an Update Panel.The GridView displays a set of records, and when a Select button in the GridView is clicked, the detailsview displays the record for edit.Initially the focus is on the GridView, and when the Select button is clicked, I want the focus to be on the first TextBox inside the DetailsView. This happens only when I remove the UpdatePanel from the form. If the Gridview/Detailsview pair is inside an updatepanel, the focus never goes to the DetailsView.How can I make the focus on the DetailsView inside an UpdatePanel