Showing posts with label webpart. Show all posts
Showing posts with label webpart. Show all posts

Wednesday, March 28, 2012

Atlas WebPartZones Visible property not working correctly

Hi All,

I have an ASPX page that contains three WebPart Zones. As per therequirements, one of the Zones, say rightZone, needs to be hidden for,say X, role. For this I check the user role in the Page_Load event, andif logged-in user's role is X then I set rightZone's Visible propertyto false. This works fine using ASP.NET 2.0 WebParts.

I wanted to have drag-and-drop in FireFox as well; therefore, I used"Atlas" (March CTP) WebPartManager and WebPartZone to achieve the same.This works fine for all roles except X. That is, when an X type userlogs in, a JavaScript error is displayed. It goes something like this:

Could not find 'rightZone' element.

On further investigation I found out that if set the rightZone isrendered even though its visible property is set to false. I guessthat's the reason for JavaScript error.

Please let me know if this is a bug in "Atlas" or I am doing something wrong.

Thanks.

~Vihar

It's generally not a good idea to set Visible=false on a WebPartZone. The Visible property only controls whether the WebPartZone is rendered, not whether the WebPartZone participates in the WebParts control set. For example, if a WebPartZone has Visible=false, it will still appear in the list of WebPartZones in the CatalogZone and LayoutEditorPart. This will be confusing to users, since they will be able to add or move a WebPart to an invisible WebPartZone.

A better idea is to remove the WebPartZone from the page completely. You would need to do this in the PreInit phase of the lifecycle.

All this aside, you have indeed found a bug in Atlas, and it applies to any server control, not just WebParts. The xml-script for a control is always being rendered, even if the control is not visible. This is a bug because the xml-script for a control usually assumes that the control was actually rendered. We'll work on fixing this for a future release. Thanks.

-Mike
For now you could use a workaround to add the css style with display:none.

Monday, March 26, 2012

atlas updatepanel and web parts

Hello All,

Has anyone gotten the atlas update panel working in a webpart? I have a panel that is within a web zone, that has an updatepanel. The panel houses a Gridview. I cannot seem to get the update panel to work properly. I'm trying to do a sort without doing a post back. If I take the exact same Grid out of the web zone, and place it somewhere else on the page, it works fine. Anyideas?

thanks

Hi,

I've tried to build an example similar to yours and the GridView sorts ok, everything seems to work in my case. Which problems are you experiencing?

Hi, this is a old post, hope you can still get the message.

I still can not find out what April CTP does for updatepanel in webpart. UpdatePanel need to be load befire page initcomplete, but at that stage, the webpart state has not been restored by WebPartManger, so how should they work together?

thansk


I found personalizationBlob is loaded before webpart pageinit, so it looks like the webpart state can be stored earlier so all controls in a webpart can be load in pageinit. It seems an easy solution.

Could anyone point out what is the real problem?


In the current version of Atlas, you cannot place an UpdatePanel inside a WebPart. The only supported combination of WebParts+UpdatePanel is that you place all WebParts controls inside a single UpdatePanel.

-Mike

I have tried the precise scenario of putting a web part zone inside an update panel. In this web part, I add dynamic web part controls (including user controls with GridViews on them). If I add a user control statically, everything seems to work, but once I try to use LoadControl() along with WebPartManager.CreateWebPart() and WebPartManager.AddWebPart(), I have problems with postbacks not happening as they should--especially during the sorting of a GridView.

This seems to be a common theme in discussions, but I have not found any good answers to date. Am I missing something? Or is this something to be addressed in a future release?


As far as we know, everything should work if *all* your WebParts controls are in a *single* UpdatePanel. The most common mistake is placing some WebParts controls (like the WebPartManager) ouside the UpdatePanel.

Second, please make sure your scenario works on plain ASP.NET 2.0 without Atlas.

If you are still seeing an error that only happens when UpdatePanel is involved, please post the smallest code needed to reproduce the issue. Thanks.

-Mike