<?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-2143363931801234725</id><updated>2012-02-03T07:19:39.969-08:00</updated><category term='SharePoint'/><category term='coalesce'/><category term='MOSS'/><category term='SharePoint 2010; Install;PrerequisiteInstaller.exe'/><category term='sql'/><title type='text'>SharePoint Features and Failures</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-5218810253777286549</id><published>2012-02-02T12:05:00.000-08:00</published><updated>2012-02-03T07:19:39.978-08:00</updated><title type='text'>SharePoint 2010 - Documents Tab</title><content type='html'>while trying to make the transition from sharepoint 2007 to 2010, I've found that the default view of the ribon is confusing. What is the point of the browse tab? Especially if you're in a document library/list? In 07, useres have quick access to upload a document or create a new list item. In 2010, they must click a tab on the ribbon to be able to see that button.&lt;br /&gt;To solve that problem, I want the documents or list items tab to be automatically selected for them.&lt;br /&gt;&lt;br /&gt;I found two blogs that talk about this issue. I found that neither one really did what I want.&lt;br /&gt;&lt;br /&gt;This site talks about how to set it as the default using the query string. Thought this might work for some, I can't change every link on every page to pass this as a parameter.&lt;br /&gt;&lt;a href="http://www.iotap.com/Blog/tabid/673/entryid/149/Displaying-default-tab-in-Sharepoint-2010-Ribbon.aspx"&gt;http://www.iotap.com/Blog/tabid/673/entryid/149/Displaying-default-tab-in-Sharepoint-2010-Ribbon.aspx&lt;/a&gt;&lt;br /&gt;This second page talks about using javascript to set it to a custom tab based on some rules you setup in the javascript. I simplified this code for my use:&lt;br /&gt;&lt;a href="http://code.bkwdesign.com/2011/01/11/using-jquery-to-activate-default-sharepoint-tab/"&gt;http://code.bkwdesign.com/2011/01/11/using-jquery-to-activate-default-sharepoint-tab/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is probably a better way to do this using some built in sharepoint javascript funciton. I found one blog post that mentioned something like that, but I was unable to get it to work. &lt;br /&gt;&lt;br /&gt;The following code will automatically select the Documents tab in a document library and the List Item tab in a list. In any other case it should not do anything, so it's safe to put on every page. You could also add in other options to handle pages librarys or some other case I haven't run into yet.&lt;br /&gt;I added this code to my master page, but you could easily add it to a javascript file and add a reference to your master page or page layout or whatever, even put it in a Content Editor for one particular page. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's the code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  function setTabDefault(tabid){&lt;br /&gt;     $(&amp;quot;li[id=&amp;quot; + tabid + &amp;quot;] a span.ms-cui-tt-span&amp;quot;).trigger('click');&lt;br /&gt;  }&lt;br /&gt;  $(document).ready(function () {&lt;br /&gt;  &lt;br /&gt;      setTimeout(&amp;quot;setTabDefault('Ribbon.Document-title');&amp;quot;,150);&lt;br /&gt;      setTimeout(&amp;quot;setTabDefault('Ribbon.ListItem-title');&amp;quot;,150);      &lt;br /&gt;        &lt;br /&gt;  });&lt;br /&gt;   &lt;br /&gt;&amp;lt;/script&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-5218810253777286549?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/5218810253777286549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=5218810253777286549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/5218810253777286549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/5218810253777286549'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2012/02/sharepoint-2010-documents-tab.html' title='SharePoint 2010 - Documents Tab'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-7008411975649262178</id><published>2010-12-02T14:54:00.000-08:00</published><updated>2010-12-02T15:18:05.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010; Install;PrerequisiteInstaller.exe'/><title type='text'>Installing SharePoint 2010 Without Internet Access</title><content type='html'>Recently, I was forced to install SharePoint 2010 on a network without internet access. Due to the fact that SP2010 requires about a dozen prerequisites, this is much more difficult than it should be.&lt;br /&gt;There is a way to set up the installer to not attempt to access the internet to download the prerequisites.&lt;br /&gt;First, You'll need a computer that has internet access so that you can download the prerequisites.&lt;br /&gt;Fortunately, someone did the work for me to do this part.&lt;br /&gt;The&lt;a href="http://autospinstaller.codeplex.com/releases/view/44442"&gt; SharePoint PowerShell script to download all the prerequisite files&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SharePoint can be downloaded as an ISO from Microsoft. You'll need to get this and copy all the files into a directory somewhere. Put all the prerequisite files in the ""PrerequisiteInstallerFiles" folder.&lt;br /&gt;This list assumes you are installing on Server 2008 R2. Server 2008 has some slightly different items and hotfixes&lt;br /&gt;&lt;br /&gt;Next, create a file called: "PrerequisiteInstaller.Arguments.txt". Open it up in notepad and add:&lt;br /&gt;&lt;br /&gt;/SQLNCli:PrerequisiteInstallerFiles\sqlncli.msi /ChartControl:PrerequisiteInstallerFiles\MSChart.exe /IDFXR2:PrerequisiteInstallerFiles\Windows6.1-KB974405-x64.msu  /Sync:PrerequisiteInstallerFiles\Synchronization.msi /FilterPack:PrerequisiteInstallerFiles\FilterPack\FilterPack.msi  /KB976462:PrerequisiteInstallerFiles\Windows6.1-KB976462-v2-x64.msu /KB976394:PrerequisiteInstallerFiles\Windows6.0-KB976394-x64.msu /ADOMD:PrerequisiteInstallerFiles\SQLSERVER2008_ASADOMD10.msi /Speech:PrerequisiteInstallerFiles\SpeechPlatformRuntime.msi /SpeechLPK:PrerequisiteInstallerFiles\MSSpeech_SR_en-US_TELE.msi /ReportingServices:PrerequisiteInstallerFiles\rsSharePoint.msi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NOTE: This should all be on one line! No New lines!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you run the SharePoint setup.exe, it'll run the PrerequisiteInstaller.exe which will read the arguments file, and load the files from the prerequisites installer directory instead of trying to go to the internet!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-7008411975649262178?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/7008411975649262178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=7008411975649262178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/7008411975649262178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/7008411975649262178'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2010/12/installing-sharepoint-2010-without.html' title='Installing SharePoint 2010 Without Internet Access'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-1636967795759444129</id><published>2010-11-10T08:11:00.000-08:00</published><updated>2010-11-10T08:19:28.194-08:00</updated><title type='text'>Mapping Office Shared Template Location to a SharePoint Library</title><content type='html'>A user asked if you can create a new word document from a template that is stored in SharePoint.&lt;br /&gt;Normally, i'd say sure, lets make it a content type, add it to the doc library and just click new! But of course this doesn't work. how many users really do that anyway? None of mine.&lt;br /&gt;&lt;br /&gt;So, i found out there is a Word Workgroup Templates folder that you can set. When you click new, my templates, it will show you all the templates from that folder. It even creates tabs for the sub folders. Very nice.&lt;br /&gt;&lt;br /&gt;To set the folder in Word 2007&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Word Options&lt;/li&gt;&lt;li&gt;General -&gt; File Locations&lt;/li&gt;&lt;li&gt;Set the folder for Workgroup Template.&lt;/li&gt;&lt;/ol&gt;Unfortunatly, you can't just enter a sharepoint URL, or even the Shared folder path (\\portal\somesite\templates\). It will give you an error saying "You cannot use an internet address here. Enter a path that points to a location on your computer or on the network".&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;Trick Word.&lt;br /&gt;&lt;br /&gt;Map a drive to the SharePoint folder path. Then tell word to point to that folder.&lt;br /&gt;&lt;br /&gt;I chose to map T:\ to \\portal\somesite\templates\ and then told word that my templates folder is t:\&lt;br /&gt;&lt;br /&gt;Problem solved!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-1636967795759444129?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/1636967795759444129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=1636967795759444129' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/1636967795759444129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/1636967795759444129'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2010/11/mapping-office-shared-template-location.html' title='Mapping Office Shared Template Location to a SharePoint Library'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-6157340240987833867</id><published>2010-10-29T14:14:00.000-07:00</published><updated>2010-10-29T14:25:29.269-07:00</updated><title type='text'>Programtically hiding SharePoint Document Information Panel in an Office Document</title><content type='html'>Using the Document Information Panel in SharePoint to show document information in Office can be very useful for users. I've used it to show information from a custom database inside of word so that users can find out what a document is about without having to visit the SharePoint site. This is very useful for when a user gets assigned a document from a sharepoint workflow.&lt;br /&gt;&lt;br /&gt;The problem with this was that documents that did not connect to our Document Management system would not show any data. In a perfect world, the *special* documents would use a different content type so that using a different Document Information Panel would be easy. This was not the case in our system.&lt;br /&gt;&lt;br /&gt;SO! How do you tell Word to hide the DIP when there is no data to show?&lt;br /&gt;&lt;br /&gt;Microsoft has put together a nice post on how to do it:&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc500578.aspx"&gt; http://msdn.microsoft.com/en-us/magazine/cc500578.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The problem is that this does not work. This requires you to have access to the Word API. When using a SharePoint DIP you only have the InfoPath API.&lt;br /&gt;&lt;br /&gt;When the document loads, it attempts to get data from the database. The specific key to look-up data from the database is stored as a custom column on the document. Getting this is relatively easy, and many other blogs have written about it.&lt;br /&gt;&lt;br /&gt;When the data key is blank(a document that someone uploaded to the Doc Library, not a System generated file), we are unable to get any data. I would like to hide the DIP in this case, but we can't!&lt;br /&gt;&lt;br /&gt;Instead, I created a blank view. Then, in the OnLoad event, when the data can't be loaded, I set the default view to be the blank view. You could also do this the other way. Set the blank view as the default and then if data loads OK, set it to be your nice, pretty, data filled view.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The code to set the default view is simple:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;e.SetDefaultView(&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(163, 21, 21);font-size:85%;" &gt;"Blank"&lt;/span&gt;&lt;span style="font-style: italic;"&gt;) ;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where &lt;span style="font-style: italic;"&gt;e&lt;/span&gt; is passed to you in the FormEvents_Loading parameter: &lt;span style="font-style: italic;"&gt;LoadingEventArgs e&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Problem Solved!&lt;br /&gt;I also put a nice note on the data filled view that says the data was unable to load, just in case someone switches over to that view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-6157340240987833867?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/6157340240987833867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=6157340240987833867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/6157340240987833867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/6157340240987833867'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2010/10/programtically-hiding-sharepoint.html' title='Programtically hiding SharePoint Document Information Panel in an Office Document'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-146279304438704776</id><published>2010-09-24T09:11:00.000-07:00</published><updated>2010-09-24T09:32:05.119-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='coalesce'/><title type='text'>Getting Rows of data as a single column in a SQL query</title><content type='html'>Recently, I've been working on a Sharepoint Based document workflow solution that uses a custom SQL database. I ran into an issue where I needed to join a database table and get many rows of data back as one column in a query.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;Table A:&lt;br /&gt;ID, Name,&lt;br /&gt;&lt;br /&gt;Table B:&lt;br /&gt;childName, ParentID&lt;br /&gt;&lt;br /&gt;where parent ID is table A.ID&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I needed my results to be in the format:&lt;br /&gt;A.ID, name, (childName1, ChildName2,ChildName3,....)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I found a few options,&lt;br /&gt;One:&lt;a href="http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/"&gt; http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Provided about a dozen different ways to do it. All of them looked overly complex.&lt;br /&gt;&lt;br /&gt;Then i stumbled upon:&lt;br /&gt;&lt;a href="http://johnnycoder.com/blog/2006/09/05/concatenate-multiple-rows-into-a-single-string/"&gt;http://johnnycoder.com/blog/2006/09/05/concatenate-multiple-rows-into-a-single-string/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;which provided a simple Scalar function to return the results.  I took that method and put together a SQL Scalar function to do it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;CREATE FUNCTION GetChildrenFromParent&lt;br /&gt;(&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  @ParentID varchar(15)&lt;br /&gt;)&lt;br /&gt;RETURNS varchar(5000)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;  DECLARE @ChildList varchar(5000)&lt;br /&gt;&lt;br /&gt;  SET @&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ChildList&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; = ''&lt;br /&gt;&lt;br /&gt;  select @&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ChildList&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; = coalesce(@&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ChildList&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;+ ', ', '') + childName from B where ParentID=@&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ParentID &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  -- Return the result of the function&lt;br /&gt;  RETURN @&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ChildList&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;END&lt;br /&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then my SQL to get the data looks something like:&lt;br /&gt;select *,&lt;span style="font-family:verdana;"&gt;GetChildrenFromParent(id) as ChildNames from A&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This returns results like:&lt;br /&gt;&lt;br /&gt;1|Jeff| andy,mark,shannon&lt;br /&gt;&lt;br /&gt;so, the one column is a comma separated list of rows of data from another table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-146279304438704776?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/146279304438704776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=146279304438704776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/146279304438704776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/146279304438704776'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2010/09/getting-rows-of-data-as-single-column.html' title='Getting Rows of data as a single column in a SQL query'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-870379242462164182</id><published>2010-04-22T06:55:00.001-07:00</published><updated>2010-04-22T07:04:38.749-07:00</updated><title type='text'>How to make a film strip the default view for a Picture Library</title><content type='html'>Recently, I was trying to make a picture library for a customer to store their pictures in. I would prefer to use the film strip view as the default view because I think it is nicer looking.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem is that the details/filmstrip/thumbnails views are controlled via javascript, they do not change the URL when you visit the page and they cannot be set as the default view.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found:&lt;/div&gt;&lt;div&gt;&lt;a href="http://jyhuh.com/blog/2009/11/how-to-make-a-filmstrip-a-default-view-for-a-picture-library/"&gt;http://jyhuh.com/blog/2009/11/how-to-make-a-filmstrip-a-default-view-for-a-picture-library/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;which has a pretty good description of how to fix this issue. Only problem is that the most important part, the javascript, is not visible!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've decided to post it here so that it's easy to find.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Times New Roman';font-size:medium;"&gt;&lt;script&gt;SwitchViewStyle('filmstrip');&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&amp;lt;script&amp;gt;SwitchViewStyle('filmstrip');&amp;lt;/script &amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Times New Roman';"&gt;You'll need to add a content editor to the page, and add this javascript to it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'Times New Roman';"&gt;Make sure you add the content editor web part after the Picture Library View Web part. Otherwise, as the page loads, it runs the javascript before the Picture library exists and does nothing.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-870379242462164182?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/870379242462164182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=870379242462164182' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/870379242462164182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/870379242462164182'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2010/04/how-to-make-film-strip-default-view-for.html' title='How to make a film strip the default view for a Picture Library'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-8644278380247448958</id><published>2009-11-23T18:07:00.001-08:00</published><updated>2009-11-23T18:15:44.991-08:00</updated><title type='text'>SharePoint 2010</title><content type='html'>After days of messing around with the installer, it's finally installed.&lt;br /&gt;Here's what I've learned:&lt;br /&gt;Don't try to pre-install any pre-requisites. Chances are you'll install the wrong version, or something that will prevent it from installing. IE. visual studio 2010, powershell, etc.&lt;br /&gt;&lt;br /&gt;Don't bother trying to install SQL server and setup a development environment. If your server isn't part of a domain the SharePoint 2010 won't let you install it using full SQL Server.&lt;br /&gt;&lt;br /&gt;The other thing I learned is that Windows Server 2008's default security settings are annoying. It would be awesome if the installer asked if it was a development or Production installation. If development, turn off all the security restrictions.&lt;br /&gt;&lt;br /&gt;More to come...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-8644278380247448958?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/8644278380247448958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=8644278380247448958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8644278380247448958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8644278380247448958'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/11/sharepoint-2010.html' title='SharePoint 2010'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-7520039964076011378</id><published>2009-09-24T07:25:00.000-07:00</published><updated>2009-09-24T07:32:29.178-07:00</updated><title type='text'>What happened to my SharePoint Usage Analysis Logs?</title><content type='html'>Recently, I went to check my usage analysis logs and noticed that they were practically empty. No new data in weeks. I know that it was working before, but what changed? What's going on here?&lt;br /&gt;&lt;br /&gt;I double checked that everything was enabled in CA, the SSP and in the site settings, and everything was still good. I also noticed that my Log location was D:\UsageLogs. I remember setting that up, so i went and looked at the logs. There was data, but only for the CA site. After some checking, I realized what was going on.&lt;br /&gt;&lt;br /&gt;Make sure that all your App Pool accounts have Access to write to that location. For me, only CA had the correct rights. After giving the WSS_WPG and WSS_RESTRICTED_WPG and WSS_ADMIN_WPG groups Write permission to that folder, the logs immediately started filling up.  No errors in the event logs were being created for me, or else I would have noticed this a long time ago.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Conclusion: Just give all your SharePoint accounts Admin access on your servers, it'll save you a LOT of headaches. Or, even better, just run everything under one account! HAHA, no, don't actually do this, but always check permissions when things aren't working as you expect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-7520039964076011378?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/7520039964076011378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=7520039964076011378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/7520039964076011378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/7520039964076011378'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/09/what-happened-to-my-sharepoint-usage.html' title='What happened to my SharePoint Usage Analysis Logs?'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-4744262560254755099</id><published>2009-08-07T11:16:00.001-07:00</published><updated>2009-08-07T11:30:02.779-07:00</updated><title type='text'>Oh NO! I deleted a site that I shouldn't have!</title><content type='html'>There is no recycle bin for sites. You probably know this, or you or your users found this out the hard way. This has happened to me more than once, and is the topic of a previous post about removing the 'delete this site' link.&lt;br /&gt;&lt;br /&gt;Let's stay that you haven't done that, and you don't have a nice SharePoint backup solution that will let you easily restore deleted content. A user has just deleted a site and has come to you to get it back.&lt;br /&gt;&lt;br /&gt;Possible solutions:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution 1:&lt;/span&gt;&lt;br /&gt;Copy your backups(you have those right? :P ) to another SharePoint server and create a new Web Application using that DB. That site should now have the content that you lost. Migrate it back over to your production portal.&lt;br /&gt;This is a solution, but migration can be a pain the butt. Also, it assumes you've got backups. You'll lose all your version history, and information about created and last modified. If your site is small enough you might be able to make a template out of it and rebuild a new site from there. You might even be able to use stsadm to backup and restore. Both of those options will run into trouble if your site is too big or complex.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution 2:&lt;/span&gt;&lt;br /&gt;Roll back the database to a time before this disaster happened. This solution will work if you don't have backups(I think) :) and everything will seem as if nothing happened. The down side is that you will have lost everything that has happened before the roll-back point. Hopefully you were alerted quickly to the problem.&lt;br /&gt;First, make a backup of your transaction logs. if you already have backups, this should be enough. If you don't, you'll want to backup the site as well.&lt;br /&gt;Next, Restore a Database. Give it a new name, and pick a time that you know to be before the problem happened(but not too far back or else you'll lose more data).  Choose your live database as the place to restore from. You should see it list your backup's. If you didn't back up your transaction log, you'll only be able to restore to the last backup. That is why it is important to backup your transaction log before you start.&lt;br /&gt;Once the restore is complete, you'll have a copy of the DB from before the problem happened. detach your production DB, and rename this restored copy to the production name. You should be good to go.&lt;br /&gt;You may want to shut down the site when you do this so that no new data is uploaded, since it will be lost. If done correctly, you should be able to restore the site very quickly, but it depends on how big your content DB is and how much traffic you get.&lt;br /&gt;&lt;br /&gt;Good luck! And now go delete the "delete this site" link from your _layouts/settings.aspx page so that users can't do this again in the future :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-4744262560254755099?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/4744262560254755099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=4744262560254755099' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/4744262560254755099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/4744262560254755099'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/08/oh-no-i-deleted-site-that-i-shouldnt.html' title='Oh NO! I deleted a site that I shouldn&apos;t have!'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-5466230733688125430</id><published>2009-07-15T13:10:00.000-07:00</published><updated>2009-07-15T13:12:46.694-07:00</updated><title type='text'>Add webpart to newform, DispForm and EditForm pages</title><content type='html'>Lists and Doc libraries both have Edit and DispForm pages. These pages have webpart zones on them, and adding your own webpart is possible. For some reason, sharepoint doesn't want to let you do it(the Edit Form Site action is grey'd out).&lt;br /&gt;&lt;br /&gt;to get around this, add:&lt;br /&gt;&amp;PageView=Shared&amp;ToolPaneView=2&lt;br /&gt;&lt;br /&gt;to the end of the URL. It will put the page into the browse to add a webpart view. You should be good to go from there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-5466230733688125430?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/5466230733688125430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=5466230733688125430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/5466230733688125430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/5466230733688125430'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/07/add-webpart-to-newform-dispform-and.html' title='Add webpart to newform, DispForm and EditForm pages'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-380539274374243304</id><published>2009-07-14T07:49:00.001-07:00</published><updated>2009-07-14T08:20:17.060-07:00</updated><title type='text'>Error Code Gotchas due to Policy Settings</title><content type='html'>I run into a few problems on almost every SharePoint install. &lt;br /&gt;David Szabo has put together a great post on some of the common ones:&lt;br /&gt;&lt;a href="http://blogs.msdn.com/dszabo/archive/2008/01/02/some-more-moss-gotchas.aspx"&gt;http://blogs.msdn.com/dszabo/archive/2008/01/02/some-more-moss-gotchas.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've also run into issues with search not being able to search itself. This is due to a registry setting to prevent the server from DOS'ing itself. Make sure you add all the possibly URL's that your site is running to the registry setting.&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/896861"&gt;http://support.microsoft.com/kb/896861&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One more thing that always seems to come up a few months after the SharePoint portal has been up and running causes IIS to lock up. You'll get lots of errors in the event log for 6398, 7076, and 6482. You also won't be able to administer IIS. This has to do with two processes trying to access IIS admin service at the same time. &lt;br /&gt;&lt;br /&gt;Install IIS Hotfix KB946517 and restart. This should fix the issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Problems with the timer service can also be caused by the scheduled task service being disabled. You'll re-enable it and it will turn off again. This is due to a group policy setting shutting it down. Have whoever manages the policy settings disable that setting on your sharepoint machines. &lt;br /&gt;&lt;br /&gt;Errors with DCOM settings: &lt;br /&gt;The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID  - Error 10016&lt;br /&gt;Check out: &lt;a href="http://geekswithblogs.net/mhamilton/archive/2006/12/19/101568.aspx"&gt;http://geekswithblogs.net/mhamilton/archive/2006/12/19/101568.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;http://geekswithblogs.net/mhamilton/archive/2006/12/19/101568.aspx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm sure there will be more to come as I remember them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-380539274374243304?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/380539274374243304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=380539274374243304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/380539274374243304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/380539274374243304'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/07/error-code-gotchas-due-to-policy.html' title='Error Code Gotchas due to Policy Settings'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-3913022887043880457</id><published>2009-07-01T06:47:00.001-07:00</published><updated>2009-07-01T06:53:21.869-07:00</updated><title type='text'>Add Webparts Popup missing links and buttons</title><content type='html'>After a few days of modifying the CSS and master pages for SharePoint and thinking everything was good I found the Add Webparts popup had lost it's buttons and the Advanced Link!&lt;br /&gt;&lt;br /&gt;Tracking down what's going wrong can be tricky. This page uses the same CSS as the rest of your site, so good luck tracking down what you did. Also, this page doesn't work in Firefox, so using FireBug isn't an option(more on that later). And worst, IE won't let me right click and get Page Source!&lt;br /&gt;&lt;br /&gt;Fortunately, someone else has hit this problem:&lt;br /&gt;http://sharethelearning.blogspot.com/2009/01/missing-buttons-and-link-on-add-web.html&lt;br /&gt;&lt;br /&gt;This person did the work to track down which page is used: &lt;span style="font-weight:bold;"&gt;/_layouts/webpartgallerypickerpage.aspx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Going directly to the link will let you us FireFox and Firebug to track down the problem. For me, I was setting the height of the page to Auto, not 100%. This caused the buttons and advanced link to appear near the top of the page, and behind the box that lets you pick webparts. I simply added:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#mainTable{&lt;br /&gt;  height:100%;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to my CSS file, and everything was fixed. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-3913022887043880457?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/3913022887043880457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=3913022887043880457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3913022887043880457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3913022887043880457'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/07/add-webparts-popup-missing-links-and.html' title='Add Webparts Popup missing links and buttons'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-8131531711537901528</id><published>2009-04-15T13:42:00.000-07:00</published><updated>2009-04-15T13:48:38.709-07:00</updated><title type='text'>View all Site content Blank after Import</title><content type='html'>Recently, A coworker and I had to move some sites around after a previous contractor setup the site with a bunch of different site collections and other junk that had to be removed as the site was moved to production.&lt;br /&gt;&lt;br /&gt;Instead of moving the whole database, we only wanted to move a certain group of sites, so we used stsadm to export the sites and import them on the new server. After Import, we noticed that the the Quick Launch bar showed the correct lists, and they worked fine, but if we went to the "View All Site Content" link, nothing showed up other than the recycle bin.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Not sure what was going on here, but we were able to fix it. Here's the process we went through:&lt;br /&gt;&lt;br /&gt;On the New server, backup the site.&lt;br /&gt;Move the site(or change the URL) to something like &lt;site&gt;_old.&lt;br /&gt;import the site to the original site's URL.&lt;br /&gt;If everything looked good, delete the &lt;site&gt;_old site.&lt;br /&gt;&lt;br /&gt;Maybe something else was going on here, but it works now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-8131531711537901528?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/8131531711537901528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=8131531711537901528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8131531711537901528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8131531711537901528'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/04/view-all-site-content-blank-after.html' title='View all Site content Blank after Import'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-5480426782963810205</id><published>2009-03-11T09:23:00.000-07:00</published><updated>2009-03-11T09:32:47.824-07:00</updated><title type='text'>Disable Site Deletion</title><content type='html'>Have you had a user delete a site, and then complain that it's gone? I have! The solution is to disable the ability to delete a site! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Simply add this line of code to the core.js, or application.master, or anywhere else that is going to get loaded by the settings.aspx page. There is probably a dozen places you could add this code.&lt;br /&gt;&lt;br /&gt;NOTE: I haven't tested this out, but at worst, all it's going to do is find the Delete web link, and hide it on the page. It doesn't actually change the page, just the display of the page. You could disable javascript in your browser and it would re-appear.&lt;br /&gt;&lt;br /&gt;document.getElementById("ctl00_PlaceHolderMain_SiteAdministration_RptControls_DeleteWeb").parentElement.parentElement.style.display="none";&lt;br /&gt;&lt;br /&gt;This basically says, find the "Delete this site" link, and turn off the display of that row in the table.&lt;br /&gt;&lt;br /&gt;If you do need to delete the site, you could always just go directly to the _layouts/deleteweb.aspx page on that site, and click to delete. &lt;br /&gt;&lt;br /&gt;Hopefully this will save you a few headaches.&lt;br /&gt;&lt;br /&gt;You could get fancy, and change the link's HREF to be a mailto: link to your &lt;br /&gt;helpdesk or sys admins. That way, if they want to delete a site, they will have to send you an email. Then you simply remove everyone's permissions. They'll think it's deleted, but you could easily bring it back if you needed to.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Good Luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-5480426782963810205?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/5480426782963810205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=5480426782963810205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/5480426782963810205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/5480426782963810205'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/03/disable-site-deletion.html' title='Disable Site Deletion'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-2487279503031290352</id><published>2009-02-11T13:57:00.000-08:00</published><updated>2009-03-10T13:56:36.837-07:00</updated><title type='text'>Attachments and Customized Forms</title><content type='html'>Microsoft has relased a new hotfix for Sharepoint:&lt;br /&gt;&lt;br /&gt;http://support.microsoft.com/kb/960311/en-us?spid=11677&amp;sid=global&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This allows you to use attachments and customized forms. Without this hotfix, the customized form you would get a popup error saying: "This form was customized not working with attachment. "&lt;br /&gt;&lt;br /&gt;Supposedly, this hotfix fixes the issue. You will probably have to rebuild your forms though.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;&lt;br /&gt;There is another hotfix related to this issue. There are two parts, one is to update your Sharepoint server, the second is to add data to the forms. I've tested this out and it works!&lt;br /&gt;&lt;br /&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;953271&amp;sd=rss&amp;spid=11373&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-2487279503031290352?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/2487279503031290352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=2487279503031290352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/2487279503031290352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/2487279503031290352'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/02/attachments-and-customized-forms.html' title='Attachments and Customized Forms'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-3454779707279664100</id><published>2009-02-03T13:58:00.000-08:00</published><updated>2009-02-03T14:06:28.299-08:00</updated><title type='text'>Dynamic drop down lists on Forms</title><content type='html'>Often, customers want options in one field to be driven by a different field in the form. For example, Categories and sub-categories. If the user picks A in field 1, field 2 should be filtered to only show options A1,A2,A3, etc.&lt;br /&gt;&lt;br /&gt;Since sharepoint doesn't have a good way to do this, and I dont want to build a custom user control, javascript is the solution.&lt;br /&gt;&lt;br /&gt;First, you'll want to create a function to clear out all the options from the second drop down list. Something like:&lt;br /&gt;&lt;br /&gt;function clearSubCat(){&lt;br /&gt;&lt;br /&gt; var subCat = getTagFromIdentifierAndTitle("select","DropDownChoice","Sub-Category");&lt;br /&gt; &lt;br /&gt; var opts = subCat.options;&lt;br /&gt; &lt;br /&gt; var len = subCat.length;&lt;br /&gt; for (i = 0; i &amp;lt;len; i++)&lt;br /&gt; {&lt;br /&gt;   subCat.remove(0);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you google getTagFromIdentifierAndTitle, you'll find a nice blog article and the source for this function. &lt;br /&gt;&lt;br /&gt;Second, you'll need a function to re-populate the drop down list given the value of colum 1:&lt;br /&gt;&lt;br /&gt;function populateSubCat(){&lt;br /&gt; var subCat = getTagFromIdentifierAndTitle("select","DropDownChoice","Sub-Category");&lt;br /&gt; var catList = getTagFromIdentifierAndTitle("select","DropDownChoice","Category");&lt;br /&gt; &lt;br /&gt; var cat = catList.options[catList.selectedIndex].text;&lt;br /&gt; &lt;br /&gt; clearSubCat();&lt;br /&gt; switch(cat)&lt;br /&gt; {&lt;br /&gt;  case "Directives":&lt;br /&gt;    var optA = document.createElement('option');&lt;br /&gt;    optA.text = "DOI";         &lt;br /&gt;    optA.value = "DOI";         &lt;br /&gt;    subCat.options.add(optA);     &lt;br /&gt;&lt;br /&gt;     } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;You'll have to add more cases to the switch statement. &lt;br /&gt;Basically, this gets the DOM object for the two categories, and inserts values into the sub-category based on the value in the category.&lt;br /&gt;&lt;br /&gt;Third, you'll want to setup the javascript to set the onChange event for the Category drop down list.&lt;br /&gt;&lt;br /&gt;function filterSubCat(){&lt;br /&gt; var catList = getTagFromIdentifierAndTitle("select","DropDownChoice","Category");&lt;br /&gt; catList.onchange = function() {populateSubCat()};&lt;br /&gt; populateSubCat();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I call the filterSubCat() function in a content editor webpart.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In my case, the Drop down list values were limited and Static. If your lists are more dynamic this may not be the best solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-3454779707279664100?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/3454779707279664100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=3454779707279664100' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3454779707279664100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3454779707279664100'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/02/dynamic-drop-down-lists-on-forms.html' title='Dynamic drop down lists on Forms'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-4264438039022382341</id><published>2009-01-15T07:33:00.000-08:00</published><updated>2009-01-15T07:49:27.243-08:00</updated><title type='text'>Creating custom Item ID's</title><content type='html'>A customer would like to use custom ID's to track items throughout the site. These ID's are something like:&lt;br /&gt;TYPE_DATE_ID&lt;br /&gt;&lt;br /&gt;I would like to delete the Title field and use this throughout the system, but this causes some problems. I can't rename Title without renaming Title on every item in the entire site. I can hide title, and create my own column, but then I have to create custom datasheet views everywhere because Title is the only field that has a link to the new form, and has the drop down list available. I suppose I'll just have to use the Edit link everywhere.&lt;br /&gt;&lt;br /&gt;Creating a custom ID field should be easy right? Just use a calculated field you say! &lt;br /&gt;Sadly, it's not that simple. First, I would like to have the ID portion padded to 4 spaces. ie. 0001, 0021, etc. This causes some troubles. Second and most important,  the ID field is set after the calculated field is set. If you do this strictly through a calculated field, you'll end up with TYPE_DATE_0000.&lt;br /&gt;&lt;br /&gt;Ok, so then do it with a workflow! This solves the ID being 0 problem, but the Designer workflows don't seem to support the formula's needed to create the Date in a YYYYMMDD format. If you just use Created as the date, you'll end up with something like: TYPE_1/15/2009 8:43:03 AM_0001. UGLY. &lt;br /&gt;&lt;br /&gt;The solution is to use a hybrid of both. Create a calculated field that is:&lt;br /&gt;=TEXT(Created,"yyyyMMdd")&lt;br /&gt;Next, create a workflow that is activated on New item created for you're list. The workflow will need two steps. &lt;br /&gt;The first step is to create the necessary padding for your ID. Mine is something like:&lt;br /&gt;&lt;br /&gt;If ID &lt; 10  set variable 'padding' = '000'&lt;br /&gt;if ID &gt;=10 and ID &lt;100 set variable 'padding' = '00'&lt;br /&gt;If ID &gt;=100 and ID &lt;1000 set variable 'padding' = '0'&lt;br /&gt;&lt;br /&gt;Next, set the prefix = 'TYPE' or whatever you want. If this is dynamic, you'll need another step to set this to be what you want.&lt;br /&gt;&lt;br /&gt;Use the string builder to put all your variables together. [PREFIX]_[createDate]_[padding][ID]&lt;br /&gt;&lt;br /&gt;Set your Identifier field to the new variable you created with the string builder. DONE!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-4264438039022382341?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/4264438039022382341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=4264438039022382341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/4264438039022382341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/4264438039022382341'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/01/creating-custom-item-ids.html' title='Creating custom Item ID&apos;s'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-4408577742243224875</id><published>2009-01-13T10:44:00.000-08:00</published><updated>2009-01-15T07:33:43.130-08:00</updated><title type='text'>Changing Title Site Column name</title><content type='html'>When creating a new site content type you are required to choose a type that it will inherit from. The simplest type is a list content type who's parent is 'Item'. &lt;br /&gt;The problem is that you'll end up with a default column called 'Title'. Great, what if I don't want a column called Title? &lt;br /&gt;&lt;br /&gt;DO NOT ATTEMPT TO CHANGE THIS COLUMN!!&lt;br /&gt;This column is inherited by every list item across the site. If you change the name, the entire site will change! What really gets you, is that you can't change it back!&lt;br /&gt;The form checks and see's that the name 'Title' is reserved. It doesn't care that you're not using it anymore.&lt;br /&gt;&lt;br /&gt;If you've already done this, There is a way to change it back. (&lt;a href="http://www.eggheadcafe.com/software/aspnet/29625393/title-site-column.aspx"&gt;http://www.eggheadcafe.com/software/aspnet/29625393/title-site-column.aspx&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's the basic idea:&lt;br /&gt;Open the page that lets you change the name and save it to your computer(the complete page). Open the page, and remove the javascript that does the check:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;if (doesFieldNameConflict(DisplayName))&lt;br /&gt;{&lt;br /&gt;alert(L_alert3_Text);&lt;br /&gt;frm.DisplayName.focus();&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open the page, rename it back to "Title" and hit save. SharePoint isn't smart enough to realize that the page lives on your computer and not the server. It will let you change it back. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The right solution is to edit your site content type, and change the 'Title' field to be hidden. Then create a new column called Title, or whatever you want to name it. &lt;br /&gt;&lt;br /&gt;The problem this creates, is that whenever you have a view of the list, the Title field is the one that is used to link to the DispForm, and also has the drop down list of options to modify that row. &lt;br /&gt;The only solutions I've seen so far is to create your content types with a feature. This isn't a good solution when you're trying to prototype something though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-4408577742243224875?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/4408577742243224875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=4408577742243224875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/4408577742243224875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/4408577742243224875'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/01/changing-title-site-column-name.html' title='Changing Title Site Column name'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-3843122061556878766</id><published>2009-01-13T06:32:00.001-08:00</published><updated>2009-02-04T13:47:09.717-08:00</updated><title type='text'>Importing and Exporting Webparts</title><content type='html'>Frequently, I find myself creating XSLT data view webparts because the out of the box layouts don't cut it. &lt;br /&gt;&lt;br /&gt;I found that if a webpart is added to the page using the browser, then edited in designer and converted into a XSLT view, it can cause problems. I was no longer able to export the webpart and import it to another page. &lt;br /&gt;&lt;br /&gt;Unfortunately, to work on a webpart in designer, it has to be on a web part page since you have to break the page from the template. I then exported the webpart and imported it to a normal publishing page. The webpart imports, but causes the page to error out. You must then edit the page in the maintenance view and remove the offending webpart(the last one listed, since they are listed in order they were added to the page).&lt;br /&gt;&lt;br /&gt;So, add your webparts in Designer as a Dataview, edit them in designer, and move them later. Sorry if you're trying to edit one you created in the browser and converted to an XSLT view, just start over and save your self a headache later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-3843122061556878766?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/3843122061556878766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=3843122061556878766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3843122061556878766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3843122061556878766'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/01/importing-and-exporting-webparts.html' title='Importing and Exporting Webparts'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-8985412523437642540</id><published>2009-01-09T10:44:00.001-08:00</published><updated>2009-01-09T13:34:09.537-08:00</updated><title type='text'>Customizing List Forms using Javascript</title><content type='html'>A cool feature you can get access to using SharePoint Designer is the ability to create your own List forms. You can create a new NewForm page, with certain fields removed, or add the form to another page, allowing users to create or edit a new item without having to dig into the appropriate NewForm or EditForm.&lt;br /&gt;&lt;br /&gt;In Designer, it's under the Insert -&gt; SharePoint Controls -&gt; Custom List Form.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've been using this recently, and I wanted to be able to manipulate the fields using JavaScript. I would like to pre-fill certain fields with data, and hopefully create a better user experience.&lt;br /&gt;&lt;br /&gt;So far, I've found two pages to be helpful:&lt;br /&gt;Accessing and Changing Form fields - &lt;a href="http://blogs.msdn.com/sharepointdesigner/archive/2007/06/13/using-javascript-to-manipulate-a-list-form-field.aspx"&gt;http://blogs.msdn.com/sharepointdesigner/archive/2007/06/13/using-javascript-to-manipulate-a-list-form-field.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is an example about halfway down for grabbing a people Picker field. Looks like it can only grab the first one?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I also needed to be able to grab and edit a Radio Button option&lt;br /&gt;One solution I found was at:&lt;br /&gt;&lt;a href="http://blog.markuso.com/posts/9/using-javascript-to-access-a-list-form-field-in-sharepoint-designer/"&gt;http://blog.markuso.com/posts/9/using-javascript-to-access-a-list-form-field-in-sharepoint-designer/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This solution didn't work for me, it was looking for:&lt;br /&gt;&lt;pre class="javascript"&gt;&lt;span style="color: rgb(51, 102, 204);"&gt;'FieldName="'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;+&lt;/span&gt;title&lt;span style="color: rgb(51, 153, 51);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(51, 102, 204);"&gt;'" &lt;/span&gt;&lt;br /&gt;somewhere in the parent's innerHTML. My customized forms don't have that. I changed the code to look up another level and look for the Field name there. Seems to work ok. Example below:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function SetRadio(tagName, identifier, title, value) {&lt;br /&gt; var len = identifier.length;&lt;br /&gt; var tags = document.getElementsByTagName(tagName);&lt;br /&gt; for (var i=0; i &lt; idstring =" tags[i].id;" namestring =" tags[i].name;" type ="="" identifier ="="" tagparenthtml =" tags[i].parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.innerHTML;"&gt;'+title) &gt; -1) {&lt;br /&gt;         var radioButtons = document.getElementsByName(nameString);&lt;br /&gt;         var radioValue = "";&lt;br /&gt;&lt;br /&gt;         for (var x=0; x &lt; radioButtons.length; x++) {&lt;br /&gt;             if(radioButtons[x].parentElement.title == value){&lt;br /&gt;                  radioButtons[x].checked = true;&lt;br /&gt;              }&lt;br /&gt;              else{&lt;br /&gt;                     radioButtons[x].checked = false;&lt;br /&gt;              }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt; return null;&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;/nobr&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-8985412523437642540?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/8985412523437642540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=8985412523437642540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8985412523437642540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8985412523437642540'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/01/customizing-list-forms-using-javascript.html' title='Customizing List Forms using Javascript'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-7306435244929828049</id><published>2009-01-06T07:41:00.000-08:00</published><updated>2009-01-06T07:44:20.332-08:00</updated><title type='text'>Workflows and "The data source control failed to execute the insert command. "</title><content type='html'>I recently took over the design of a site that makes heavy use of Designer created workflows and custom Edit Forms. &lt;br /&gt;&lt;br /&gt;While trying to figure out how the system worked, I ran into this error when starting a workflow:&lt;br /&gt;"The data source control failed to execute the insert command. "&lt;br /&gt;&lt;br /&gt;After googling around for a few minutes, I found this:&lt;br /&gt;&lt;br /&gt;http://purbayubudi.wordpress.com/2008/09/06/moss2007-the-data-source-control-failed-to-execute-the-insert-command/&lt;br /&gt;&lt;br /&gt;I had never actually seen the remove workflow page on a list before. Interesting. I was able to remove the workflow from the list. Once I re-opened the workflow and saved it, the workflow starting working again. Weird. But at least it works again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-7306435244929828049?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/7306435244929828049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=7306435244929828049' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/7306435244929828049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/7306435244929828049'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2009/01/workflows-and-data-source-control.html' title='Workflows and &quot;The data source control failed to execute the insert command. &quot;'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-6455834945140805280</id><published>2008-12-31T08:31:00.000-08:00</published><updated>2008-12-31T10:13:57.780-08:00</updated><title type='text'>Accessing a list using SpWeb.Lists["listname"]</title><content type='html'>Recently, I tried deploying some code to production that opened up a list and added items into it. Sounds simple, and it worked great in my Test environment. &lt;br /&gt;Simplified, the code looked something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SPList myNewList = currentWeb.Lists["my list"];&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Should work fine right? &lt;br /&gt;&lt;br /&gt;After releasing to production, it would not work. I was getting:&lt;br /&gt;"Value does not fall within the expected range."&lt;br /&gt;(Wouldn't it be nice, if it told you what value did not fall within what range? That would make my life so much easier...)&lt;br /&gt;&lt;br /&gt;Turns out, the list I was trying to open: "my list", wasn't originally named "my list". Someone had created the list as: "my  list" (notice the two spaces), and then renamed it back. I checked the MSFT documentation on accessing a list using web.lists["name"], which is really the SPListCollection class ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistcollection.aspx )&lt;br /&gt;&lt;br /&gt;It says:&lt;br /&gt;"Use an indexer to return a single list from the collection. For example, assuming the collection is assigned to a variable named collLists, use collLists[index] in C#, or collLists(index) in Visual Basic, where index is the index number of the list in the collection, &lt;span style="font-weight:bold;"&gt;the display name of the list&lt;/span&gt;, or the GUID of the list."&lt;br /&gt;&lt;br /&gt;WRONG! The display name, which I assume is the name that is listed on the list's Settings page as "Title", is not what it uses to look up the item. It uses the name that it is originally created as, the name that is in the URL.&lt;br /&gt;&lt;br /&gt;I suppose this is good if you write code that uses the list name to get the list, and then later a user renames the list. Your code will still work. &lt;br /&gt;It is a little odd that something like:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SPList myListCopy = myWeb.Lists[mylist.Title];&lt;/span&gt;&lt;br /&gt;may not actually work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EDIT:&lt;br /&gt;&lt;br /&gt;The "Web Address:" on the List Settings page suffers from the List rename bug too. It will show the list using the List's title, and not the List's URL. If you rename the List, this web address will be wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-6455834945140805280?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/6455834945140805280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=6455834945140805280' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/6455834945140805280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/6455834945140805280'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/12/accessing-list-using-spweblistslistname.html' title='Accessing a list using SpWeb.Lists[&quot;listname&quot;]'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-1739069702148502447</id><published>2008-12-29T20:59:00.000-08:00</published><updated>2008-12-29T21:10:14.084-08:00</updated><title type='text'>Email Enabling Custom Lists in MOSS</title><content type='html'>I was working with a list based on a Custon List definition today, and I wanted to email enable it. After playing around for a while and wondering why the link to email enable the list was not appearing on the settings page, I turned to google.&lt;br /&gt;&lt;br /&gt;For some reason, you cannot email enable a list that is based on the custom list definition. &lt;br /&gt;&lt;br /&gt;Solution: Use a different list type. I used Announcements because it's simple and doesn't have lots of extra columns that I don't want to use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-1739069702148502447?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/1739069702148502447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=1739069702148502447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/1739069702148502447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/1739069702148502447'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/12/email-enabling-custom-lists-in-moss.html' title='Email Enabling Custom Lists in MOSS'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-3023199345632035681</id><published>2008-04-07T13:29:00.000-07:00</published><updated>2008-04-07T13:33:15.194-07:00</updated><title type='text'>Workflows on Surveys in Moss? Nope!</title><content type='html'>Recently, I was trying to create a public facing survey on a public facing MOSS site. My solution was to create two survey's. One that was public and one that was private. The user would fill out the public survey, and workflow would move the response to the private survey.&lt;br /&gt;This would allow for anonymous submission, but the responses would not be public.&lt;br /&gt;&lt;br /&gt;After some testing I found that surveys do not support workflow. You will get "Failed to Start" as the result of your workflow. Searching the web a bit, i found:&lt;br /&gt;http://support.microsoft.com/kb/926370&lt;br /&gt;which basically says workflow does not work on a survey list. It's a known bug, and there is no fix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-3023199345632035681?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/3023199345632035681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=3023199345632035681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3023199345632035681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3023199345632035681'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/04/workflows-on-surveys-in-moss-nope.html' title='Workflows on Surveys in Moss? Nope!'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-3923044892413421600</id><published>2008-03-10T06:50:00.000-07:00</published><updated>2008-03-10T07:05:38.533-07:00</updated><title type='text'>Moss and Virtual IP's</title><content type='html'>If I remember correctly, there was an issue with SPS 2003 and using Virtual IP's in IIS. This is still the case.&lt;br /&gt;&lt;br /&gt;I've run into this a few times in different ways, if you assign an IP to an IIS virual server, some of SharePoint's features won't quite work correctly. &lt;br /&gt;Virtual IP's are extra IP's you have added to your computer, and then set each IIS virtual server to only watch for traffic on the specified IP. These are sometimes used for load balancing, or if you don't trust host headers to forward traffic to the correct web application in IIS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1: Using a dedicated search index machine.&lt;/span&gt; When you use central admin to pick a machine that should be dedicated for search, it will change your hosts file to point all requests for www.mysharepointSite.com to the IP assigned to that machine. You won't be able to change this, since SharePoint will wipe out any changes that you make.  This fine, unless you assign a virtual IP in IIS to the web application that is running your site. SharePoint will set the hosts file to use the physical IP of the machine, not the virtual IP.  This will break search since IIS will not pick up the request since it is setup to only watch for traffic on a different IP.&lt;br /&gt;The solution is to edit the hosts file yourself, and tell SharePoint to use all servers for indexing.  It is convenient to use the central Admin UI to setup which machine will be used to search, but it does nothing more than change the hosts file. You can do this manually and have more control.&lt;br /&gt;&lt;br /&gt;The hosts file allows you to override what DNS says. If your DNS server is setup to point www.mysharepointsite.com to 123.123.123.123, you can add a line in your hosts file to look somewhere else. This is especially useful for testing. The hosts file is located at:&lt;br /&gt;C:\windows\system32\drivers\etc\hosts. It does not have an extension and can be edited using notepad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2: Alternate access mappings. &lt;/span&gt;If you are using Virtual IP's for your IIS virtual servers, setting up an alternate access mapping in CA is not enough to get it to work. You will also have to go into IIS and manually add the host header to the virtual server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-3923044892413421600?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/3923044892413421600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=3923044892413421600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3923044892413421600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3923044892413421600'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/03/moss-and-virtual-ips.html' title='Moss and Virtual IP&apos;s'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-949751517530692320</id><published>2008-03-06T13:05:00.000-08:00</published><updated>2008-03-06T13:08:40.362-08:00</updated><title type='text'>Infopath and Site columns</title><content type='html'>When publishing a form in infopath, you are given the ability to match fields in your form to site columns.&lt;br /&gt;Be careful not to create two site columns with the same name in the same category. Infopath has a bug in that it will let you see that you have two columns with the same name, but will only let you pick the first one. It seems that it matches by name, and not by the internal name. You can pick the second field, but if you go back to edit it again, you'll see that it goes back to the first field.&lt;br /&gt;&lt;br /&gt;This is only an issue when publishing to a sharepoint site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-949751517530692320?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/949751517530692320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=949751517530692320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/949751517530692320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/949751517530692320'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/03/infopath-and-site-columns.html' title='Infopath and Site columns'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-9010892327115871000</id><published>2008-03-06T12:47:00.000-08:00</published><updated>2008-03-06T12:52:20.027-08:00</updated><title type='text'>Admin Deployed Forms VS. Content Type Deployed Forms</title><content type='html'>There are a few Gotcha's around form deployment. Here are some Pro's and Con's of each:&lt;br /&gt;&lt;br /&gt;Document Library:&lt;br /&gt; Limited to one document library.&lt;br /&gt;&lt;br /&gt;Content Type:&lt;br /&gt; Limited to one site.&lt;br /&gt; Infopath May timeout on upgrades if you have too many fields. I ran into this error around 25 fields. During the publishing process you will receive an error "Updating site content type failed." This is due to the fact that Infopath has a 30 second time out. If it does not finish it just gives up. I worked through this with premier support. It was suggested I use admin deployed forms.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Admin deployed forms:&lt;br /&gt; More complex publishing process. Has effects on content deployment due to it being a feature.&lt;br /&gt; Does not update content types. If you change the number of published fields, you will have to wipe out the content type and re-deploy. This is not possible after it has gone live since you will  have to delete all the forms that have been created.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-9010892327115871000?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/9010892327115871000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=9010892327115871000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/9010892327115871000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/9010892327115871000'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/03/admin-deployed-forms-vs-content-type.html' title='Admin Deployed Forms VS. Content Type Deployed Forms'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-302407971208861976</id><published>2008-03-06T12:30:00.000-08:00</published><updated>2008-03-06T12:46:10.805-08:00</updated><title type='text'>Turn Off Hover Over Screen Tips on Browser form</title><content type='html'>The easiest way to make a field required on an infopath form is to check the 'cannot be blank' box. The user must fill in data on the field to be able to submit the form. This also adds a red star to the field so the user knows they must enter data.&lt;br /&gt;&lt;br /&gt;The problem is that it also adds a hover box which says 'Required' or something like that. This box is annoying to users because it often hovers over another field, blocking the user from entering data into the other field.&lt;br /&gt;&lt;br /&gt;Here's how to get rid of it:&lt;br /&gt;&lt;br /&gt;Edit the Core.JS file(12\template\layouts\inc)&lt;br /&gt;Find the function called &lt;em&gt;ErrorVisualization_ShowShortMessage&lt;/em&gt;, around line 5125.&lt;br /&gt;&lt;br /&gt;You want to change this function to do nothing. the easiest way is to add: return; as the first line of code that it runs.&lt;br /&gt;It should look something like:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;function ErrorVisualization_ShowShortMessage(objControl,boolIsSticky){;&lt;br /&gt;;&lt;br /&gt;return;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The hover boxes won't appear anymore.&lt;br /&gt;&lt;br /&gt;You could get a little fancier and have it check the error string. Then, in infopath, set the ones you don't want to show to be 'xxxx' or something. Have the function check the string. If is your 'xxxx' string, then return, else show the message.&lt;br /&gt;For example, I added:&lt;br /&gt;&lt;em&gt;if(strErrorString=="Required"  strErrorString=="Cannot be blank"  strErrorString =="Only date allowed (example: 2001-03-14)") return;&lt;/em&gt;&lt;br /&gt;after:&lt;br /&gt;&lt;em&gt;var strErrorString   = objDatum.GetErrorMessage();&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Now, my custom messages appear, but the default ones do not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-302407971208861976?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/302407971208861976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=302407971208861976' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/302407971208861976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/302407971208861976'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2008/03/turn-off-hover-over-screen-tips-on.html' title='Turn Off Hover Over Screen Tips on Browser form'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-677769483624182529</id><published>2007-11-16T08:18:00.000-08:00</published><updated>2007-11-16T11:17:05.427-08:00</updated><title type='text'>Anonymous InfoPath Forms</title><content type='html'>So, you're using MOSS and see that it supports Web enabled Infopath forms.. Sweet, a feature that should have been there from the beginning, since InfoPath is useless without it.&lt;br /&gt;&lt;br /&gt;If you've thought about using InfoPath, then you've also realized that every user has to have Infopath, and guess what? It doesnt' come with MS Office unless you pay for the super version.&lt;br /&gt;&lt;br /&gt;So, how about anonymous infopath forms? You may have seen a few posts around the web about how to do it, but in reality, you can't. And here's the reason:&lt;br /&gt;&lt;br /&gt;Infopath uses a forms library to store forms, and they work the same as a document library. Document libraries do not allow you to give anonymous users permission to add documents. You just can't do it.&lt;br /&gt;&lt;br /&gt;You can however, create a web service that will accept the form, impersonate, and save the form to the library.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;There are two parts to this. First, trick the document library to allow you to have a "New" option for anonymous users. To do this, go to the anonymous access page, and look at the URL. See the "DOCLIB" at the end? Change that to LIST and reload the page. Now you'll have the option to check the box for new/edit/delete. Check the new box.&lt;br /&gt;&lt;br /&gt;Second, Change you're form to submit to a web service. You'll have to create this service, and it should probably take a File name, and the file content. Maybe later I'll publish the code for this web service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-677769483624182529?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/677769483624182529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=677769483624182529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/677769483624182529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/677769483624182529'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2007/11/anonymous-infopath-forms.html' title='Anonymous InfoPath Forms'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-2299191338786847024</id><published>2007-11-16T08:14:00.001-08:00</published><updated>2007-11-16T08:18:31.988-08:00</updated><title type='text'>Custom New/Edit Pages</title><content type='html'>This is one that I ran into when I first started using sharepoint, but has recently come back.&lt;br /&gt;&lt;br /&gt;A co-worker was trying to edit the new/Edit forms, and didn't want certain fields to show up on the form since they were used by some custom workflows/views.&lt;br /&gt;&lt;br /&gt;So, how do you edit the forms? FrontPage of course!&lt;br /&gt;&lt;br /&gt;Just edit the form, and delete the fields that you do not want to show up? NOPE! If you do this, the fields will end up blank, erasing any data in those fields when the user clicks save.&lt;br /&gt;&lt;br /&gt;Instead, you have to edit the html. Find the &lt;tr&gt; tag for the row containing the field you do not want to show up, and add:&lt;br /&gt;style="display: none;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That way, you'll use CSS to hide the rows. They will still be there, but the user won't see them, and hopefully won't edit them. A perfect solution? Not really, but it'll work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-2299191338786847024?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/2299191338786847024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=2299191338786847024' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/2299191338786847024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/2299191338786847024'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2007/11/custom-newedit-pages.html' title='Custom New/Edit Pages'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-3358308758849846838</id><published>2007-11-16T08:06:00.001-08:00</published><updated>2007-11-16T08:13:18.722-08:00</updated><title type='text'>Calculated Date Fields</title><content type='html'>I've run into an issue with calculated Date fields.&lt;br /&gt;I have a field called "Start Date", and a calculated Field called "Event Date".&lt;br /&gt;The value for "Event Date" is simple: =[Start Date]&lt;br /&gt;Don't ask me why i have two fields that do the same thing, i can't remember anymore.&lt;br /&gt;&lt;br /&gt;The problem is this: When i view the fields on a normal sharepoint view, the two fields are the same. When get the fields in a Data View, or in an RSS feed, the "Event Date" field is one day earlier than the "start date"!!!!!&lt;br /&gt;&lt;br /&gt;I have no idea what is going on. I could set event date to be equal to Start Date+1, which is OK for Data views and RSS feeds, but will be wrong in the normal SharePoint views. I'm tempted to delete and re-create the field, but I have a sick feeling it'll just break something else.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-3358308758849846838?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/3358308758849846838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=3358308758849846838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3358308758849846838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/3358308758849846838'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2007/11/calculated-date-fields.html' title='Calculated Date Fields'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2143363931801234725.post-8039421212492351241</id><published>2007-11-16T07:59:00.001-08:00</published><updated>2007-11-16T08:14:09.346-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>SharePoint Features and Failures</title><content type='html'>I've been working with SharePoint for the past 3 years or so, and I've found blogs to be one of the best resources out there. It's time for me to give back. I've been meaning to start one of these up for a while, and today is the day. I've run into one of those SharePoint gotchas, and I need a break from it.&lt;br /&gt;&lt;br /&gt;This blog isn't going to be about showing off sharepoint's features. There are plenty of those, and for most people (well, me at least) they aren't that useful. I can figure out how to use the goodies that it gives us. I'm more interested in finding solutions to all the places that SharePoint will fail you.&lt;br /&gt;&lt;br /&gt;As a SharePoint consultant, customers ask for solutions, and I think of ways to do things. Often, there are ways to make things work, but because I haven't had the chance to use a feature, I just assume it will work. This blog will be about all the places that features don't work as you might have expected them to.&lt;br /&gt;&lt;br /&gt;This blog will also be about random bugs I've found, and hopefully, solutions to those problems. I'd like to be able to go back and post all the things I've found over the past few years, but my brain has blocked some of them out. I'll post new things I find, and anything else I can remember. Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2143363931801234725-8039421212492351241?l=sharepointfeaturesandfailures.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointfeaturesandfailures.blogspot.com/feeds/8039421212492351241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2143363931801234725&amp;postID=8039421212492351241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8039421212492351241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2143363931801234725/posts/default/8039421212492351241'/><link rel='alternate' type='text/html' href='http://sharepointfeaturesandfailures.blogspot.com/2007/11/sharepoint-features-and-failures.html' title='SharePoint Features and Failures'/><author><name>Jeff Lester</name><uri>http://www.blogger.com/profile/15100537688793888318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
