Jan 31

SharePoint 2010 – Note Field – Rich Text Warning

In one of our SharePoint 2010 sites we have a note field with Rich Text enabled and Rich Text Mode set to Full Html.

We found out today that SharePoint 2010 automatically converts links (a tags) in the above case by “helpfully” removing the site name

i.e.

<a href=’http://server/site/library/document.docx’>link</a>

becomes

<a href=’/site/library/document.docx’>link</a>

in our case we were using this in the body of an email to 3rd parties and the removal of the server gave us grief.

May 20

SharePoint 2010 – Class to Hold ListItem Information

In order to avoid excessive memory leaks when coding for SharePoint 2010 I have used the following class:-

// Class to hold SPListItem information
public class SPListItemInfo
{
    public string WebUrl { get; set; }
    public Guid ListGuid { get; set; }
    public int ItemId { get; set; }

    public SPListItemInfo(SPListItem _item)
    {
        this.WebUrl = _item.Web.Url;
        this.ListGuid = _item.ParentList.ID;
        this.ItemId = _item.ID;
    }
}

private static void DoSomething(SPListItemInfo info)
{
    using (SPSite site = new SPSite(info.WebUrl))
    {
        using (SPWeb web = site.OpenWeb())
        {
            SPList list = web.Lists[info.ListGuid];
            SPListItem item = list.GetItemById(info.ItemId);
            // ...
        }
    }
}

public static void DoSomethingNow(SPListItemInfo info)
{
    DoSomething(info);
}

public static void DoSomethingLater(object o)
{
    SPListItemInfo info = o as SPListItemInfo;
    if (info != null) // Ensure we have a valid SPListItemInfo object
    {
        Thread.Sleep(10000);
        DoSomething(info);
    }
}

SPListItem listitem;

// Use this to run code later on separate thread
SPListItemInfo info = new SPListItemInfo(listitem);
ParameterizedThreadStart pts = new ParameterizedThreadStart(DoSomethingLater);
Thread th = new Thread(pts);
th.Start(info);

// Use this to run code now
DoSomethingNow(info);

This avoids the need to parse the heavyweight SPWeb object between the routines. There is a slight overhead in re-creating the SPWeb objects when necessary, but this is outweighed by the ease of use.  The class and routines here can also be used to delay operations by running them on a separate thread.

Jan 21

SnowBear

SnowBear

Seen hugging a bush in Markfield, Leicestershire

Jan 10

SharePoint 2010 – DataSheet View not working

How to Use Datasheet view in 64-bit Office 2010 See Full article

Quick answer download and install 2007 Office System Driver: Data Connectivity Components

Jan 10

SharePoint 2010 – Site Actions – Click not working

My site action menu was having problems. The menu was dropping down; however when I clicked the links nothing happened. I was having the same issue with modifying the site settings – basically very few links work. They are all visible but didn’t open when I click on them – nothing happened.

After a bit of Googling found some posts suggesting that disabling “DivX Plus Web Player” does the trick.

Tried it :-
Tools –> Internet Options
Programs Tab –> Manage Add-ons
Find “DivX Plus Web Player HTML5 <video>” and disable it

Site Actions menu clicks now work.

Dec 04

Kill Ad Choices

Kill MS AdChoices

Ad Choices

Nov 28

Change FireFox address bar search engine

In Firefox type about:config in the address bar and press ENTER.

Search for Keyword

Locate and double-click the entry for keyword.URL

Modify it by add the below set of values :

Yahoo: http://search.yahoo.com/search?p=

Ask: http://www.ask.com/web?q=

Bing: http://www.bing.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=

Google: http://www.google.com/search?&q=

Nov 23

On-Line multi AV Scanners

https://www.virustotal.com/
http://virusscan.jotti.org/en
https://www.metascan-online.com/
http://virscan.org/

Sep 21

SharePoint 2010 Central Administration – Timer Jobs showing incorrect percentage

In the SharePoint 2010 Central Administration – Running Jobs were showing with an incorrect percentage (half what it should have been).

Debugging showed that the job was running twice.  Searching for why TimerJobs might be running more than once I found that the job’s Lock Type is important.  Could find no documentation to support my theory below.

  • The Percentage complete reported in “Central Administration” –> “Running Jobs” is the value set via UpdateProgress (in my code) divided by the number of Content Databases in the WebApp.

 
Turned out we had an orphan Content Database, which is why the job was running twice.

The Job Lock type of our job is set to SPJobLockType.ContentDatabaseJob, if you want the code to run ONLY once use SPJobLockType.Job

See documentation on MSDN for all possible values of this enumeration.

Deleting the orphan Content Database solved my issue.

Aug 07

Using your router to protect the family

This is a guide to setting up OpenDNS and DNS-O-Matic to filter Web Traffic for free using a Buffalo ADSL2+ Router [WBMR-HP-G300H] running DD-WRT v24-sp2 (12/21/11) std – build 18026.

STEP 1 OpenDNS

Sign up for an account with OpenDNS, open your email client (or web mail) and Confirm your account, add the network ip address listed and give it an alias i.e. “Home”

Goto your OpenDNS Dashboard click on Advanced Settings to ensure Dynamic IP Update is checked

STEP 2 DNS-O-Matic

Goto DNS-O-Matic and sign in with the same login as OpenDNS and set up a service link to OpenDNS ensirinmg that the Network Label is that used as your OpenDNS alias

STEP 3 Your Router

Log in to your router and Set the DNS Servers to IP address: 208.67.222.222 208.67.220.220

Set up DDNS in router as follows
DDNS Service: Custom
DYNDNS Server: updates.dnsomatic.com
User Name: ********@***.***.**
Password: ********
Host Name: ********.dyndns.org -a Home
URL: /nic/update?hostname=

Note in may case I also have a dyndns name which I use, so I think the hostname for you to use would be simly “Home” without the quotes.

STEP 4 – Tweaking

Goto OpenDNS Dashboard –> Settings and set the filtering level you desire in the Web Content Filtering section.  Here you can also set up your exceptions as a black list (Always Block) and white list (Never Block)

Older posts «

» Newer posts