Posted: September 28th, 2009 | Author: davecavins | Filed under: General SharePoint, SharePoint Design | Tags: page title, SharePoint | No Comments »
When working with multiple browser windows open its hard to tell one from the other because most SharePoint pages don’t offer a useful title. So in most cases you will see something like this (I am using the dreaded IE 6 unfortunately). As you can see most SharePoint pages only show the title of the page. On the home page of some sites the site name is shown as well.

Useless Page Titles
Ideally the page title should not only tell you the title of the page you are looking at but also what site you are on. Chris Coyier of CSS-Tricks talks more about different options in this post. After some experimenting I was able to get this working in SharePoint.
Read the rest of this entry »
Posted: September 15th, 2009 | Author: davecavins | Filed under: General SharePoint | Tags: attachments, Data View Web Part, SharePoint, xsl | 4 Comments »
So on a recent project I needed to show a link to the attachment for each item in a list. A quick Google search found How to show Attachments with DataFormWebPart from Dario Martirani Paolillo’s Web Log. I was excited because it seemed to work well and was very easy to implement.
As I was about to finish up the project I was given some new requirements which meant that there would be two Data View Web Parts on the page and both would need to show the attachments link. This is when the issues started. When you have two web parts on the page using the display attachments code the second one will just show “[value of field: Attachments]” instead of the actual link. If anyone knows a good solution for this issue please post a comment.
I want to avoid using something like this jQuery solution by Paul Grenier simply because of the performance issues it will create.
Posted: September 2nd, 2009 | Author: davecavins | Filed under: Uncategorized | Tags: Data View Web Part, JavaScript, search, SharePoint | 4 Comments »
On a recent project one of the requirements was that users be able to filter a list by a date range. To this I tried using two date filter webparts connected to a data view webpart. A detailed description of how to set this up can be found here. This solution worked well enough but there was a page refresh after the user entered each date, so the user enters the first date (page refresh) user enters second date (page refresh again) and finally they get the results. This annoyed me, I wanted to remove the extra page loads so I tried several things and this is what I finally came up with.
Setup
Using a content editor webpart build the form elements needed to collect the dates, two inputs and a search button. Give each input a unique ID. Here is the code I used.
<script language="JavaScript">
function submitForm()
{
var startDate = document.getElementById('startDate').value;
var endDate = document.getElementById('endDate').value;
window.parent.location="default.aspx?T1=" + startDate + '&T2=' + endDate;
}
</script>
<p><div id="dateDiv" style="display:none;" class="filterBox">
<h4>Date Search</h4>
Between
<input name="startDate" type="text" id="startDate" value="" size="15" class="dateformat-Y-ds-m-ds-d" value="">
and
<input name="endDate" type="text" id="endDate" value="" size="15" class="dateformat-Y-ds-m-ds-d" value="">
YYYY-MM-DD
<input type="submit" name="Submit" value="Go" onClick="submitForm();this.disabled=true;">
</div>
The class names are used to activate the date picker script but can be whatever you want. I used this date picker script from Frequecy Decoder
The submitForm() function simply takes the values from the inputs and adds them as query string variables at the end of the URL. We can now use these values to filter the list.
Filtering the Data View Web part
To filter the content of the DVWP based on the date we have to setup some parameters for the start and end dates. Under ‘Common Data View Tasks’ just choose ‘Parameters’ for both the start and end date set the source as ‘Query String’. The query string variable will be whatever you defined in the JavaScript so in this case they are T1 and T2. Set the default value for the start date to some date impossibly far in the past and for the end date set it to something like the year 3000. This will ensure that the list will show all records if no values are passed for the start and end dates.

Then all you have to do is setup your filter based on the parameters from the query string.

You’re done.
Things to remember
The date has to be passed in YYYY-MM-DD format in order to work.
If the detault values for your start and end date parameters are not set high / low enough all records will not display when not date range is entered.
Recent Comments