Navigation

Search

Categories

On this page

Use the task process editor for approval workflows
Managing Sharepoint Lists With Many Items
Silverlight SharePoint Web Parts - An extension for adding Silverlight web parts to SharePoint features
Using a lookup field on a choice field workaround
50 Limitations of Sharepoint 2010 Sandboxed Solutions
Sandboxed Solutions Overview
How to Pass Querystring data into an InfoPath Form
Setting Up Default Form Values in InfoPath 2010
Using HTML In a Calculated Field Column in Sharepoint 2010
Sharepoint 2010 Calculated Field Columns

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 405
This Year: 33
This Month: 14
This Week: 0
Comments: 17

Sign In
Pick a theme:

# Tuesday, May 15, 2012
Tuesday, May 15, 2012 1:05:20 PM (GMT Daylight Time, UTC+01:00) ( Sharepoint )


If you need a lookup field in a separate list and the original field is a choice column, then there’s no direct way to do this. In other words,  it’s impossible to map a lookup field on a choice field. There’s a workaround, however, by using a calculated field which copies the information from the choice field. The look up field is then able to map the calculated field’s value.  Here’s a nice article on how to do this:

http://bramnuyts.be/2011/04/05/using-a-lookup-field-on-a-choice-field-workaround/

Comments [0] | | # 
# Monday, May 14, 2012
Monday, May 14, 2012 1:38:12 PM (GMT Daylight Time, UTC+01:00) ( Sharepoint )


Source: http://salaudeen.blogspot.com/2012/03/50-limitations-of-sharepoint-sandboxed.html 

1. Deployment at site collection level (No Web Application-scoped Features or Farm-scoped Features). So, If you have 100 site collections, then you have to deploy the same sandbox solution to 100 
site collections. 2. No SPSecurity - Therefore no Elevated Privileges 3. You can't use SPSite object, So you can't get into other site collections 4. Visual webparts are not supported (But you can use the "Visual Studio 200 SharePoint Power Tools" to get this functionality) 5. cannot call to the network resources. E.g. You cannot read/write to a database on the server (But you can use Silverlight) 6. Only "No code" workflows allowed. No Visual studio workflows (But the workflows without classes which are imported and edited in Visual studio will work!) 7. No support for System.IO, Therefore you Cannot read/write to the file system. 8. HideCustomAction, CustomActionGroup are not allowed. But you can use <CustomAction> 9. Remember, Resource Usage Quotas/Limits applied on Sandboxed solutions http://msdn.microsoft.com/en-us/library/gg615462.aspx 10. No Feature stapling supported. 11. Can't write to registry (But you can read) 12. Limited Server Object Model MSDN: http://msdn.microsoft.com/en-us/library/gg615454.aspx 13. Can't set cookies in the sandbox. Use JQuery plugin instead http://plugins.jquery.com/project/cookie 14. No call to external WCF/web services such as Facebook (But we can use AJAX) 15. Content Type Binding is not supported 16. No support for custom Timer jobs 17. Can't use SharePoint mapped folders such as _layouts 18. Can't export a Sandboxed Web Part 19. Microsoft.SharePoint.WebControls and Microsoft.SharePoint.WebPartPages Namespace are not available. 20. Managed Metadata - No programmatic access to taxonomy object model. 21. No ADO.NET support! 22. No support for SPUtility.SendEmail, So you can't Send Mails using this class. 23. No caching support 24. No Custom HTTP Modules 25. No developer dashboard 26. No Site Definition 27. Can't use controls for delegation 28. No Business Connectivity Services support 29. No Localization support 30. No SPWebConfigModification usage 31. Most of the Microsoft.SharePoint.Administration are disabled 32. No Document converters 33. No User Control support. 34. NO Custom service applications 35. SharePoint web controls (such as SPTreeView) are not supported 36. ClientScriptManager is not available 37. Can't access the event viewer for logging 38. No PropertyBags of SharePoint Object model are not accessible,( But you can use SPWeb.AllProperties or custom list to store settings) 39. No GAC Deployment, Your solutions will be stored in content database. 40. CustomPropertyToolPart not supported 41. Can't create application pages or site pages with code behind 42. No Server side redirects 43. Can't access some of the enterprise services like UserProfile, Search 44. Can't access dlls from BIN and resources files(.resx) 45. Can't access code that is not marked to allow partially trusted callers 46. Can't deploy assemblies to GAC and Cannot call assemblies deployed out of Global Assembly Cache 47. HttpRequest.Files collection will not contain anything 48. Only SPLimitedWebPartManager is available. 49. SharePoint Web controls (namespace SharePoint.WebControls) are not available, 50. Last but not least: site Template Binding is not supported.
Comments [0] | | # 
Monday, May 14, 2012 1:24:40 PM (GMT Daylight Time, UTC+01:00) ( Sharepoint )


Nice article on the differences between Sandboxed Solutions and Farm Solutions in Sharepoint 2010

http://technet.microsoft.com/en-us/library/ee721992.aspx

Comments [0] | | # 
# Friday, May 11, 2012
Friday, May 11, 2012 1:25:36 PM (GMT Daylight Time, UTC+01:00) ( InfoPath | Sharepoint )


This is a great blog post on how to make filling out InfoPath 2010 forms faster and easier.

http://blogs.msdn.com/b/infopath/archive/2010/07/29/tips-and-tricks-for-making-form-filling-faster.aspx 

Here is my favorite example

Setting up the default user

Setting the default value of the Person/Group picker is done through the fields task pane. Show the fields task pane by selecting “Show Fields” on the data tab and expand your Person/Group picker field (in my case, outBy). Click “Show advanced view” to see the detailed view. Right-click on the AccountId and choose properties.

Under default value, choose the function builder and type userName().
Again, make sure that “Refresh value when formula is recalculated” is unchecked, so that this rule is only run once and not every time the form is opened. Click Ok.

Repeat this process with the DisplayName (optional) to get the best experience. Now the people picker will default to the person who opens the form.
When we load the form, the date, boat type, and checked out by fields are already filled out. With half of the fields completed, it will take employees less time to check out boats.

Comments [0] | | # 
# Thursday, May 10, 2012
Thursday, May 10, 2012 9:27:26 PM (GMT Daylight Time, UTC+01:00) ( Sharepoint )

 

I was recently trying to display an image in a calculated field column in a Sharepoint list and couldn’t figure out how to output the HTML in that column.  I came across this article which helped me quite a bit. http://blog.pathtosharepoint.com/2008/08/07/calculated-columns/ and http://blog.pathtosharepoint.com/2008/09/01/using-calculated-columns-to-write-html/

Here is the formula I used:

=IF(Status="Green","<DIV><img title='Green' border='0' alt='Green' src='https://fsa.share.ed.gov/teams/bo/SL/SiteAssets/images/Green.gif'></DIV>",
IF(Status="Yellow","<DIV><img title='Yellow' border='0' alt='Yellow' src='https://fsa.share.ed.gov/teams/bo/SL/SiteAssets/images/Yellow.gif'></DIV>",
IF(Status="Red","<DIV><img title='Red' border='0' alt='Red' src='https://fsa.share.ed.gov/teams/bo/SL/SiteAssets/images/Red.gif'></DIV>")))

This is the javascript that must be placed in a Content Editor Web Part below the Web part containing the list above

<script type="text/javascript">
//
// Text to HTML
// Feedback and questions: Christophe@PathToSharePoint.com
//
var theTDs = document.getElementsByTagName("TD");
var i=0;
var TDContent = " ";
while (i < theTDs.length) {
try {
TDContent = theTDs[i].innerText || theTDs[i].textContent;
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {
theTDs[i].innerHTML = TDContent;
}
}
catch(err){}
i=i+1;
}
//
// ExpGroupRenderData overwrites the default SharePoint function
// This part is needed for collapsed groupings
//
function ExpGroupRenderData(htmlToRender, groupName, isLoaded) {
var tbody=document.getElementById("tbod"+groupName+"_");
var wrapDiv=document.createElement("DIV");
wrapDiv.innerHTML="<TABLE><TBODY id=\"tbod"+ groupName+"_\" isLoaded=\""+isLoaded+ "\">"+htmlToRender+"</TBODY></TABLE>";
var theTBODYTDs = wrapDiv.getElementsByTagName("TD"); var j=0; var TDContent = " ";
while (j < theTBODYTDs.length) {
try {
TDContent = theTBODYTDs[j].innerText || theTBODYTDs[j].textContent;
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {
theTBODYTDs[j].innerHTML = TDContent;
}
}
catch(err){}
j=j+1;
}
tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild,tbody);
}
</script>

This is the result

image

Additional References:

Comments [0] | | # 
Thursday, May 10, 2012 7:31:55 PM (GMT Daylight Time, UTC+01:00) ( Sharepoint )