Development

Implement an update check

You have developed a Webpart or some other program, and want the user to be able to check for updates? In my case I want the user to check for updates for my Webparts. If you click the “Check for updates” Button in the Webpart properties, the latest version from will be shown. Set up an “Updates” list To find the latest version, I have set up a SharePoint list with two fields.

Use SharePoint RSS feeds with absolute links

It is a annoying that RSS feeds do not display images correctly, if your feedreader is offline. The problem is, that the links generated by the SharePoint RSS feed api returns relative links instead of absolute links. But there is a solution: –> Images Broken When Viewing Windows SharePoint Services RSS Feeds in Outlook Here is a small update if you want to make a regular link absolute as well:

Adding a custom field type via code

Your custom field type can be added to a list in a browser easily. But how do you add a custom field type via code? Here is my way: add a new field with the field type from which your custom field type derived change the field type of the new field to your own custom field type In my case my custom field type derived from a SPFieldLookup. 1: // create new lookup field <pre>&lt;font size=2>&lt;span class=lnum> 2: &lt;/span>&lt;span class=kwrd>string&lt;/span> newFieldName = fields.

Tired of Comment Spam?

Do you have comments on your SharePoint blog activated? Anonymous users may leave comments which you have to approve for them to show up? Good. The problem is that there are plenty spam posts which I don’t want to sort out manually. Here comes my solution: The RH.NoBlogCommentSpam SharePoint solution. What does it do? Approve comments from non anonymous users (you can decide if logged in users, may post links) Recycle posts with comments in the subject / body (you can decide) Approve comments from anonymous if they do not contain links Requirements make sure you read them carefully!

Updated WikiWebpart

Since so many people asked for support to upload documents as well, I have implemented this functionality into my WikiWebpart. Now you can add pictures and files directly into your wiki by uploading them from the clients. As always, you have to install the solution, and activate the WikiWebpart feature for you Sitecollection as described in Updated WikiWebpart + Tool to install it. The Webpart will detect an existing picture and document library, and use it.

Development Overview

Sometimes even I forget what I have developed and blogged on my page. To give an overview I have created a page which lists all of them and helps you find what you want. You can find the overview of my developments here.

Display all my alerts update

With this update the problem that SPContext.Current.Web.CurrentUser is sometimes null is solved. Additionally there are lots of information written to the ULS logs, if you have configured your farm to log information with the level “Monitorable” More and download…

fully qualified assembly?

In many occasions you have to specify the class as fully qualified name. I always forget how to do so. [namespace].[classname], [assemblyname], Version=[version], Culture=[culture], PublicKeyToken=[token] Now I know where to look at, if I stumble across the fully qualified name 🙂

Using the PropertyBag

A nice feature of a SPWeb, SPSite or SPWebApplication is the Properties Property. You can save information to this Hashtable. e.g. webApplication.Properties[“MyProperty”] = “5”; After a change to the PropertyBag, you have to webApplication.Update() the changes. But here comes the problem. The account updating the Properties has to be a member of the “Farm Administrators” group to be able to save the changes to the SPWebApplication, because you change a SPPersistantObject of your farm!

Adding SPTimerJob in a FeatureReceiver

In one of my solutions I wanted to add a SPTimerJob through a FeatureReceiver in the feature. The feature was scoped to “Web”. I got an “Access denied” when I tried to do so. The solution I found, was to create a second feature, which was scoped to “WebApplication”. From within this feature, I was able to create my timer job. But only in FeatureActivated. When I tried to add the job from FeatureInstalled, I got the error that SharePoint did not find the assembly, even if it was installed to the GAC.

Use JavaScript within a SPGridView

The NavigateUrlFormat property of the SPMenuField allows you to specify a Url, which will be called if you click the field in a SPGridView. 1: SPMenuField colMenu = new SPMenuField(); <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"><span style="color:#606060"> 2:</span> colMenu.NavigateUrlFields = <span style="color:#006080">"WebUrl,AlertID,ListID"</span>;</pre> <pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"><span style="color:#606060"> 3:</span> colMenu.NavigateUrlFormat = <span style="color:#006080">"{0}/_layouts/SubEdit.aspx?Alert={1}&List={2};</pre> 4: colMenu.TokenNameAndValueFields = "</span>WEBURL=WebUrl,ALERTID=AlertID,LISTID=ListId"; With the TokenNameAndValueFields property, you map the grid columns to %xyz%. If you want to use a JavaScript instead, you can do so: 1: MenuItemTemplate editAlertMenu = new MenuItemTemplate("