Learn how to create web enabled InfoPath forms.
All About SharePoint is a blog about SharePoint, InfoPath and related technologies. It was started in 2005 and has good readership in many countries. It covers SharePoint 2003, 2007, 2010, 2013, 2016 and Office 365. You can read articles, tips, tutorials and news. It has code samples and complete applications as well.
Wednesday, February 6, 2008
Tuesday, February 5, 2008
SharePoint Capacity Planner Tool is now available for download
You can read about the SharePoint Capacity Planner Tool on the following page:
You can download the tool from the same page or download it directly from the following page:
You can download the System Center Capacity Planner 2007 from the following link:
The direct link to download the System Center Capacity Planner 2007 is as follows:
-SSA
Sunday, February 3, 2008
Validating contact selector control programmatically
How to know if contact selector is empty?
XpathNavigator selector = this.CreateNavigator().SelectSingleNode("/my:myFields/my:contactselector", this.NamespaceManager);
if (selector.SelectChildren(XPathNodeType.Element).Count == 0)
{
this.Errors.Add(selector, "Error","Selector is empty");
{
this.Errors.Add(selector, "Error","Selector is empty");
}
How to raise error if user has selected more than one person in the selector?
if (selector.SelectChildren(XPathNodeType.Element).Count > 1)
{
this.Errors.Add(selector, "Error","Please select one user");
{
this.Errors.Add(selector, "Error","Please select one user");
}
How to tell if user hasn't selected a valid person?
selector = selector.SelectSingleNode("my:Person", this.NamespaceManager);
XPathNavigator displayname = this.CreateNavigator().SelectSingleNode("/my:myFields/my:contactselector/my:Person/my:DisplayName", this.NamespaceManager);
string strDisplayName = displayname.value.toString();
string strDisplayName = displayname.value.toString();
XPathNavigator accountid = this.CreateNavigator().SelectSingleNode("/my:myFields/my:contactselector/my:Person/my:AccountId", this.NamespaceManager);
string strAccountid = accountid.value.toString();
string strAccountid = accountid.value.toString();
XPathNavigator accounttype = this.CreateNavigator().SelectSingleNode("/my:myFields/my:contactselector/my:Person/my:AccountType", this.NamespaceManager);
string strAccountType = accounttype.value.toString();
string strAccountType = accounttype.value.toString();
if (string.IsNullOrEmpty(strDisplayName)) ||
string.IsNullOrEmpty(strAccountId)) ||
string.IsNullOrEmpty(strAccountType))
{
this.Errors.Add(selector,"Error","Please select valid user");
}
Note: This was off the top of my head, you may find minor mistakes in XPaths or spellings.
InfoPath: Copying content of one section to another
If you have two sections (sections can have anything including file controls) and you want to copy content from one section to another, here is how you do it:
string sourceXPath = "/my:myFields/my:Source";
string destXPath = "/my:myFields/my:Destination";
XPathNavigator source = this.CreateNavigator().SelectSingleNode(srcXPath, this.NamespaceManager);
XPathNavigator dest = this.CreateNavigator().SelectSingleNode(destXPath, this.NamespaceManager);
XPathNavigator dest = this.CreateNavigator().SelectSingleNode(destXPath, this.NamespaceManager);
if (dest.MoveToAttribute("nil", "http://www.w3.org/2001/XMLSchema-instance"))
dest.DeleteSelf();
dest.DeleteSelf();
if (source.InnerXml.Contains("xsi:nil="))
{
//Do nothing
}
else
{
if (dest.InnerXml.Contains("xsi:nil="))
{
dest.InnerXml = source.InnerXml;
}
else
{
dest.InnerXml += source.InnerXml;
}
{
//Do nothing
}
else
{
if (dest.InnerXml.Contains("xsi:nil="))
{
dest.InnerXml = source.InnerXml;
}
else
{
dest.InnerXml += source.InnerXml;
}
Subscribe to:
Posts (Atom)