<?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-1026518698311165525</id><updated>2011-08-01T09:06:00.576-07:00</updated><category term='datasheet view'/><category term='DataView'/><category term='CFT'/><category term='SPListItem'/><category term='SPD'/><category term='SharePoint'/><category term='sharepoint 2010'/><category term='Paging'/><category term='Solutions'/><category term='DataGrid'/><category term='xslt'/><category term='Search Results Web Part'/><category term='Content Query Web Part'/><category term='Person Field'/><category term='WSS'/><category term='DataSource'/><category term='Master Page'/><category term='end user'/><category term='Web Part'/><category term='Person or Group'/><category term='List'/><category term='SPFieldUserValue'/><category term='CQWP'/><category term='MOSS2007'/><category term='spquery'/><category term='large lists'/><category term='DataForm'/><title type='text'>SharePoint Developer Solutions</title><subtitle type='html'>A blog to help people tackle SharePoint (WSS and MOSS2007) issues and find solutions</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1026518698311165525.post-5094921767446968950</id><published>2010-11-03T23:01:00.000-07:00</published><updated>2010-11-03T23:01:01.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint 2010'/><title type='text'>Missing Set Up Groups page in SharePoint 2010</title><content type='html'>I discovered today that SharePoint 2010 gives you a nice new way to set the associated members group, but in doing so has hidden the "Set up Groups for this Site" page after initial site creation.&lt;br /&gt;&lt;br /&gt;First the members group: This experience is actually much better. Most end users I have talked to are only concerned with which group is the default selection in the "Add users to a SharePoint group" dropdown on the "Add Users" page. A lot of them had trouble with the complexity of having to go to the "set up groups" page for this as it is definitely not the intuitive place to go. SharePoint 2010 has made this much easier. You simply navigate to the group you want as default and select Settings-&gt;Make Default Group. &lt;br /&gt;&lt;br /&gt;For some reason though, the SharePoint team decided that the addition of this option would allow them to hide the "Set up Groups for this Site" page. You are shown it when you first create a site (if you select unique permissions) but seemingly can't go back after the fact. This can be a problem when you need to discover which group is the associated owners group or change it to a different group.&lt;br /&gt;&lt;br /&gt;Luckily you can still get to this page by url: &lt;your site url&gt;/_layouts/permsetup.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-5094921767446968950?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/5094921767446968950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=5094921767446968950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5094921767446968950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5094921767446968950'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2010/11/missing-set-up-groups-page-in.html' title='Missing Set Up Groups page in SharePoint 2010'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-1132975377388279570</id><published>2010-02-18T16:37:00.000-08:00</published><updated>2010-02-18T16:41:09.046-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='large lists'/><category scheme='http://www.blogger.com/atom/ns#' term='spquery'/><title type='text'>Adding items to Large Lists</title><content type='html'>So I had this blog up before, but I did some digging with a friend at Microsoft and it turns out the additemoptimized method before really wasn't optimized at all... Here is new code that really is optimized...&lt;br /&gt;&lt;br /&gt;When you access the List.Items property in the SharePoint API (say to add a new item to a list: List.Items.Add()) this get method runs (thanks Reflector!):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;public virtual SPListItemCollection Items&lt;br /&gt;{&lt;br /&gt;    get&lt;br /&gt;    {&lt;br /&gt;        SPQuery query = new SPQuery();&lt;br /&gt;        query.ViewAttributes = "Scope=\"Recursive\"";&lt;br /&gt;        return this.GetItems(query);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That actually makes sense if you were looking for the entire SPListItemCollection for the list, but doesn't make sense if you just want to add a new item (Why query ALL items in the list if you are just adding a new one??). Additionally, this becomes a problem when you are working with &lt;a href="http://go.microsoft.com/fwlink/?LinkId=95450&amp;clcid=0x409"&gt;Very Large Lists&lt;/a&gt; as this query can be SLOW and possibly lock the table. &lt;br /&gt;&lt;br /&gt;The alternative is to write your own query to get a much smaller SPListItemCollection for the list (I wanted a helper method to give me the collection so I can call Add() on it with different params, this one will only return the schema and not pull any items):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;public static SPListItemCollection AddItemOptimized(SPList list)&lt;br /&gt;{&lt;br /&gt;     SPQuery EmptyQuery = new SPQuery();&lt;br /&gt;            EmptyQuery.Query = "&amp;lt;Where&amp;gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name='ID'/&amp;gt;&amp;lt;Value Type='Number'&amp;gt;0&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&amp;lt;/Where&amp;gt;";&lt;br /&gt;            return list.GetItems(q);&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And there you go, your query now returns your SPListItemCollection ready for .Add() without querying for any items!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-1132975377388279570?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/1132975377388279570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=1132975377388279570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/1132975377388279570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/1132975377388279570'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2010/02/adding-items-to-large-lists.html' title='Adding items to Large Lists'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-8363156597646800992</id><published>2009-06-03T21:07:00.000-07:00</published><updated>2009-06-04T17:32:00.404-07:00</updated><title type='text'>How to test your workflow emails on a VM</title><content type='html'>I don't really want to install a mail server on my VM just to be able to test the emails that my Workflows generate. Instead you can do this in your web.config:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;system.net&amp;gt;&lt;br /&gt;    &amp;lt;mailSettings&amp;gt;&lt;br /&gt;        &amp;lt;smtp deliveryMethod="SpecifiedPickupDirectory"&amp;gt;&lt;br /&gt;            &amp;lt;specifiedPickupDirectory pickupDirectoryLocation="c:\IncomingEmails\" /&amp;gt;&lt;br /&gt;        &amp;lt;/smtp&amp;gt;&lt;br /&gt;    &amp;lt;/mailSettings&amp;gt;&lt;br /&gt;&amp;lt;/system.net&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ref: http://msdn.microsoft.com/en-us/library/ms164241.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-8363156597646800992?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/8363156597646800992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=8363156597646800992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8363156597646800992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8363156597646800992'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/06/how-to-test-your-workflow-emails-on-vm.html' title='How to test your workflow emails on a VM'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-4042661660704146269</id><published>2009-06-02T20:20:00.000-07:00</published><updated>2009-06-02T20:20:00.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFT'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Part'/><title type='text'>That assembly does not allow partially trusted callers.</title><content type='html'>So I ran into something to be aware of today. We have a couple of Custom Field Types that we have written. As with all SharePoint CFTs, their assemblies are deployed to the GAC. &lt;br /&gt;&lt;br /&gt;Today I was writing a Control (a Web Part would apply here just the same) that is deployed to the Bin. While deploying it I kept getting the annoying error: "That assembly does not allow partially trusted callers". I had my CAS policies defined and had the '[assembly: System.Security.AllowPartiallyTrustedCallers]' attribute in my AssemblyInfo.cs but I realized that I was getting the exception when I was trying to access the field value of an item that contained my Custom Field Type column (item["my CFT"])!&lt;br /&gt;&lt;br /&gt;This was a good reminder that all CFTs should have the [assembly: System.Security.AllowPartiallyTrustedCallers] attribute, just in case, since you never know when a Web Part or some other partially trusted code will need to access them in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-4042661660704146269?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/4042661660704146269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=4042661660704146269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4042661660704146269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4042661660704146269'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/06/that-assembly-does-not-allow-partially.html' title='That assembly does not allow partially trusted callers.'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-4649420654616890059</id><published>2009-05-15T21:00:00.000-07:00</published><updated>2009-05-15T21:00:00.763-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datasheet view'/><title type='text'>Office 2003 datasheet view behavior</title><content type='html'>So for those of you out there still dealing with Office 2003 here in an annoyance that I found: &lt;br /&gt;&lt;br /&gt;If you have a list with folders, and you go into one of the folders and try to create some items in DataSheet view, as soon as you create a row it will seem to disappear! What happens is that it actually gets created at the root level of the list! If you have Office 2007 the item gets successfully created inside the folder. The only way to get items into folders with 03 is to use the NewItem form but this can be a huge pain if you are trying to create 200 items at once.&lt;br /&gt;&lt;br /&gt;Apparently this isn't something that is going to get fixed, it has to do with the fact that Office 2003 was designed to work with WSS 2.0 which did not allow you to create folders in Lists. Oh well, now at least you have been warned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-4649420654616890059?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/4649420654616890059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=4649420654616890059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4649420654616890059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4649420654616890059'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/05/office-2003-datasheet-view-behavior.html' title='Office 2003 datasheet view behavior'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-8423049492795440847</id><published>2009-05-08T18:33:00.000-07:00</published><updated>2009-05-08T18:33:00.757-07:00</updated><title type='text'>More DataForm WebPart goodies</title><content type='html'>Here is another handy control for use in data form web parts:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;td class="ms-toolbar" nowrap=""&amp;gt;&lt;br /&gt;  &amp;lt;SharePoint:FormToolBar runat="server" ControlMode="New"/&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Added the td class so it looks right)&lt;br /&gt;&lt;br /&gt;This renders the normal listform toolbar (since if you just do Data View-&gt;Insert Data View, you don't get it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-8423049492795440847?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/8423049492795440847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=8423049492795440847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8423049492795440847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8423049492795440847'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/05/more-dataform-webpart-goodies.html' title='More DataForm WebPart goodies'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-2764553550680072922</id><published>2009-05-01T19:42:00.000-07:00</published><updated>2009-05-15T12:58:42.902-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataForm'/><category scheme='http://www.blogger.com/atom/ns#' term='SPD'/><category scheme='http://www.blogger.com/atom/ns#' term='DataView'/><title type='text'>DataSource CAML Keywords</title><content type='html'>So recently I needed to display the newest item added to a Very Large List via a dataform web part. The performance on SPQuery is pretty good as long as you return less than 2000 rows from your query. This means that you can't just return all of the list items from the datasource and then sort for the newest one. Instead I used some CAML keywords to help out. My DataSource query filtered on:&lt;br /&gt;&lt;br /&gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name="Author" /&amp;gt;&amp;lt;Value Type="Integer"&amp;gt;&amp;lt;UserID /&amp;gt;&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&lt;br /&gt;&lt;br /&gt;and &lt;br /&gt;&lt;br /&gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name="Created"/&amp;gt;&amp;lt;Value Type="DateTime"&amp;gt;&amp;lt;Today/&amp;gt;&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&lt;br /&gt;&lt;br /&gt;These two CAML rendering elements (for the current date, and current users ID). Helped the query return a very small number of rows, which could then be sorted by created date to show the newest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-2764553550680072922?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/2764553550680072922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=2764553550680072922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/2764553550680072922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/2764553550680072922'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/05/datasource-caml-keywords.html' title='DataSource CAML Keywords'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-6192309076384710846</id><published>2009-04-27T21:00:00.000-07:00</published><updated>2009-05-15T13:00:14.027-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataForm'/><category scheme='http://www.blogger.com/atom/ns#' term='SPD'/><title type='text'>EntityEditorWithPicker rendering</title><content type='html'>I was working with a custom lookup field type today that renders with a entity editor with picker (like a Person or Group field). I discovered that the required field validation for a SPFieldLookup fieldtype didn't actually seem to work in a dataform web part (I later found out that it works if you do a "Custom List Form" Dataform, I'll post on this later). My workaround was to embed some javascript in the page with the dataform to do some client side validation (because of the way it renders, the asp.net validator in SPD also won't help). I might write up a "how I did it" post on this in detail later, but for now I just wanted to mention an interesting thing I noticed, that the entityeditor actually renders with a bunch of hidden textareas, but the user is actually typing into a contenteditable div!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-6192309076384710846?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/6192309076384710846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=6192309076384710846' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/6192309076384710846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/6192309076384710846'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/04/entityeditorwithpicker-rendering.html' title='EntityEditorWithPicker rendering'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-5766896273778015264</id><published>2009-04-10T21:04:00.000-07:00</published><updated>2009-04-10T21:04:00.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPD'/><category scheme='http://www.blogger.com/atom/ns#' term='DataView'/><title type='text'>Attachments field in DataView</title><content type='html'>Ran into this the other day, if you include the 'Attachments' field of a list in a dataview web part (i.e. DataFormWebPart Single Item View) you get text that says Yes or No depending on if this item has any attachments. Not exactly the behavior I was looking for; probably not the behavior ANYONE was looking for... If you want to show links to the actual attachment the same way as the normal DispForm ListView webpart shows them, remove the xslt for the attachments field and instead put: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;lt;SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Just to be clear, I believe this will only work on a list form page. Why the @Attachment's field can't just at least output you the attachment names is beyond me...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-5766896273778015264?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/5766896273778015264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=5766896273778015264' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5766896273778015264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5766896273778015264'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/04/attachments-field-in-dataview.html' title='Attachments field in DataView'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-826651426852391251</id><published>2009-04-08T19:43:00.000-07:00</published><updated>2009-04-15T15:47:47.666-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPD'/><category scheme='http://www.blogger.com/atom/ns#' term='DataView'/><title type='text'>Finding the DataView Web Part EditPanel</title><content type='html'>So here is a useful tip... &lt;br /&gt;&lt;br /&gt;If you are adding a data view part to a page in SPD and you click the "Dataview properties..." link in the contextual menu, you get the SPD properties screen that doesn't actually have all of the standard webpart Edit Panel (ie toolpart for you v2 guys) options (like Target Audience for example). To get the normal UI one, go to code view and right click your  '&lt;WebPartPages:DataFormWebPart&gt;' tag. On your contexual menu here you will see "Tag Properties...", click this and you will get the normal webpart EditPanel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-826651426852391251?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/826651426852391251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=826651426852391251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/826651426852391251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/826651426852391251'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/04/finding-dataview-web-part-editpanel.html' title='Finding the DataView Web Part EditPanel'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-4003806193334604769</id><published>2009-03-26T19:10:00.000-07:00</published><updated>2009-03-26T19:10:00.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='end user'/><category scheme='http://www.blogger.com/atom/ns#' term='List'/><title type='text'>How to filter a list on a specific date range (End User)</title><content type='html'>I have decided to add some end user focused entries as well for things that I get asked a lot...&lt;br /&gt;&lt;br /&gt;I was asked recently about creating a filter on a list view for a specific date range. &lt;br /&gt;&lt;br /&gt;To make a filter for a specific month you can do this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LMvLkjkVlfM/ScvifXprCwI/AAAAAAAAIMA/MHNOItoWfXo/s1600-h/filterMonth.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 171px;" src="http://2.bp.blogspot.com/_LMvLkjkVlfM/ScvifXprCwI/AAAAAAAAIMA/MHNOItoWfXo/s400/filterMonth.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5317592813593627394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also use the [Today] keyword in your filter. For example to create a view that shows all items with a date after the current date you would set your filter to date is greater than: [Today]. Or to have a filter show items in the last week you would set a filter for date is greater than [Today]-7 AND date is less than [Today]+1. Be careful to not put any spaces between the keyword and the - or + operator.&lt;br /&gt;&lt;br /&gt;Remember to make sure your dates are in the correct format (mm/dd/yyyy) and are valid dates (ie 2/30/2009 won't work) otherwise you will get the "filter value is not in a supported date format" error.&lt;br /&gt;&lt;br /&gt;Hopefully this help clarify any confusion that people may have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-4003806193334604769?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/4003806193334604769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=4003806193334604769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4003806193334604769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4003806193334604769'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/03/how-to-filter-list-on-specific-date.html' title='How to filter a list on a specific date range (End User)'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LMvLkjkVlfM/ScvifXprCwI/AAAAAAAAIMA/MHNOItoWfXo/s72-c/filterMonth.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1026518698311165525.post-6120439118832052949</id><published>2009-03-11T17:58:00.000-07:00</published><updated>2009-04-15T15:45:24.324-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='List'/><title type='text'>Why can't I use Totals on a calculated column?</title><content type='html'>So you may have run into this frustration before: for some crazy reason, when creating views with Totals, you cannot include totals for Calculated columns (even if they are set to output as 'Number'!).&lt;br /&gt;&lt;br /&gt;Here is a example situation:&lt;br /&gt;You have a list of projects, each project has Q1 through Q4 values that you want to add up to give you a yearly total:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LMvLkjkVlfM/SbhfDfX5fCI/AAAAAAAAHog/Okpm3vYbtm4/s1600-h/picture1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 77px;" src="http://1.bp.blogspot.com/_LMvLkjkVlfM/SbhfDfX5fCI/AAAAAAAAHog/Okpm3vYbtm4/s400/picture1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5312100274049481762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Easy enough, you just create a calculated column:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LMvLkjkVlfM/SbhfKwpLcCI/AAAAAAAAHoo/cvKdL1hG3qo/s1600-h/picture2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 352px; height: 311px;" src="http://1.bp.blogspot.com/_LMvLkjkVlfM/SbhfKwpLcCI/AAAAAAAAHoo/cvKdL1hG3qo/s400/picture2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5312100398944448546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now your list looks like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LMvLkjkVlfM/SbhfK3W5RFI/AAAAAAAAHow/O-A1NvJSnpQ/s1600-h/picture3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 64px;" src="http://3.bp.blogspot.com/_LMvLkjkVlfM/SbhfK3W5RFI/AAAAAAAAHow/O-A1NvJSnpQ/s400/picture3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5312100400746808402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is where the frustration comes in, you want to see an average yearly spend  so you create a view with Totals, unfortunately the calculated field doesn't  even show up as an option!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LMvLkjkVlfM/SbhdkSys2KI/AAAAAAAAHoA/qO7n7TDfgO0/s1600-h/picture+4.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_LMvLkjkVlfM/SbhdkSys2KI/AAAAAAAAHoA/qO7n7TDfgO0/s400/picture+4.jpg" alt="" id="BLOGGER_PHOTO_ID_5312098638584666274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This seems to me like an oversight from the product team, but at least there is an alternative method! If you view your list in datasheet view:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LMvLkjkVlfM/SbhdkqtTL3I/AAAAAAAAHoI/UJR9mO22TS8/s1600-h/pic5.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_LMvLkjkVlfM/SbhdkqtTL3I/AAAAAAAAHoI/UJR9mO22TS8/s400/pic5.jpg" alt="" id="BLOGGER_PHOTO_ID_5312098645004463986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you can enable Totals here:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LMvLkjkVlfM/SbhdkgwxwHI/AAAAAAAAHoQ/JDDiBdFZcxA/s1600-h/pic6.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_LMvLkjkVlfM/SbhdkgwxwHI/AAAAAAAAHoQ/JDDiBdFZcxA/s400/pic6.jpg" alt="" id="BLOGGER_PHOTO_ID_5312098642334695538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And magically your calculated column total shows up! Of course we wanted an average here, so just click the dropdown on your calculated column total field, and change the value to Average:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LMvLkjkVlfM/Sbhdkk0HdcI/AAAAAAAAHoY/dwAGoCRJUrw/s1600-h/pic+7.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_LMvLkjkVlfM/Sbhdkk0HdcI/AAAAAAAAHoY/dwAGoCRJUrw/s400/pic+7.jpg" alt="" id="BLOGGER_PHOTO_ID_5312098643422442946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And there you have it. Be aware that for some odd reason the total will only display in datasheet view (if you change it back the other column totals stay but the calculated one disappears), but now you know how to find it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-6120439118832052949?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/6120439118832052949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=6120439118832052949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/6120439118832052949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/6120439118832052949'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/03/why-cant-i-use-totals-on-calculated.html' title='Why can&apos;t I use Totals on a calculated column?'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LMvLkjkVlfM/SbhfDfX5fCI/AAAAAAAAHog/Okpm3vYbtm4/s72-c/picture1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1026518698311165525.post-7731988881823388345</id><published>2009-03-03T18:12:00.000-08:00</published><updated>2009-04-17T10:27:00.289-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataSource'/><category scheme='http://www.blogger.com/atom/ns#' term='DataForm'/><category scheme='http://www.blogger.com/atom/ns#' term='SPD'/><category scheme='http://www.blogger.com/atom/ns#' term='DataView'/><title type='text'>Dataview DataSource not showing all files...</title><content type='html'>Ran into a situation today where a Dataview web part was showing &lt;span style="font-style: italic;"&gt;some &lt;/span&gt;of the items in a Library but not all... It turns out that by default the datasource only shows files and folders at the top level. All of the items that are inside of folders or subfolders will not get returned.&lt;br /&gt;&lt;br /&gt;The solution is to go to the 'Scope' parameter of your &lt;sharepoint:spdatasource&gt; tag and change it to 'RecursiveAll'. This will cause your query to return all items regadrless of folder level from the data source. One thing to note, if your list or library is a &lt;a href="http://go.microsoft.com/fwlink/?LinkId=95450&amp;amp;clcid=0x409"&gt;Very Large List&lt;/a&gt; you need to be careful to set your 'Filter' parameters before changing the tag to 'Recursive' (Shows all files of all folders) or 'RecursiveAll' (Shows all files and all subfolders of all folders); in our case we were doing a dataform for a very large list so we set the Filter to ID = &lt;ItemID&gt;. If you are creating your DataSource in SPD and you don't set your Filter before changing the Scope to Recursive there is a good chance SPD will time out and/or crash trying to preview your data.&lt;br /&gt;&lt;br /&gt;More info on Data Source configuration here: &lt;a href="http://office.microsoft.com/en-us/sharepointdesigner/HA101326861033.aspx"&gt;http://office.microsoft.com/en-us/sharepointdesigner/HA101326861033.aspx&lt;/a&gt; (just note that they are changing their data source properties BEFORE they add it to the page, this will run you into the timeout issue I described above for Very Large Lists so remember to add it to the page and edit the Scope by hand in Code View).&lt;br /&gt;&lt;/the&gt;&lt;/sharepoint:spdatasource&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-7731988881823388345?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/7731988881823388345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=7731988881823388345' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/7731988881823388345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/7731988881823388345'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2009/03/dataview-datasource-not-showing-all.html' title='Dataview DataSource not showing all files...'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-5162537286377652576</id><published>2008-10-21T21:05:00.000-07:00</published><updated>2008-10-22T13:08:12.120-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPListItem'/><title type='text'>SPListItem "System Update"</title><content type='html'>Found this the other day, if you want to update a List Item without changing the modified by, modified time, or the version of the item you can run .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SystemUpdate&lt;/span&gt;() on the list item.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-5162537286377652576?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/5162537286377652576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=5162537286377652576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5162537286377652576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5162537286377652576'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/10/splistitem-system-update.html' title='SPListItem &quot;System Update&quot;'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-4996677349227309456</id><published>2008-10-02T18:23:00.000-07:00</published><updated>2008-10-02T18:23:00.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Part'/><title type='text'>Microsoft.SharePoint.WebPartPages.WebPart vs System.Web.UI.WebControls.WebParts.WebPart</title><content type='html'>&lt;p style="font-family: lucida grande;"&gt;So I regularly see people making Web Parts using the Microsoft.SharePoint.WebPartPages.WebPart class instead of the System.Web.UI.WebControls.WebParts.WebPart class. Most of the time people do this because they don't know any better. The Microsoft.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Sharepoint&lt;/span&gt; one was used for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;wss&lt;/span&gt; 2.0 and it is now recommended that you use the new System.Web.UI.WebControls class (especially since then your web parts will work outside of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;sharepoint&lt;/span&gt;). So the message here is: &lt;span style="font-weight: bold;"&gt;use  System.Web.UI.WebControls.WebParts.WebPart!&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;That being said, there is one small legitimate use of the Microsoft.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SharePoint&lt;/span&gt; class (though one that I have never needed to use so far):&lt;/p&gt;&lt;p style="font-family: lucida grande;"&gt;The Microsoft.SharePoint.WebPartPages.WebPart class (and NOT the System.Web one) can do:&lt;/p&gt; &lt;ul style="font-family: lucida grande;"&gt;&lt;li&gt; &lt;p&gt;Cross page connections&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Connections between Web Parts that are outside of a zone&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Client-side connections (Web Part Page Services Component)&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Data caching infrastructure, including the ability to cache to the database&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: lucida grande;"&gt;Just putting that out there for information sake, but as I said, I never not yet needed to do any of those things. I would suggest staying away from it unless you know you need to and don't have a better way.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;Remember, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SharePoint&lt;/span&gt; is NOT all about the Web Parts!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-4996677349227309456?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/4996677349227309456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=4996677349227309456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4996677349227309456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/4996677349227309456'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/10/microsoftsharepointwebpartpageswebpart.html' title='Microsoft.SharePoint.WebPartPages.WebPart vs System.Web.UI.WebControls.WebParts.WebPart'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-8823697289237454617</id><published>2008-09-30T17:48:00.000-07:00</published><updated>2008-09-30T17:48:00.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Results Web Part'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><title type='text'>Customizing the Search Results Web Part</title><content type='html'>&lt;span style="font-family:lucida grande;"&gt;So I was setting up a custom search results (Search Core Results) Web Part the other day to display some fields from a custom content type I created...&lt;br /&gt;&lt;br /&gt;I added them to "Selected Columns" as you are supposed to, only to be confronted by the very annoying error message: "Property doesn't exist or is used in a manner inconsistent with schema settings."&lt;br /&gt;&lt;br /&gt;This error is of course not particularly helpful, so after some digging I discovered that you can only selected columns that you have created Managed Properties for! (Ref: http://msdn.microsoft.com/en-us/library/ms560074.aspx)  Totally lame, but at least now I know why it wasn't working, I must have never added non-managed properties before...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-8823697289237454617?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/8823697289237454617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=8823697289237454617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8823697289237454617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8823697289237454617'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/09/customizing-search-results-web-part.html' title='Customizing the Search Results Web Part'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-7602941638776515154</id><published>2008-09-22T23:55:00.000-07:00</published><updated>2009-04-15T15:46:19.751-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPD'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Master Page'/><title type='text'>"This item cannot be deleted because it is still referenced by other pages."</title><content type='html'>So this is one I ran into a while back, and it really annoys me that the top Google link when searching for the error "&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;This item  cannot be deleted because it is still referenced by other pages." is the MSDN page telling you to make it "hidden"... This error shows up when trying to delete a Master Page from the Master Page Gallery. Sometimes it will delete just fine, and sometimes you will be presented with this error, even though there are no other pages still referencing it.&lt;br /&gt;&lt;br /&gt;The solution is:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;Open the site in SharePoint Designer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;Navigate to the master page gallery (it is called 'masterpage' under the '_catalogs' folder)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;Create a new folder,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;Move the Master Page you are trying to delete into this new folder&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;Then delete the folder&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="ms-descriptiontext" id="ctl00_PlaceHolderMain_LabelMessage"&gt;And there you go, SharePoint is now magically ok with deleting the Master Page afterall!&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-7602941638776515154?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/7602941638776515154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=7602941638776515154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/7602941638776515154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/7602941638776515154'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/09/this-item-cannot-be-deleted-because-it.html' title='&quot;This item cannot be deleted because it is still referenced by other pages.&quot;'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-7612577414207957604</id><published>2008-09-21T13:59:00.000-07:00</published><updated>2008-09-27T11:06:07.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataGrid'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Paging'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Part'/><title type='text'>DataGrid Paging in a Web Part</title><content type='html'>So this is a simple .NET one, but I ran in to this the other day working on a custom Web Part.&lt;br /&gt;&lt;br /&gt;The issue I ran into was doing paging on a DataGrid inside a simple custom Web Part. All of the Web Part's rendering is happening inside of CreateChildControls so I have no aspx/ascx file to set the properties of my DataGrid (which is being created in code) but this is what much of the documentation out there says to do. This is how you do it entirely in code:&lt;br /&gt;&lt;br /&gt;For paging to work (besides having the AllowPaging property set) you must specify the method to get called when the paging button is clicked:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;myDataGrid.PageIndexChanged += new DataGridPageChangedEventHandler(this.GridChangeMethod);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can also specify any of the other properties that you would normally do in the aspx file:&lt;br /&gt;&lt;br /&gt;myDataGrid.PagerStyle.Mode = PagerMode.NextPrev;&lt;br /&gt;myDataGrid.PagerStyle.NextPageText = "Next &gt;";&lt;br /&gt;myDataGrid.PagerStyle.PrevPageText = "&lt; Prev";&lt;br /&gt;&lt;br /&gt;Ref: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagrid.onpageindexchanged.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-7612577414207957604?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/7612577414207957604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=7612577414207957604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/7612577414207957604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/7612577414207957604'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/09/datagrid-paging-in-web-part_21.html' title='DataGrid Paging in a Web Part'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-5441355376288059329</id><published>2008-09-18T19:33:00.000-07:00</published><updated>2008-09-18T21:24:10.785-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='CQWP'/><category scheme='http://www.blogger.com/atom/ns#' term='Content Query Web Part'/><title type='text'>Customizing the content query web part (CQWP)</title><content type='html'>This is a pretty simple one, but people tend to ask about it a lot. One of the most powerful Web Parts built in to MOSS is the Content Query Web Part (affectionately known as the CQWP). This Web Part allows you to roll up content from any and all lists in the current site and all subsites and display in a custom format. If you have never played with it, you should go try it out. You can specify a content type to pull from multiple lists, sort, filter etc...&lt;br /&gt;&lt;br /&gt;The greatest thing about the CQWP is that the data comes back as XML and gets displayed using the XSLT in the Style Library (ItemStyle), you can modify this XSLT or point it at your own file to pretty much roll up data in any way you need. This is a great solution to any client that wants you to "write us a web part to display some list data" because it is already written for you and the performance (even when accessing large lists) is pretty much as good as it gets (check out http://go.microsoft.com/fwlink/?LinkId=95450&amp;amp;clcid=0x409 for reference).&lt;br /&gt;&lt;br /&gt;The one thing to remember to do is include your custom list columns in the CQWP properties via the .webpart file. There are some good tutorials on doing this (and other property customizations) from &lt;a href="http://msdn.microsoft.com/en-us/library/aa981241.aspx"&gt;MSDN &lt;/a&gt;and on &lt;a href="http://www.heathersolomon.com/blog/articles/customitemstyle.aspx"&gt;Heather Solomon's blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-5441355376288059329?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/5441355376288059329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=5441355376288059329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5441355376288059329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/5441355376288059329'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/09/customizing-content-query-web-part-cqwp.html' title='Customizing the content query web part (CQWP)'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-447655362817431227</id><published>2008-09-17T19:28:00.000-07:00</published><updated>2008-09-17T22:47:37.505-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Person or Group'/><category scheme='http://www.blogger.com/atom/ns#' term='List'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Person Field'/><category scheme='http://www.blogger.com/atom/ns#' term='SPFieldUserValue'/><title type='text'>Getting AccountName from a "Person or Group" field</title><content type='html'>&lt;div style="font-family: lucida grande;"&gt;This is one I ran into a while back and blogged for reference:&lt;br /&gt;&lt;br /&gt;Let's say you have a "Person or Group" field on a SharePoint list... How do you get the username of that user in code? Finally found the answer to this buried in &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflowtaskproperties.assignedto.aspx"&gt;MSDN&lt;/a&gt;.&lt;br /&gt;Here is the code snippet to convert "Person or  Group" type field in a SharePoint list(which is stored like:  "&lt;em&gt;12345#;Some Name&lt;/em&gt;") into the correct account name in the form of “&amp;lt;Domain&amp;gt;\&amp;lt;Username&amp;gt;”.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;div style="font-family: lucida grande;"&gt; &lt;/div&gt;   &lt;div style="font-family: lucida grande;"&gt;SPFieldUserValue userValue = new SPFieldUserValue(workflowProperties.Web,retrievedFieldValue);&lt;br /&gt;&lt;br /&gt;string userName =  userValue.User.LoginName;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;div style="font-family: lucida grande;"&gt; &lt;/div&gt; &lt;div style="font-family: lucida grande;"&gt;In this case the SPWeb is coming from the workflowProperties, but  it just needs the one that the SPList lives in.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-447655362817431227?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/447655362817431227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=447655362817431227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/447655362817431227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/447655362817431227'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/09/getting-accountname-from-person-or.html' title='Getting AccountName from a &quot;Person or Group&quot; field'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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-1026518698311165525.post-8790793638964632070</id><published>2008-09-17T19:07:00.000-07:00</published><updated>2008-09-17T19:10:12.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Solutions'/><title type='text'>About</title><content type='html'>&lt;div style="font-family: lucida grande;" class="entry"&gt;      &lt;div class="snap_preview"&gt;&lt;p&gt;Hi everyone,&lt;/p&gt; &lt;p&gt;So I wanted to have a quick intro post about who I am and my (at least initial) purpose for this blog… My name is Ely and I work in a large enterprise environment as a “Solutions Developer” which really equates to an Information System’s architect, solution designer, developer, and all around technical “guru”. My main focus is helping users in the business design and build solutions on our enterprise SharePoint platform that consists of the full Windows SharePoint Services 3.0 (WSS 3.0) + Enterprise Microsoft Office SharePoint Server 2007 (MOSS 2007) goodness.&lt;/p&gt; &lt;p&gt;As for this blog, in the never ending learning experience that is SharePoint I seem to keep running into problems, oddities and general “how do I do this?” questions that are not well document or the answers are hard/impossible to find. I plan to use this blog as a place to help others who may have run into the same problems/oddities/”How do I do it” questions that I have run into so they don’t have to go through the same grueling process that I did to solve them.&lt;/p&gt; &lt;p&gt;Please feel free to email me with any comments/feedback you may have or with any problems you would like me to look in to!&lt;/p&gt; &lt;p&gt;-Ely&lt;/p&gt; &lt;/div&gt;    &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1026518698311165525-8790793638964632070?l=sharepointdevsolutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharepointdevsolutions.blogspot.com/feeds/8790793638964632070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1026518698311165525&amp;postID=8790793638964632070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8790793638964632070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1026518698311165525/posts/default/8790793638964632070'/><link rel='alternate' type='text/html' href='http://sharepointdevsolutions.blogspot.com/2008/09/about.html' title='About'/><author><name>Ely</name><uri>http://www.blogger.com/profile/06040026875700359172</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>
