it is possible to cache an ASP.NET UserControl on the Client.
I have an User Control that queries a DB and renders a GridView. It must be on the Client because the query results vary from user to user (by the User.Identity.Name).
I have a page with a number of user controls, In one of my user controls I have a button event. I turn on output cache for the user control that has the button and vary by control using the ID property of a hidden field control in the user control. whenever I turn on the output cache my button event doesn't fire.
I have been working on a site recently that relies heavily on user controls.
With the site nearly complete we are now looking to improve efficiency with some caching.
I have been looking at a number of options. In some cases a simple varybyparam fits the bill. However some user controls don't suit this model for whatever reason.
This sent me down the line of PartialCaching where I vary the cache by property.
This seems to work a treat if I declare the property in my markup, ie <uc7:JustPublished ID="JustPublished1" runat="server" categoryid="101" />
however if the control sits on a page that has a number of variants and I set the property in the codebehind eg categoryid = 101 it does not vary the cache.
I have a page with outputcache right above the action in a controller class. What I want is to disable this outputcache for myself. Can it be done by IP?
Our web app currently under development has authentication on all the pages.
We can deny a user access to any particular page but have found that if a user had previously opened the page that they can still access the page via the url. [Even if they log out and log in]
Assuming that the page is coming from client cache [Ctrl F5 in IE kicks in the proper authentication behavior or clearing the client cache]
A lot depends on how we have implemented the authentication but a quick fix on our side would be from within the admin section where we deny access to certain pages that we expire client cache for that page.
Is there a way to do this programmatically.
This would mean that client caching would continue to work as normal for all other users that still had access to the page in question.
In our .aspx pages we have user controls each control has a Sql query to fetch data. The caching mechanism to be followed says that fragment cache all the user controls and invalidate the cache based on the respective queries of the user control.How to proceed to add a query dependency to fragment cached user control?
Let's say you had a page like an eBay auction, where some of the content (top bidder, bids, history, etc) needed to be up to date but other sections would likely never change, like the description. I'd like to know the "right" method for getting that static section cached.
The "cheezy" solution would be to code it up in a separate javascript .js file as a bunch of "document.writeln()" calls, but that's plain evil and ugly.
If I made it a Content section of a master page, that might get it cached at the server, but the client has no way to know that this particular section of the page will never change.
I could IFRAME it but I don't always know the dimensions.
I'm sure this has all been done before, and as much as I love my own wheels, I'd rather not reinvent this one :-)
It is not caching. The control makes a call to SQL and displays some information. I tested it by changing a value in the database and refreshing the page. The control keeps making a call to the database eventhough I have the duraction set to 60 seconds. Am I missing something? Do I need to add code in the Page Load event?
What's the best way to cache web site user data in asp.net 4.0? I have a table of user settings that track all kinds of user or session specific stuff like the state of UI elements (open/closed), preferences, whether some dialog has been dismissed, and so on. Since these don't change very often (for each user, anyway) but are looked up frequently it seems sensible to cache them. What's the best way? These are the options I've identified...
Store them in HttpContext.Current.Session directly (e.g. Session["setting_name"]) Store them in HttpContext.Current.Cache Use a global static dictionary, e.g. static ConcurrentDictionary<string,string> where the key is a unique userID + setting name value Store a dictionary object for each session in Session or Cache What's the most sensible way to do this? How does Session differ from Cache from a practical standpoint? Would it ever make sense to store a dictionary as a single session/cache object versus just adding lots of values directly? I would think lookups might be faster, but updates would be slower since I'd have to re-store the entire dictionary when it changed.
What problems or benefits might there be to using a global static cache? Seems like this would be the fastest, but I'd have to manage the size. I could just flush it periodically if it hits a certain size, or keep a cross reference queue and remove things oldest first when it gets to a certain size. Does this make any sense or is it just trying too hard?
I have a user control (say PricingGrid.ascx) which generates a pricing grid on a given product's page. I pass the user control 2 parameters : currencyId and productId. The user control has output caching specified by
[Code]....
I am adding PricingGrid.ascx to my page programatically, i.e. using LoadControl [URL]If the user changes their currency and refreshes the page, the cached version of their original currency is still showing, until the 60 seconds expires. Is there any way to force the page to check :1) Does a cached version of PricingGrid.ascx with their new currency exist?2) If so, retrieve that version, and if not, create that version.If I output all the keys in the Page.Cache object on PageLoad, I'm not seeing my user control in the output.
I have a page which contains a user control. The structure of the page is as shown below:
Incase your not able to see the above image, check it at [URL] Now, apart from the contents of the UserControl, I'd like to cache the entire page. I tried using the OutputCache attribute in the .aspx page, however it caches the contents of the UserControl as well.
My asp.net app is heavily using user controls and is high load; my concern is that loading user controls for every request (Page.LoadControl(controlPath)) is sub-optimal at best. I was thinking of caching an instance of loaded user control in HttpRuntime, but I don't know how's it going to behave when multiple connections (threads) will try to fetch it from the cache and modify properties - I guess trouble is waiting there. Any good way to optimize user control loading?
Again, I am talking about caching user control, not it's html output (which it makes no sense caching as it's [html output] going to be different every time you use it)
have an ObjectDataSource with the following configuration:
[Code]....
And the 'Select' parameters will aid in making a 'unique' combination per user selection to populate the GridView it is bound to:The problem that is occurring is that GridView search results are indeed cached, but the cache is a little too public and shared between all users currently running the application. So if user1 creates a search that populates the GridView with 100 results based on some unique dates and CategoryID, and then user2 in a separate browser does another search with different dates and a different category
I'm trying to cache user controls and on some pages i want to cache single objects. There are multiple ways of implementing caching, and my head is breaking over it.
The way I see the caching options now:
You have the PartialCaching option which is set to cache the control for 30 minutes, and after that it clears itself... You have the varyByParam to identity the page by its querystring paramaters... or other vary options
But i just cant find an appropriate way to add caching to a control, and be able to clear the caching programmatically when i update one of the objects used in the control from the backend.
You can do HttpContext.Current.Cache.Insert(), which accepts a key on which you can destroy the caching item later by using remove... This can save objects in cache but can you use options like varyByParam?
My questions are burnt down to two:
Is there a way to clear the caching on specific user controls from the code? If yes, can this be done according to the varyby options? How would the object caching respond to logged in users or anonymous users using Insert()?
EDIT: I'm caching multiple things.... And I'm really flabbergasted in which choice to make referring to caching. Can the Cache.Insert be varied by Parameters?
The main problem is peopling editing things from the backend, which needs to trigger an event that reinstantiates or clears all caching items referring that object.
i have a custom handler which captures user's book mark entry. To debug this handler, i have created a file "test1.txt" in code behind which saves the user entry. After the debug, i removed the text file (test1.txt) then re-complied the web app and deployed new DLLs for the site. But, the site is still looking for test1.txt file. i dont know how to confirm if the handler is really removed from the new DLL. Also, looked at the handler code behind file and didn't find any entry with test1.txt. So,
I recently discovered the client-side methods of some of the controls in the Microsoft ajax control toolkit. For instance, with the TabContainer, I can do something like this:
without having to resort to server side code. Is there a way to do this in your own custom user controls without too much work?UPDATE: I was going to implement show and hide methods: although setting display to none would probably work just fine, they would prefer an explicit method. I know that the ajax control toolkit controls have a set_visible method. Do user controls get this too?
I have used caching in a page that shows user name[lable] and a linkbutton[login/logout].
When user logs in this text has to be changed from code but due to caching on the page none of them is changed.label I can replace with substitution control. Is there any way out to change linkbutton text now.
i have a usercontrol called navigationmenu whose data is static but varies with loged in1.empID 2.empType 3 Country my question is how can i cache the data of usercontrol based upon combination of these 3 parameters
I have a user control which contains a CustomValidator which is used according to whether a RadioButton is checked or not (there are several RadioButtons, I'm only showing the relevant one)
There is some client + server side validation code (the server side code does exactly the same thing and is skipped for brevity)
<script type="text/javascript"> function ValidateDateFields_Client(source, args) [code]...
There are two instances of this control in the page. When running the client side version it hits the wrong one (the version of the control which is disabled). You can see from the generated HTML both are correctly specified. I'm not sure how .NET works out which clientside function to call given they both have the same name.
[code]... Do i need to add something in to scope it? What's the best way to achieve this? If I disable the loading of the second control everything works fine.
I have created a user control that has a gridview. During binding I set some common properties like height and width. To do so, I have created public properties. I have created the public property so that user can also set the height and width themselves. But if user didn't specify then I use my defaults.
My problem is that user settings are always overridden by my default settings. I want to set the default values as the control is rendered on the page and then if user apply his settings then it shold override. Which event/method is best on user control to jandle such scenario? Where should I write the code to call my default settings so that it is first thing that happens? What is the user control life cycle?