<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2485492690852163878</id><updated>2011-11-28T03:04:38.235+02:00</updated><category term='AJAX'/><category term='Visual Studio'/><category term='User Controls'/><category term='web parts'/><category term='accordion'/><category term='SPSecurity'/><category term='ScriptManager'/><category term='TreeView'/><category term='sharepoint 2007'/><category term='HTML'/><category term='EnsurePanelFix'/><category term='SPList'/><title type='text'>Sharepoint 2007 Insight</title><subtitle type='html'>Sharepoint 2007 customization development tips help moss wss sdk</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-537085199567943125</id><published>2008-07-07T02:40:00.002+02:00</published><updated>2008-07-07T02:49:55.369+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='EnsurePanelFix'/><category scheme='http://www.blogger.com/atom/ns#' term='TreeView'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><title type='text'>Treeview runtime error on Panel - UpdatePanel - EnsurePanelFix</title><content type='html'>Today i came across a problem in a web part i was developing.&lt;br /&gt;&lt;br /&gt;I had a treeview inside a panel which in turn was inside an Ajax UpdatePanel.&lt;br /&gt;&lt;br /&gt;The normal panel had its visibility set to false by default. And in the web part, clicking a button sets the visibility of that panel to true. I used this method to toggle the visibility of the treeview and related controls that resided with it on the panel.&lt;br /&gt;&lt;br /&gt;Upon implementing this along with the UpdateProgress control and the EnsurePanelFix method, i started getting runtime errors whenever i tried to expand any of the treeview's nodes (all are collapsed by default).&lt;br /&gt;&lt;br /&gt;After spending a lot of time troubleshooting and looking for answers, i discovered that the EnsurePanelFix method was causing the problem. And just for clarity, i'm not using the code provided by microsoft but rather the following simplified version:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;ScriptManager.RegisterStartupScript(this,typeof(UnitBPUploadList),&lt;br /&gt;"UpdatePanelFixup",&lt;br /&gt;"_spOriginalFormAction = document.forms[0].action; _spSuppressFormOnSubmitWrapper=true;",&lt;br /&gt;true);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And so i have found that the ONLY workaround for this is to dynamically add and remove the nodes of the treeview instead of making it visible and invisible each time the toggle is performed.&lt;br /&gt;Everything else can be left on a panel and that panel can be set to visible=true or false as much as you like without having it affect anything else.&lt;br /&gt;&lt;br /&gt;Just make sure that you NEVER touch the .visibility property of the TreeView control.&lt;br /&gt;&lt;br /&gt;-&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-537085199567943125?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/537085199567943125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=537085199567943125' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/537085199567943125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/537085199567943125'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/07/treeview-runtime-error-on-panel.html' title='Treeview runtime error on Panel - UpdatePanel - EnsurePanelFix'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-1281104723596452710</id><published>2008-06-24T15:50:00.004+02:00</published><updated>2008-06-24T15:57:30.998+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='SPList'/><category scheme='http://www.blogger.com/atom/ns#' term='SPSecurity'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>SPList fields - parsing source-code</title><content type='html'>Here is the source-code to obtain an html table of fields for any list:&lt;br /&gt;&lt;br /&gt;(Please note that this example takes place inside the Render(HtmlTextWriter writer) method:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;p&gt;using (SPSite site = new SPSite(SPContext.Current.Site.Url))&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;   using (SPWeb web = site.OpenWeb(SPContext.Current.Web.ServerRelativeUrl))&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;       SPList list = web.Lists["YourList"];&lt;br /&gt;&lt;br /&gt;       SPListItemCollection iCol = list.Items;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;        writer.Write("&amp;lt;table border=\"1\"&amp;gt;");&lt;br /&gt;&lt;br /&gt;       writer.Write("&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;Field name&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;Sample value (if any)&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;");&lt;br /&gt;&lt;br /&gt;       for (int i = 0; i &amp;lt; iCol[0].Fields.Count; i++)&lt;br /&gt;&lt;br /&gt;       {&lt;br /&gt;&lt;br /&gt;           writer.Write("&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;");&lt;br /&gt;&lt;br /&gt;           writer.Write(iCol[0].Fields[i].Title);&lt;br /&gt;&lt;br /&gt;           writer.Write("&amp;lt;/strong&amp;gt;&amp;lt;br/&amp;gt;" + iCol[0].Fields[i].Description);&lt;br /&gt;&lt;br /&gt;           writer.Write("&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;");&lt;br /&gt;&lt;br /&gt;           writer.Write(iCol[0].GetFormattedValue(iCol[0].Fields[i].Title));&lt;br /&gt;&lt;br /&gt;           writer.Write("&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;");&lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       writer.Write("&amp;lt;/table&amp;gt;");&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-1281104723596452710?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/1281104723596452710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=1281104723596452710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/1281104723596452710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/1281104723596452710'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/splist-fields-parsing-source-code.html' title='SPList fields - parsing source-code'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-173081683075948734</id><published>2008-06-24T15:44:00.003+02:00</published><updated>2008-06-24T16:00:01.631+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='SPList'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>SPList fields</title><content type='html'>If you've ever worked with fields from a coding point of view in sharepoint 2007 or plan to do so, then this list is invaluable to you.&lt;br /&gt;&lt;br /&gt;It contains all the default fields for a SPList item. (Remember that pages are essentially list items and the pages collection is essentially a list).&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;strong&gt;Field name&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;&lt;strong&gt;Sample value (if any)&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Content Type ID&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;0x0100E65E7B14B0BC434CB9F70A29DDD8C22E&lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Approver Comments&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;DocumentTitle&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;at work2.jpg&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;DocumentTitle&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;at work2.jpg&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;File Type&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;    &lt;tr&gt; &lt;td&gt;&lt;strong&gt;ID&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Content Type&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;Item&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Modified&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;6/24/2008 5:07 PM&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Created&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;2/20/2008 1:41 AM&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Created By&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;nobr&gt;&lt;span&gt;&lt;a href="/corporate/divisions/officeoftheceo/capacitydepoloyment/agencies/_layouts/userdisp.aspx?ID=1073741823"&gt;System  Account&lt;/a&gt;&lt;img src="/_layouts/images/blank.gif" width="3" border="0" height="1" /&gt;&lt;img alt="" src="/_layouts/images/blank.gif" width="12" border="0" height="12" /&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Modified By&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;nobr&gt;&lt;span&gt;&lt;a href="/corporate/divisions/officeoftheceo/capacitydepoloyment/agencies/_layouts/userdisp.aspx?ID=1073741823"&gt;System  Account&lt;/a&gt;&lt;img src="/_layouts/images/blank.gif" width="3" border="0" height="1" /&gt;&lt;img alt="" src="/_layouts/images/blank.gif" width="12" border="0" height="12" /&gt;&lt;/span&gt;&lt;/nobr&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Has Copy Destinations&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Copy Source&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;owshiddenversion&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;2&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Workflow Version&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;UI Version&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;512&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Version&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;1.0&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Attachments&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;False&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Approval Status&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;Approved&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Select&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Instance ID&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Order&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;300&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;GUID&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;{B16BDAD3-7279-4C90-890E-D64D4FF9FE6E}&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Workflow Instance ID&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;URL Path&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;/corporate/divisions/officeoftheceo/capacitydepoloyment/agencies/Lists/BusinessPortalUploadRecord/3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Path&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;corporate/divisions/officeoftheceo/capacitydepoloyment/agencies/Lists/BusinessPortalUploadRecord&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Modified&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;6/24/2008 5:07 PM&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Created&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;2/20/2008 1:41 AM&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Item Type&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Effective Permissions Mask&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;0x7fffffffffffffff&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Unique Id&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;389a8e63-0d5d-42c8-b8dc-a3702f566496&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;ProgId&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;ScopeId&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;{8FF6C25F-7D37-4569-823F-4E1C2433F5CF}&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;HTML File Type&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Edit Menu Table Start&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Edit Menu Table End&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Server Relative URL&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;/corporate/divisions/officeoftheceo/capacitydepoloyment/agencies/Lists/BusinessPortalUploadRecord/3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Encoded Absolute URL&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;http://dvbmdas15:101/corporate/divisions/officeoftheceo/capacitydepoloyment/agencies/Lists/BusinessPortalUploadRecord/3_.000&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;File Name&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;3_&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Property Bag&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Level&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;strong&gt;Is Current Version&lt;/strong&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;Yes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;See next post for source-code on how to replicate this table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-173081683075948734?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/173081683075948734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=173081683075948734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/173081683075948734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/173081683075948734'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/splist-fields.html' title='SPList fields'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-7558647066764816249</id><published>2008-06-24T12:33:00.004+02:00</published><updated>2008-06-24T12:42:20.510+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>Using AJAX UpdatePanel since Sharepoint SP1</title><content type='html'>When you start with AJAX and sharepoint 2007 webpart after the year 2007, then it can be pretty daunting because most of the information out there on combining AJAX with Sharepoint 2007 was written in 2007 (end even before that in 2006).&lt;br /&gt;&lt;br /&gt;This information is no longer applicable because Sharepoint 2007 SP1 supports AJAX. Sure you still have to modify a couple of things such as the web.config etc. (check my previous posts for a list of checks).&lt;br /&gt;&lt;br /&gt;There are hundreds of websites out there that want to teach you how to use AJAX with Sharepoint 2007. Hell there are even several websites that want to teach you how to use AJAX with Sharepoint 2007 BETA!!!. People should surely take more responsibility for these posts and UPDATE or DELETE them when they are no longer applicable. Unfortunately this does not happen.&lt;br /&gt;&lt;br /&gt;So let me tell you now that next time you google for information on how to do anything AJAX-related in sharepoint 2007 SP1, do yourself a favour and filter for articles written AFTER January 2008.&lt;br /&gt;&lt;br /&gt;So you can safely ignore all those EnsureUpdatePanelFix() and similar pieces of code. Also you can safely ignore BaseWebPart and all other third-party webparts especially designed for ajax use in sharepoint. Using them will just give you more trouble than what its worth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-7558647066764816249?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/7558647066764816249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=7558647066764816249' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/7558647066764816249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/7558647066764816249'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/using-ajax-updatepanel-since-sharepoint.html' title='Using AJAX UpdatePanel since Sharepoint SP1'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-1981794754906391846</id><published>2008-06-18T18:54:00.004+02:00</published><updated>2008-06-18T19:11:06.531+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='accordion'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>Using AjaxControlToolkit Accordion Control with Sharepoint 2007 web part</title><content type='html'>Should you wish to use the AjaxControlToolkit accordion control in a Sharepoint 2007 web part,&lt;br /&gt;&lt;br /&gt;firstly make sure you have gone through the following list of prerequisites and notes:&lt;br /&gt;&lt;a href="http://sharepointinsight.blogspot.com/2008/06/brief-overview-of-requirements-for.html"&gt;Brief overview of requirements for using Ajax with Sharepoint 2007 web parts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You have to make sure you programmatically create the control in the web part codebehind. Do it in the method "&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;protected override void CreateChildControls()&lt;/span&gt;&lt;/span&gt;"&lt;/li&gt;&lt;li&gt;Define the control as a global variable:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;Accordion Accordion1;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Initialise the control in the &lt;span style="font-weight: bold;"&gt;CreateChildControls()&lt;/span&gt; method&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;Accordion1 = new Accordion();&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Make sure you give it an ID&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;Accordion1.ID = "Accordion1";&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Set the selected index&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;Accordion1.SelectedIndex = 0;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Set other properties such as FadeTransitions and TransitionDuration etc&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;Accordion1.FadeTransitions = true;&lt;br /&gt;Accordion1.FramesPerSecond = 20;&lt;br /&gt;Accordion1.TransitionDuration = 100;&lt;br /&gt;Accordion1.AutoSize = AutoSize.none;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add the accordion control to the page's controls collection&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;this.Controls.Add(Accordion1)  &lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;(note: this still takes place in the CreateChildControls() method)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add panes in the following way:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;AccordionPane pane1 = new AccordionPane()&lt;br /&gt;string header = "this is the pane header";&lt;br /&gt;pane1.HeaderContainer.Controls.Add(new LiteralControl(header);&lt;br /&gt;string content = "this is the pane content";&lt;br /&gt;pane1.ContentContainer.Controls.Add(new LiteralControl(content));&lt;br /&gt;Accordion1.Panes.Add(pane1);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Remember that the following line of code must ALWAYS be at the end of the CreateChildControls() method:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;base.CreateChildControls();&lt;/span&gt;&lt;/li&gt;&lt;li&gt;In your web part's &lt;span style="font-weight: bold;"&gt;Render(HtmlTextWriter writer)&lt;/span&gt; method&lt;br /&gt;add the following at the location where you want the control to be displayed:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;this.Accordion1.RenderControl(writer);&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;That should do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-1981794754906391846?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/1981794754906391846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=1981794754906391846' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/1981794754906391846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/1981794754906391846'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/using-ajaxcontroltoolkit-accordion.html' title='Using AjaxControlToolkit Accordion Control with Sharepoint 2007 web part'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-5239411460741550030</id><published>2008-06-18T18:31:00.008+02:00</published><updated>2008-06-24T12:41:26.779+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>Brief overview of requirements for using Ajax with Sharepoint 2007 web parts</title><content type='html'>If you want to use the AjaxControlToolkit controls with Sharepoint 2007,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notes/Checklist:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Installed the Ajax Server Extensions&lt;/li&gt;&lt;li&gt;Installed the AjaxControlToolkit&lt;/li&gt;&lt;li&gt;Upgraded Sharepoint to Service Pack 1 or later&lt;/li&gt;&lt;li&gt;Upgraded WSS 3.0 to Service Pack 1 or later&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copied the AjaxControlToolkit.dll file to the bin folder of your portal under C:\Inetpub\wwwroot\wss\VirtualDirectories\yoursite\bin&lt;/li&gt;&lt;li&gt;Updated the Web.config by adding relevant entries to support Ajax -&gt; C:\Inetpub\wwwroot\wss\VirtualDirectories\80\web.config (copy entries from web.config in a website you created by using the Ajax Enabled website starter kit in Visual Studio)&lt;/li&gt;&lt;li&gt;FORGET ABOUT SMARTPART or any other 3rd party web parts that convert user controls into web parts. That was a crude workaround for versions of sharepoint before service pack 1.&lt;/li&gt;&lt;li&gt;Use the web part development add-in for visual studio (use it to develop, deploy and debug)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add Scriptmanager control to your masterpage&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);font-size:85%;" &gt;&lt;webpartpages:spwebpartmanager runat="server"&gt;&lt;br /&gt;&amp;lt;WebPartPages:SPWebPartManager runat="server"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server"/&amp;gt;&lt;/webpartpages:spwebpartmanager&gt;&lt;/span&gt;   &lt;-- that is exactly where you must insert it &lt;/li&gt;&lt;li&gt;Remember to publish your masterpage after adding the scriptmanager&lt;/li&gt;&lt;li&gt;Toolkit controls have to be dynamically constructed in web part codebehind&lt;/li&gt;&lt;li&gt;If your webparts are iterating through sub-sites remember to use the SpSecurity.Delegate functionality as described in an earlier post in this blog.&lt;/li&gt;&lt;/ul&gt;If you're reading this and you see that i've missed something, please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-5239411460741550030?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/5239411460741550030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=5239411460741550030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/5239411460741550030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/5239411460741550030'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/brief-overview-of-requirements-for.html' title='Brief overview of requirements for using Ajax with Sharepoint 2007 web parts'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-5832567764014851715</id><published>2008-06-18T15:17:00.002+02:00</published><updated>2008-06-18T15:20:49.347+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>Remove bad or broken web parts from a page</title><content type='html'>During the process of developing web parts, you might stumble on to situations where a web part that you've developed is causing errors on a page.&lt;br /&gt;&lt;br /&gt;In a wide variety of scenarios, you might want to remove that web part from the specific page but you are unable to do this because the page cannot render.&lt;br /&gt;&lt;br /&gt;To remedy this, you can use the Web Part Maintenance page for that specific page.&lt;br /&gt;&lt;br /&gt;There is a long convoluted way of reaching this page but the straight-forward way of reaching it is:&lt;br /&gt;&lt;br /&gt;&gt; Add the following to the and of your URL: &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;?contents=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example: &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;http://www.mysite.com/sitecol/default.aspx?contents=1&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-5832567764014851715?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/5832567764014851715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=5832567764014851715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/5832567764014851715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/5832567764014851715'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/remove-bad-or-broken-web-parts-from.html' title='Remove bad or broken web parts from a page'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-2624423094922025521</id><published>2008-06-18T13:13:00.005+02:00</published><updated>2008-06-18T19:16:55.652+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Automatically insert quotes in Visual Studio when editing HTML</title><content type='html'>A nice feature of Visual Studio 2005 that is DISABLED BY DEFAULT is to automatically insert attribute value quotes.&lt;br /&gt;&lt;br /&gt;So when typing something like &lt;span style="font-weight: bold;"&gt;(td valign=&lt;/span&gt; the editor will automatically insert: &lt;span style="font-weight: bold;"&gt;(td valign=""&lt;/span&gt;  and place the cursor inbetween the two newly inserted quotation marks.&lt;br /&gt;&lt;br /&gt;To enable this feature, follow these steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;From the menu select Tools | Options&lt;/li&gt;&lt;li&gt;Expand the "Text Editor" node&lt;/li&gt;&lt;li&gt;Expand the "HTML" node&lt;/li&gt;&lt;li&gt;Click on the "Format" node&lt;/li&gt;&lt;li&gt;Tick the "Insert attribute value quotes when typing" tickbox under the "Automatic formatting options" group. (see image below)&lt;/li&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_28AYzfpO8Co/SFjvf5ePjXI/AAAAAAAAAA4/AY3D7WH7L4g/s1600-h/vsquotes.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 587px; height: 380px;" src="http://bp0.blogger.com/_28AYzfpO8Co/SFjvf5ePjXI/AAAAAAAAAA4/AY3D7WH7L4g/s400/vsquotes.gif" alt="" id="BLOGGER_PHOTO_ID_5213179899964001650" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ol&gt;Thats it.&lt;br /&gt;&lt;br /&gt;Fin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-2624423094922025521?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/2624423094922025521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=2624423094922025521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/2624423094922025521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/2624423094922025521'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/06/automatically-insert-quotes-in-visual.html' title='Automatically insert quotes in Visual Studio when editing HTML'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_28AYzfpO8Co/SFjvf5ePjXI/AAAAAAAAAA4/AY3D7WH7L4g/s72-c/vsquotes.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-8036739645677497202</id><published>2008-03-06T14:49:00.004+02:00</published><updated>2008-06-18T19:17:40.339+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ScriptManager'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><title type='text'>Requires ScriptManager</title><content type='html'>ISSUES ISSUES ISSUES!&lt;br /&gt;&lt;br /&gt;I got the whole AJAX thing workin in MOSS2007 and its really cool, i've got this accordion control that im using. Thing is tho that it came time to test other user roles and i have this dummy contributor user and once i swapped to that user... it stopped working!!&lt;br /&gt;&lt;br /&gt;I suddenly got the "Accordion1_AccordionExtender" requires ScriptManager blA bla bla... and i'm like ..what the frikken hell???&lt;br /&gt;&lt;br /&gt;So after rummaging around on yahoo for issues with security i realised that i hadnt PUBLISHED THE FRICKEN MASTERPAGE!!!!!&lt;br /&gt;&lt;br /&gt;So yeah hope that saves someone else from wasting all that crappy time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-8036739645677497202?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/8036739645677497202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=8036739645677497202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8036739645677497202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8036739645677497202'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/03/requires-scriptmanager.html' title='Requires ScriptManager'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-8979405693303239094</id><published>2008-03-05T16:59:00.003+02:00</published><updated>2008-06-18T19:18:35.065+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPSecurity'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='web parts'/><title type='text'>RunWithElevatedPrivelages</title><content type='html'>I'm sure many many people have tried building web parts that need to perform operations to which the currently logged user potentially doesnt have security clearance for.&lt;br /&gt;&lt;br /&gt;I'm one of those persons.&lt;br /&gt;&lt;br /&gt;The easiest most effective way to accomplish this is to use the &lt;span style="color: rgb(0, 0, 153);font-family:courier new;" &gt;&lt;strong&gt;SPSecurity.RunWithElevatedPrivelages(delegate())&lt;/strong&gt; &lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;method.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When i started looking into this i found several sources indicating that the correct way of using this method is as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;SPWeb objWeb = SPControl.GetContextWeb(Context);&lt;br /&gt;SPSecurity.RunWithElevatedPrivileges(delegate()&lt;br /&gt;{&lt;br /&gt;      using (SPSite objElevatedSite = new SPSite(objWeb.Site.ID))&lt;br /&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;              using (SPWeb objElevatedWeb = objElevatedSite.OpenWeb())&lt;br /&gt;             {&lt;br /&gt;                  // Allow unsafe updates because you can’t save changes&lt;br /&gt;                  // during HTTP GET requests.&lt;br /&gt;                  objElevatedWeb.AllowUnsafeUpdates = true;&lt;br /&gt;                  SPNavigationNode node = new SPNavigationNode( å&lt;br /&gt;                  “My Custom Node”, “http://node.url”, true);&lt;br /&gt;                  objElevatedWeb.Navigation.QuickLaunch.AddAsFirst(node);&lt;br /&gt;                  objElevatedWeb.Update();&lt;br /&gt;              }&lt;br /&gt;       }&lt;br /&gt;}&lt;br /&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And this worked fine for me when using Web User Controls. But somehow when i used this structure in web parts, i got the "using disposed SPWeb object no longer supported" error and it was difficult in this context to select an SPWeb which was not the current contextual web.&lt;br /&gt;&lt;br /&gt;Thus i submit to thee THIS method which worked perfectly for me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;SPSecurity.CodeToRunElevated objCode = new SPSecurity.CodeToRunElevated(YourMethod);&lt;br /&gt;SPSecurity.RunWithElevatedPrivileges(objCode);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this scenario, "YourMethod" is a separate method which you call via the delegate.&lt;br /&gt;&lt;br /&gt;Make sure to select any specific webs in the following way (or similar)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;SPWeb selectedWeb = SPControl.GetContextWeb(Context).Webs[_targetSiteCollection];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(Actually I havent confirmed this but it worked for me and thats where i stopped).&lt;br /&gt;&lt;br /&gt;Hope this helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-8979405693303239094?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/8979405693303239094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=8979405693303239094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8979405693303239094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8979405693303239094'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2008/03/runwithelevatedprivelages.html' title='RunWithElevatedPrivelages'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-283603411515706681</id><published>2007-07-26T10:37:00.001+02:00</published><updated>2008-06-18T19:19:24.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2007'/><title type='text'>Web User Controls in Sharepoint</title><content type='html'>As a Sharepoint 2007 / WSS developer you sometimes need to achieve some sort of design constrained functionality which just cannot be solved by using web parts or anything else but user controls.&lt;br /&gt;&lt;br /&gt;User controls are perfect because you can put them anywhere and not have to worry about sharepoint server controls and the like.&lt;br /&gt;&lt;br /&gt;Let me guide you through the process of creating a simple "hello world" user control and then implementing it into your sharepoint site's home page.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Create a web project&lt;/span&gt;&lt;br /&gt;For the sake of convenience, i strongly suggest that you create your web project in the following directory:&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\WebSite1\&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(You can replace "WebSite1" with whatever you prefer to call the folder)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The reason for this is that you're gonna have to copy and paste your user controls from this directory to the &lt;span style="color: rgb(255, 102, 0);"&gt;CONTROLTEMPLATES&lt;/span&gt; directory at the following location:&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_28AYzfpO8Co/RqhgeQF5v7I/AAAAAAAAAAc/HKOl5Mh4wX8/s1600-h/foldersscreenshot.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_28AYzfpO8Co/RqhgeQF5v7I/AAAAAAAAAAc/HKOl5Mh4wX8/s320/foldersscreenshot.gif" alt="" id="BLOGGER_PHOTO_ID_5091425451574411186" border="0" /&gt;&lt;/a&gt;The two folders are geographically close, if you open up the layouts folder in windows explorer and enable your folder view, you will be able to see the &lt;span style="color: rgb(255, 102, 0);"&gt;CONTROLTEMPLATES &lt;/span&gt;folder a couple of folders up.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Develop the User Control&lt;/span&gt;&lt;br /&gt;I assume that you've created Web User Controls before and know what i'm talking about when i say "Develop the User Control".&lt;br /&gt;I write all my code in C# and i use code-behind files.&lt;br /&gt;&lt;br /&gt;I usually leave the &lt;span style="color: rgb(0, 153, 0);"&gt;Page_Load&lt;/span&gt; method blank and create a new one to the effect of&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;protected void&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;RenderWhateverImDoing()&lt;/span&gt;  ~ and put all my code in there. That way i have exact control of where in my user control the code gets executed because my .ascx file looks like this:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;font-size:78%;"  &gt;&lt;%@ Control Language="C#" AutoEventWireup="true" CodeFile="WhateverImDoing.ascx.cs" Inherits="WhateverImDoing" %&gt;&lt;br /&gt;&lt;%RenderWhateverImDoing(); %&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So in your &lt;span style="color: rgb(0, 102, 0);"&gt;RenderWhateverImDoing()&lt;/span&gt; method, add the code: &lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Response.Write("Hello Sharepoint World!");&lt;/span&gt;&lt;/span&gt; or something similar and save all files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Copy the User Control to the CONTROLTEMPLATES folder&lt;/span&gt;&lt;br /&gt;After saving the files, go to the project folder in windows explorer and copy the &lt;span style="color: rgb(153, 0, 0);"&gt;WhateverImDoing.ascx&lt;/span&gt; file and the &lt;span style="color: rgb(153, 0, 0);"&gt;WhateverImDoing.ascx.cs&lt;/span&gt; files to the &lt;span style="color: rgb(255, 102, 0);"&gt;CONTROLTEMPLATES&lt;/span&gt; folder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Register the control.&lt;/span&gt;&lt;br /&gt;I assume you are familiar with the master page and layout page concepts and that you know how to create both and utilise them in the Sharepoint environment.&lt;br /&gt;&lt;br /&gt;The beauty of this is that you can place your user control in either the master page or the layout page. Place it in the master page if you want your user-control to be available and active as part of the template or put it into a layout page if you wish to only make it available on one specific page. If you put it in a layout page you'll have to apply that layout to the page you want to affect in sharepoint via the "edit page settings" option in the "Actions" menu or via the "Manage content" section of sharepoint.&lt;br /&gt;&lt;br /&gt;The control register page directive goes at the top of the page, just below all other page directives you already have. Note that page directives all start with "&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;&lt;%@&lt;/span&gt;".&lt;br /&gt;Now go ahead and add the registration page directive for your new user control:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;font-size:85%;"  &gt;&lt;%@ Register Src="~/_controltemplates/WhateverImDoing.ascx" TagName="WhateverImDoing" TagPrefix="MyControls" %&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Add the Server tag to the HTML&lt;/span&gt;&lt;br /&gt;Now that you've registered the control, you need to reference it in the appropriate place by using it as a server control in HTML. Whatever HTML gets generated by your user control will replace your user control server tag at runtime. So in other words, wherever you put your Tag, thats where "Hello Sharepoint World!" will get inserted.&lt;br /&gt;&lt;br /&gt;Your server tag will look like this:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;font-size:85%;"  &gt;&amp;lt;MyControls:WhateverImDoing id="WhateverImDoingControl" runat="server"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And thats it! There is one last step to this if you've added your user control to a page layout file and that is to go and apply the specified layout to the page you want to display the user control on. Other than that all you need to do is go and test by navigating to the page (any page that has the customised master page applied to it if you used it in a master page).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IMPORTANT NOTE:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Whenever you make changes to the code-behind of your user control, you need to "tap" the .ascx file. This entail modifying the .asxc page by either adding a space or making some other kind of negligible change to the file so that the modified date on the file changes. You need to do this in order to avoid caching problems in sharepoint. So when you've made code changes to your user control and the changes arent reflecting on the portal, it might just be that you forgot to "tap" the .ascx file and sharepoint is still showing you the old version.&lt;br /&gt;&lt;br /&gt;-Fin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-283603411515706681?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/283603411515706681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=283603411515706681' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/283603411515706681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/283603411515706681'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2007/07/web-user-controls-in-sharepoint.html' title='Web User Controls in Sharepoint'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_28AYzfpO8Co/RqhgeQF5v7I/AAAAAAAAAAc/HKOl5Mh4wX8/s72-c/foldersscreenshot.gif' height='72' width='72'/><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-3119757797759739869</id><published>2007-07-23T13:12:00.000+02:00</published><updated>2007-07-23T13:16:22.225+02:00</updated><title type='text'>Google Docs</title><content type='html'>Okay, so how cool is this?&lt;br /&gt;&lt;br /&gt;This document was created using the Google Docs &amp;amp; Spreadsheets site.&lt;br /&gt;&lt;br /&gt;It was posted to my blog using the same thing.&lt;br /&gt;&lt;br /&gt;Check it out &lt;a title="Click me to open link in new window" target="_blank" href="http://docs.google.com/"&gt;HERE&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;(( okay so its not all that cool, i had to come afterwards and add a title to this post because i couldn't find anyplace in google docs to do that. And yes, i know this is not Sharepoint related but so what ))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-3119757797759739869?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/3119757797759739869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=3119757797759739869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/3119757797759739869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/3119757797759739869'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2007/07/google-docs.html' title='Google Docs'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-8388229382397681378</id><published>2007-07-23T12:19:00.000+02:00</published><updated>2007-07-23T12:32:44.422+02:00</updated><title type='text'>CSS Customisation Tool</title><content type='html'>If you're gonna find yourself customising the CSS stylesheets of your Sharepoint portal then you have to get one of these two browser plugins.&lt;br /&gt;&lt;br /&gt;First off we have the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en"&gt;IE Developer Toolbar&lt;/a&gt; for Internet explorer:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_28AYzfpO8Co/RqSBoAF5v5I/AAAAAAAAAAM/-_rB5yREsWo/s1600-h/iedevelopertoolbarscreenshot.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 482px; height: 155px;" src="http://bp3.blogger.com/_28AYzfpO8Co/RqSBoAF5v5I/AAAAAAAAAAM/-_rB5yREsWo/s320/iedevelopertoolbarscreenshot.gif" alt="" id="BLOGGER_PHOTO_ID_5090336003055009682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/STARKB%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And then we have &lt;a href="http://www.getfirebug.com/"&gt;Firebug&lt;/a&gt; for Mozilla Firefox:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_28AYzfpO8Co/RqSDAgF5v6I/AAAAAAAAAAU/mECwoRJOebs/s1600-h/firebugtoolbarscreenshot.gif"&gt;&lt;img style="cursor: pointer; width: 481px; height: 139px;" src="http://bp1.blogger.com/_28AYzfpO8Co/RqSDAgF5v6I/AAAAAAAAAAU/mECwoRJOebs/s320/firebugtoolbarscreenshot.gif" alt="" id="BLOGGER_PHOTO_ID_5090337523473432482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Firebug is a really really nice little tool and it allows you to do inline / live CSS customization by editing currently applied styles or adding new ones on the fly. This allows you to tweak and tweak and tweak until you get your layout looking exactly the way you want it.&lt;br /&gt;&lt;br /&gt;IE dev toolbar is a little bit more rudimentary but it does have the nice feature of enabling you to track a specific style to its file and definition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-8388229382397681378?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/8388229382397681378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=8388229382397681378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8388229382397681378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8388229382397681378'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2007/07/css-customisation-tool.html' title='CSS Customisation Tool'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_28AYzfpO8Co/RqSBoAF5v5I/AAAAAAAAAAM/-_rB5yREsWo/s72-c/iedevelopertoolbarscreenshot.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-8109593041445161544</id><published>2007-07-23T12:17:00.000+02:00</published><updated>2007-07-23T12:18:24.535+02:00</updated><title type='text'>Co-Authors wanted</title><content type='html'>If anyone stumbles upon this blog and feels they would like to contribute, please drop me a comment and we can talk about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-8109593041445161544?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/8109593041445161544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=8109593041445161544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8109593041445161544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8109593041445161544'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2007/07/co-authors-wanted.html' title='Co-Authors wanted'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2485492690852163878.post-8919486830131444520</id><published>2007-07-23T12:00:00.000+02:00</published><updated>2007-07-23T12:12:12.925+02:00</updated><title type='text'>The wonderful world of Sharepoint 2007</title><content type='html'>A couple of months ago I was asked to assist a client in every way possible to apply our new website design for them on Sharepoint 2007. The last time i worked with Sharepoint was about 5 or 6 years previous.&lt;br /&gt;&lt;br /&gt;A daunting task lay ahead.&lt;br /&gt;&lt;br /&gt;In this blog I will share my experiences and everything I heave learnt about Sharepoint 2007, customization and development.&lt;br /&gt;&lt;br /&gt;Hope it helps someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2485492690852163878-8919486830131444520?l=sharepointinsight.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointinsight.blogspot.com/feeds/8919486830131444520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2485492690852163878&amp;postID=8919486830131444520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8919486830131444520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2485492690852163878/posts/default/8919486830131444520'/><link rel='alternate' type='text/html' href='http://sharepointinsight.blogspot.com/2007/07/wonderful-world-of-sharepoint-2007.html' title='The wonderful world of Sharepoint 2007'/><author><name>Stark Botha</name><uri>http://www.blogger.com/profile/09124904471621456900</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/-a9qfjuDq7zk/Tf_Dtcg7IsI/AAAAAAAAADI/W50w8sKDwLU/s220/gravatar.png'/></author><thr:total>0</thr:total></entry></feed>
