Asp.Net Ajax Controls is not easy to integrate with SharePoint.
In my previous post I solve problem with Tab Container with header display issue.
Now, here I’m explaining collapsible panel extender issue with SharePoint /Moss.
I am facing a problem that Collapsible Panel is not collapsing in SharePoint/Moss webpart.
By default it should hide the content area and on clicking on the header it should expand the content area.
But it is not working as easily like it is working in Simple Asp.Net application.
In my case collapsible panel is not hiding content, it just flicker and again come to the same position as it is in default position.
So from this behavior what I think is that if it is (same code) working in standard asp.net than there is not any problem in control but because it is rendering in SharePoint and because of SharePoint’s JavaScript/JS and its CSS it conflicting with something while rendering.
So first I start with CSS because defiantly it’s easy.
Now if you check your AjaxControlToolKit -- > sample website --> StyleSheet.css
You will find two css class under “/*CollapsiblePanel*/”
One is “.collapsePanel”
Other is “.collapsePanelHeader”
So I used it in my .ascx (sorry I forget to explain that I’m using user control for webpart)
By adding <style type="text/css" > </style> tag.
As we are not facing any problem in header so there is no need to touch that CSS.
So by trial and error I found one solution.
I have to add in the div of content panel
style="height:0px;position:absolute;”
And have to set two properties of “CollapsiblePanelExtender”
CollapsedSize="0"
ExpandedSize="700"
Here is the working code
<style type="text/css" >
/* IE theme – Backgrounds */
.collapsePanel {
background-color:white;
overflow:hidden;
/*height:0px;
position:absolute;*/
}
.collapsePanelHeader{
width:100%;
height:30px;
background-image: url(images/bg-menu-main.png);
background-repeat:repeat-x;
color:#FFF;
font-weight:bold;
}
</style>
<asp:Panel ID="Panelheader" runat="server" style="cursor:pointer;" >
<div id="div1" runat="server" >want to check its working or not ?</div>
</asp:Panel>
<br />
<asp:Panel id="Panelcontent" runat="server" >
<div id="div2" style="height:0px;position:absolute;" >
your data will go here
<br />
<br />
<br />
it's working ....
</div>
</asp:Panel>
<cc1:CollapsiblePanelExtender
ID="CPanelGeneralInformation"
runat="server"
TargetControlID="Panelcontent"
CollapseControlID="Panelheader"
ExpandControlID="Panelheader"
Collapsed="true"
SuppressPostBack="true"
AutoCollapse="false"
AutoExpand="false"
ScrollContents="false"
ExpandDirection="vertical"
CollapsedSize="0"
ExpandedSize="700"
>
</cc1:CollapsiblePanelExtender>
17 comments:
Thanks a lot.. was looking for same..
--
Manoj Garg
Half a day's hard work took me eventually here & pb solved!
Although I was using overflow:hidden on my panel, it still showed up expanded (but only in IE7, in Mozilla it worked and displayed just fine!).
The trick was placing your div inside the panel with the very important style attributes style='height:0px;position:absolute'.
style='height:0px;position:absolute'.
Yes. Yes. It works. Thank you very much
Worked great. thank you.
Can you tell me how to do this programatically?
Can you tell me how I can achieve the same programatically
Hi
Thanks for the post. It solved my problem too.. now it is expanding the content panel but as I apply "position:absolute" to the table in the content panel, the border of the content panel disappears.. I m not able to give border to the content panel. Please help me...
naga,
what you want to do programatically?
shweta,
because of "position:absolute" border should not be removed. that might be something else that is effecting.
try to remove position and check whether border is coming or not, then also try apply some style to give border explicitly.
thanks for the post. I have one question/problem:
Since position for the panel is absolute now, you can't have any other control or webpart below the panel right?
Ali
@Ali You can have it panel absolute will not affect.
Awsome, thank you very much
thanks. But by providing ExpandedSize to the cpe, it always opens to this size. How can I made this expanded size dynamic?
we face same issue, but you can set dynamic size by code.
but we still not found how to make it auto increase if controls are bigger.
I am tryin to create a Collapse Menu for Shrepoint Site in the left menu side of the page
Its a Tasker button that u click & it go right to left .
Where in Sharepoint Designer 2010
in Web Part Can I create this????
ddubs,
can you please explain in details what you are trying to do and where SharePoint designer comes into picture.
This is best one article so far I have read online. I would like to appreciate you for making it very simple and easy. I have found another nice post related to this post over the internet which also explained very well. For more details you may check it by visiting this url....
Ajax Toolkit CollapsiblePanelExtender Control in ASP.Net
Thanks
Thanks
Post a Comment