<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4180175920749049428</id><updated>2011-11-29T06:21:16.504-08:00</updated><category term='SharePoint'/><category term='MOSS'/><category term='WSS'/><category term='Style Library'/><title type='text'>Vujica Neskovic's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-1900137037139429639</id><published>2010-10-09T03:05:00.001-07:00</published><updated>2010-10-09T03:05:52.737-07:00</updated><title type='text'>Get value from Checkboxlist clientside using Javascript</title><content type='html'>&lt;p&gt;My latest (SharePoint) assignment was to modify the OOB “Send to –&amp;gt; Other location” functionality. The customer wanted to select the target lists using a checkboxlist control instead of having to type URL’s manually. To make this work I made a copy of the application page Copy.aspx and modified it slightly. It turned out that SharePoint was doing some clientside checks, for which it needed the value of the selected items in my checkboxlist control.&lt;/p&gt;  &lt;p&gt;Quite some searching and Googling taught me that it is not possible to retrieve the value clientside using the standard checkboxlist control, but I did find a way to retrieve the value from a checkboxcontrol. To make this possible I needed to make my very own control. &lt;/p&gt;  &lt;p&gt;This custom control should be made in the following way:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;namespace Your.NameSpace        &lt;br /&gt;{         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class CustomCheckBoxListControl : CheckBoxList, IRepeatInfoUser         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; void IRepeatInfoUser.RenderItem(ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.WriteBeginTag(&amp;quot;input&amp;quot;);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.WriteAttribute(&amp;quot;type&amp;quot;, &amp;quot;checkbox&amp;quot;);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.WriteAttribute(&amp;quot;name&amp;quot;, UniqueID + &amp;quot;$&amp;quot; + repeatIndex);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.WriteAttribute(&amp;quot;id&amp;quot;, ClientID + &amp;quot;_&amp;quot; + repeatIndex.ToString(NumberFormatInfo.InvariantInfo));         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.WriteAttribute(&amp;quot;value&amp;quot;, Items[repeatIndex].Value);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.Web.UI.AttributeCollection attrs = Items[repeatIndex].Attributes;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (string key in attrs.Keys)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.WriteAttribute(key, attrs[key]);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.Write(&amp;quot;&amp;gt;&amp;quot;);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.Write(Items[repeatIndex].Text);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }         &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As you can see, the value from the listitem is rendered along with the rest of the standard HTML. This means that we can now access the value clientside. Just to be complete, the javascript to retrieve the value of the first checked item could look like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;var checkedItemValue; &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;for (i = 0; i &amp;lt; 100; i++)        &lt;br /&gt;{         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var checkbox = document.getElementById(&amp;quot;&amp;lt;%SPHttpUtility.NoEncode(myCheckBoxList.ClientID,Response.Output);%&amp;gt;_&amp;quot; + i ); &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; if (checkbox == null)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; if (checkbox.checked)        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; checkedItemValue = checkbox.value;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }         &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-1900137037139429639?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/1900137037139429639/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2010/10/get-value-from-checkboxlist-clientside.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1900137037139429639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1900137037139429639'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2010/10/get-value-from-checkboxlist-clientside.html' title='Get value from Checkboxlist clientside using Javascript'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-5845835735684131392</id><published>2010-10-02T08:38:00.001-07:00</published><updated>2010-10-02T08:38:03.091-07:00</updated><title type='text'>SharePoint custom field type which shows an image</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of my present assignments is to make a custom field type. This field should be showing images in the listview webpart depending on the text value it holds. Now this should be easy to do right? Wrong… for some reason I could not get this to work. &lt;/p&gt;  &lt;p&gt;What I want is a completely standard textfield that renders an image for certain texts. There are many blogs describing on how to do this. What I missed though is the fact that you must set &amp;lt;CAMLRendering&amp;gt; to TRUE if you want your HTML to show in the listview webpart.&lt;/p&gt;  &lt;p&gt;This is described in MSDN: &lt;a href="http://msdn.microsoft.com/en-us/library/aa544201.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa544201.aspx&lt;/a&gt;. They state that: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;font size="1"&gt;Optional Boolean. The default is FALSE. Specifies whether the field is rendered on list views using the CAML markup in a RenderPattern element elsewhere within the parent FieldType element. The default FALSE means that the field is rendered on list views by an XSL transform in a fldtypes*.xsl file, which is the standard system for field rendering on list views. (However, this element has no effect on field rendering on Display, New, and Edit forms. A RenderPattern would still be the standard way of rendering the field on a Display form.)&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;My fieldref_.xml looked like this:&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1" face="Courier New"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;     &lt;br /&gt;&amp;lt;FieldTypes&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;FieldType&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;TypeName&amp;quot;&amp;gt;YourTypeName&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;ParentType&amp;quot;&amp;gt;Text&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;TypeDisplayName&amp;quot;&amp;gt;xxx&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;TypeShortDescription&amp;quot;&amp;gt;xxx.&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;UserCreatable&amp;quot;&amp;gt;TRUE&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;Sortable&amp;quot;&amp;gt;FALSE&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;AllowBaseTypeRendering&amp;quot;&amp;gt;TRUE&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;Filterable&amp;quot;&amp;gt;FALSE&amp;lt;/Field&amp;gt;      &lt;br /&gt;&lt;font color="#ff0000"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;CAMLRendering&amp;quot;&amp;gt;TRUE&amp;lt;/Field&amp;gt;       &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Field Name=&amp;quot;FieldTypeClass&amp;quot;&amp;gt;Some.Namespace.AndClass, Some.Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=87iu1765432ade40&amp;lt;/Field&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;RenderPattern Name=&amp;quot;DisplayPattern&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Switch&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Expr&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Column/&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Expr&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Case Value=&amp;quot;Text1&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;img src=&amp;quot;/_layouts/IMAGES/myImage.png&amp;quot; /&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Case&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Case Value=&amp;quot;Text2&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;img src=&amp;quot;/_layouts/IMAGES/OtherImage.png&amp;quot; /&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Case&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Default&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;HTML&amp;gt;&amp;lt;![CDATA[&amp;lt;span&amp;gt;No Value&amp;lt;/span&amp;gt;]]&amp;gt;&amp;lt;/HTML&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Default&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/Switch&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/RenderPattern&amp;gt;      &lt;br /&gt;&amp;#160; &amp;lt;/FieldType&amp;gt;      &lt;br /&gt;&amp;lt;/FieldTypes&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-5845835735684131392?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/5845835735684131392/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2010/10/sharepoint-custom-field-type-which.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/5845835735684131392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/5845835735684131392'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2010/10/sharepoint-custom-field-type-which.html' title='SharePoint custom field type which shows an image'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-1349891748406447841</id><published>2010-09-28T05:29:00.001-07:00</published><updated>2010-09-28T05:29:37.241-07:00</updated><title type='text'>Hiding the masterpage in SharePoint</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Today I needed to hide the masterpage in modal popup that was showing a SharePoint layouts page. I used a redirect within the modal popup from one page to another. This redirect made the masterpage appear in de modal, which I didn’t want.&lt;/p&gt;  &lt;p&gt;To make sure the masterpage is not showed the URL paramter (querystring) “&lt;strong&gt;isDlg=1”&lt;/strong&gt; should be added.&lt;/p&gt;  &lt;p&gt;So for instance an possible URL is: &lt;a href="http://www.myurl.nl/somepage.aspx?isDlg=1"&gt;http://www.myurl.nl/somepage.aspx?isDlg=1&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-1349891748406447841?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/1349891748406447841/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2010/09/hiding-masterpage-in-sharepoint.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1349891748406447841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1349891748406447841'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2010/09/hiding-masterpage-in-sharepoint.html' title='Hiding the masterpage in SharePoint'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-2150534199081999594</id><published>2009-11-30T03:16:00.001-08:00</published><updated>2009-11-30T03:16:06.977-08:00</updated><title type='text'>Wortell Blog</title><content type='html'>&lt;p&gt;The company I work for &lt;a href="http://www.wortell.nl" target="_blank"&gt;Wortell&lt;/a&gt;, has a new company blog. This blog will be written by many of my colleagues and can be found at this URL: &lt;a href="http://blog.wortell.nl"&gt;http://blog.wortell.nl&lt;/a&gt;. It will contain blog posts about SharePoint 2010, OCS, Programming, and many more subjects.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-2150534199081999594?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/2150534199081999594/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/11/wortell-blog.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/2150534199081999594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/2150534199081999594'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/11/wortell-blog.html' title='Wortell Blog'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-7274528234240825465</id><published>2009-11-26T06:35:00.001-08:00</published><updated>2009-11-26T06:35:04.758-08:00</updated><title type='text'>Hide the root node of an ASP.NET Treeview control</title><content type='html'>&lt;p&gt;When using a XmlDataSource object as the datasource of your treeview control, it can be a challenge to hide the root node of the review. (it was for me… )&lt;/p&gt;  &lt;p&gt;I found (on this &lt;a href="http://horusss2.wordpress.com/2008/06/28/hide-root-node-of-xml-bound-treeview-aspnet/" target="_blank"&gt;blog&lt;/a&gt;)that the XmlDataSource class has a property called Xpath. Assign this property the value of “/*/*” and your root node will be hidden. Pretty easy, isn’t it…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-7274528234240825465?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/7274528234240825465/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/11/hide-root-node-of-aspnet-treeview.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/7274528234240825465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/7274528234240825465'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/11/hide-root-node-of-aspnet-treeview.html' title='Hide the root node of an ASP.NET Treeview control'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-4665904731443627668</id><published>2009-11-12T02:54:00.001-08:00</published><updated>2009-11-12T02:58:02.700-08:00</updated><title type='text'>SharePoint – JavaScript OnLoad</title><content type='html'>&lt;p&gt;&lt;font face="cali"&gt;Today I needed to fire some JavaScript code when a SharePoint page loaded. There are several ways to do this as far as I can tell, but there is only one way which I liked. After your JavaScript code you should include the following code:&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;_spBodyOnLoadFunctionNames.push(&lt;font color="#ff0000"&gt;&amp;quot;your method&amp;quot;&lt;/font&gt;);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;My customer needed a (pop-up) page that was printed and closed immediately after it was opened. I did this in the following way:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#008080"&gt;StringBuilder&lt;/font&gt; script = new &lt;font color="#008080"&gt;StringBuilder&lt;/font&gt;();      &lt;br /&gt;script.Append(&lt;font color="#ff0000"&gt;&amp;quot;function onLoad()&amp;quot;&lt;/font&gt;);      &lt;br /&gt;script.Append(&lt;font color="#ff0000"&gt;&amp;quot;{&amp;quot;&lt;/font&gt;);      &lt;br /&gt;script.Append(&lt;font color="#ff0000"&gt;&amp;quot;&amp;#160; window.print();&amp;quot;&lt;/font&gt;);      &lt;br /&gt;script.Append(&lt;font color="#ff0000"&gt;&amp;quot;&amp;#160; window.close();&amp;quot;&lt;/font&gt;);      &lt;br /&gt;script.Append(&lt;font color="#ff0000"&gt;&amp;quot;}&amp;quot;&lt;/font&gt;);      &lt;br /&gt;script.Append(&lt;font color="#ff0000"&gt;&amp;quot;_spBodyOnLoadFunctionNames.push(\&amp;quot;onLoad\&amp;quot;)&amp;quot;&lt;/font&gt;); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;You should of course not forget to register your JavaScript. :-)&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-4665904731443627668?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/4665904731443627668/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/11/sharepoint-javascript-onload.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/4665904731443627668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/4665904731443627668'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/11/sharepoint-javascript-onload.html' title='SharePoint – JavaScript OnLoad'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-3838883393199628677</id><published>2009-10-21T15:03:00.001-07:00</published><updated>2009-10-21T15:06:01.676-07:00</updated><title type='text'>SP2010 - Application pages and dynamic masterpages</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;Remember waaay back when SharePoint 2007 was still used and we could not change the masterpage for application pages. Well, all that has changed. Application pages dynamically adapt to the masterpage of the site they're in. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;I can name a bunch of customers who will be very happy with this... :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-3838883393199628677?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/3838883393199628677/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-application-pages-and-dynamic.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/3838883393199628677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/3838883393199628677'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-application-pages-and-dynamic.html' title='SP2010 - Application pages and dynamic masterpages'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-3218786375088750940</id><published>2009-10-21T10:17:00.001-07:00</published><updated>2009-10-21T15:02:42.822-07:00</updated><title type='text'>SP2010 - List improvements</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;Quite some things have improved for lists in SP2010. Some of the improvements are:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;transactional cascading deletion (and restriction of deletion) &lt;/strong&gt;&lt;br /&gt;In the list settings the will be an option to enforce relationship behaviour. This will have 2 options: rerstrict delete and&lt;br /&gt;cascade delete.&lt;br /&gt;1. When an item in the target list is deleted&lt;strong&gt; cascade delete&lt;/strong&gt; will delete ALL related items in this list.&lt;br /&gt;2. Restrict delete will prevent the deletion of an item in the target list if it has one or more related items in this list.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;formula based validation&lt;br /&gt;&lt;/strong&gt;In the list settings you will have the possibilty to select a field and enter a formula for validation. The formula&lt;br /&gt;"&lt;strong&gt;=len(Lastname)=30&lt;/strong&gt;" for instance will limit the name for the Lastname field to 30 characters. Another nice feature&lt;br /&gt;is that you can also fill in the error message that will be displayed to users. Fantastic, isn't it!!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;strong&gt;lookups to multiple columns&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;What else can I say but: sweet!!&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-3218786375088750940?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/3218786375088750940/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-list-improvements.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/3218786375088750940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/3218786375088750940'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-list-improvements.html' title='SP2010 - List improvements'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-5149677712452777392</id><published>2009-10-21T10:13:00.000-07:00</published><updated>2009-10-21T10:15:51.074-07:00</updated><title type='text'>SP2010 - Bye bye tables, hello div's</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;Just a short message: in SP2010 the only table's you will see are the legacy one's for the sake of being compatible with SP2003 and SP2007. All new code will be purely div based!!! I think quite some designers did a happy dance when they heard this. :-)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-5149677712452777392?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/5149677712452777392/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-bye-bye-tables-hello-divs.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/5149677712452777392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/5149677712452777392'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-bye-bye-tables-hello-divs.html' title='SP2010 - Bye bye tables, hello div&apos;s'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-6106047949623922558</id><published>2009-10-21T10:06:00.000-07:00</published><updated>2009-10-21T10:12:12.539-07:00</updated><title type='text'>SP1020 - BCS, theye're awesome</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;In my opinion of the greatest improvements of SP2010 are the new and improved BDC's. They're so improved that their name has changed to BCS.&lt;br /&gt;&lt;br /&gt;The most important feature has to be the fact that they support updating now. This finishes them really off in my opinion.&lt;br /&gt;&lt;br /&gt;Another EXCEPTIONAL feature is that you can connect you BCS data to a SharePoint list. Any modifications you make in the list will be applied to your BCS back-end DIRECTLY. You read this right my friend.&lt;br /&gt;&lt;br /&gt;As Rolando Jimenez showed in his presentation: you can also show multiple tables from SQL as one record in a SharePoint list. I see this really taking off in SP2010, and becoming one hell of an important feature.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-6106047949623922558?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/6106047949623922558/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/10/sp1020-bcs-theyere-awesome.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/6106047949623922558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/6106047949623922558'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/10/sp1020-bcs-theyere-awesome.html' title='SP1020 - BCS, theye&apos;re awesome'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-2172511527075848882</id><published>2009-10-21T09:56:00.000-07:00</published><updated>2009-10-21T10:02:00.297-07:00</updated><title type='text'>SP2010 - Visually design webparts in VS2010</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;Okay, so this is not a really big improvement, but still one that makes life easier. From now on, webparts can be designed in VS 2010 by dragging controls onto your webpart. Now I'm to used to inserting controls dynamically in my webparts, but I can imagine having a simple webpart where you have a label, a button and a textbox. These 3 controls can be dragged on to your webparts and presto... you can start coding. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;I heard from a lot of beginning developers that they miss this feature. Well guys, you will enjoy SP2010!!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-2172511527075848882?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/2172511527075848882/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-visually-design-webparts-in.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/2172511527075848882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/2172511527075848882'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-visually-design-webparts-in.html' title='SP2010 - Visually design webparts in VS2010'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-1174264661867978446</id><published>2009-10-21T09:50:00.000-07:00</published><updated>2009-10-21T10:05:28.737-07:00</updated><title type='text'>SP2010 - Development on Win7/Vista machines</title><content type='html'>&lt;span style="font-family:arial;font-size:85%;"&gt;Right now I'm at the SP2010 conference, and one of the nice things I heard is from now on us dev's have the possibility to develop on our local machines. Yeah, no more VPC's guys!!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;It will require a 64-bit OS though. And as Paul Andrew said during his speech it will not be supported for production.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;I think this is a great move by the SP team. All of the resources of the PC will be available from now on. (instead of only 70% of the PC's memory for instance)&lt;/span&gt;  &lt;span style="font-family:Arial;font-size:85%;"&gt;I really look forward to this!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;Furthermore, I never could get over the fact that F5 didn't start a debugging session. Wel, in VS2010 (in a web part project) F5 will deploy the wsp for you!!! Yeah, and you can start debugging right from the get-go. Now how awesome is that!!!!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-1174264661867978446?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/1174264661867978446/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-development-on-win7vista.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1174264661867978446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1174264661867978446'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/10/sp2010-development-on-win7vista.html' title='SP2010 - Development on Win7/Vista machines'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-7332359584884280386</id><published>2009-09-28T02:16:00.001-07:00</published><updated>2009-09-28T02:16:03.288-07:00</updated><title type='text'>OCS Office Communicator Mobile R2 – Automatic sign-in</title><content type='html'>&lt;p&gt;I recently purchased a Samsung Omnia Pro Mobile phone. This phone runs Windows Mobile 6.1. I like to stay in touch with colleague’s even when I’m not at the office, so I decided to install Office Communicator Mobile on my phone. The install was easy, and communicator works like a charm. &lt;/p&gt;  &lt;p&gt;There was just one interesting issue I had: it seemed I could not log out of communicator. According to colleague’s (thanks Paul :-)) I was online all the time. Even when I closed the communicator task in Windows Mobile, I was online. (can you imagine my surprise when no apps were running according to Windows, but I was online) If I logged my self off in Communicator, it would be a couple of minutes before I appeared online again. (even though Communicator was not running!!!)&lt;/p&gt;  &lt;p&gt;Looking around in the options of Communicator I found an interesting option with the label: “&lt;strong&gt;Automatically sign me in&lt;/strong&gt;”. This was turned on for me, and I thought that this would log me on every time I turned on Communicator. This (of course) is not the case, because even if Communicator was not running I would be logged in. Since I turned this option off though, I have not had this thing happen to me anymore. So if anyone is experiencing the same thing, just turn this option off, and you will not be online anymore.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-7332359584884280386?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/7332359584884280386/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/09/ocs-office-communicator-mobile-r2.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/7332359584884280386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/7332359584884280386'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/09/ocs-office-communicator-mobile-r2.html' title='OCS Office Communicator Mobile R2 – Automatic sign-in'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-4323721786426469796</id><published>2009-09-07T07:08:00.001-07:00</published><updated>2009-09-07T07:10:11.320-07:00</updated><title type='text'>C# – IRR Function</title><content type='html'>&lt;p&gt;Today I was working on a financial application for a customer. One of the spec’s was an IRR (internal rate of return) calculation that had to be done. Since C# doesn’t offer any classes that can calculate the IRR, I decided to use the .Net Framework alternative: the IRR method from the Financial Class (in Microsoft.VisualBasic.dll). So one could call this method in the following way: &lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" face="Courier New"&gt;double IRRValue = Microsoft.VisualBasic.Financial.IRR(ref irrArray, estimate);&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Unfortunately this will only work for simple IRR calculations. My customer has an array containing 16 cashflows. I have concluded that the abovementioned IRR method can only calculate arrays that don’t exceed 12 cashflows. If you exceed 12 cashflows the method throws an exception stating “Arguments Are Not Valid&amp;quot;. (yes my friend, you are reading this correctly) Furthermore (yes, there is more), if you read the MSDN documentation on this beautiful method you will see that is says: “If IRR cannot find a result after 20 tries, it fails.”. For complex calculations chances are that 20 is to little, and thus you will get the aforementioned exception again.&lt;/p&gt;  &lt;p&gt;Now you might be wondering how I solved this horrid issue… I simply used an open-source implementation of the IRR function. It is written in C#, and can be downloaded from this &lt;a href="http://irr-newtonraphson-calculator.googlecode.com/files/NumericalMethods.rar"&gt;link&lt;/a&gt;. More info about this IRR implementation can be found on the official &lt;a href="http://code.google.com/p/irr-newtonraphson-calculator/" target="_blank"&gt;site&lt;/a&gt;. For me this worked like a charm.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-4323721786426469796?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/4323721786426469796/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/09/c-irr-function.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/4323721786426469796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/4323721786426469796'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/09/c-irr-function.html' title='C# – IRR Function'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-7050624344808364439</id><published>2009-08-14T02:00:00.001-07:00</published><updated>2009-08-14T02:00:13.408-07:00</updated><title type='text'>SharePoint master pages – Style library site relative URL</title><content type='html'>&lt;p&gt;I am an developer, but sometimes I have to do some styling. On a recent project I added a style sheet to the style library. next thing I wanted was to reference this style sheet in a master page. I wanted to do this in a manner so that the style library would be referenced by a site relative URL. (so &lt;a href="http://test/style%20Library"&gt;http://test/style%20Library&lt;/a&gt; and &lt;a href="http://test123/style%20library"&gt;http://test123/style%20library&lt;/a&gt; should both work)&lt;/p&gt;  &lt;p&gt;The way to do this is by including the following line in your master page:&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1"&gt;&amp;lt;&lt;font color="#804040"&gt;link&lt;/font&gt; &lt;font color="#ff0000"&gt;rel&lt;/font&gt;=&amp;quot;stylesheet&amp;quot; &lt;font color="#ff0000"&gt;type&lt;/font&gt;=&amp;quot;text/css&amp;quot; &lt;font color="#ff0000"&gt;href&lt;/font&gt;=&amp;quot;../../Style%20Library/YouFolder/YourStyleSheet.css&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-7050624344808364439?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/7050624344808364439/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/08/sharepoint-master-pages-style-library.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/7050624344808364439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/7050624344808364439'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/08/sharepoint-master-pages-style-library.html' title='SharePoint master pages – Style library site relative URL'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-1611124498988917021</id><published>2009-08-14T00:47:00.001-07:00</published><updated>2009-08-14T00:47:53.925-07:00</updated><title type='text'>SharePoint FBA – Adding users programmatically</title><content type='html'>&lt;p&gt;Colleagues of mine have implemented Forms based Authentication (FBA) for a customer site. The customer was so “kind” to supply them with a Excel sheet containing 1200 usernames, email addresses and passwords. Every single user had to be imported into the FBA SQL database and certain SharePoint groups.&lt;/p&gt;  &lt;p&gt;I decided to make a friendly web part which allows the user to select a *.csv file on their hard drive, and with a push on the button to import the users from the file.&lt;/p&gt;  &lt;p&gt;Adding users to FBA went smooth, but adding those users to SharePoint groups threw Exceptions. Weird thing was, that even though I could not add the users through code, those users could be found in the People picker (and thus could be added through the user interface).&lt;/p&gt;  &lt;p&gt;After adding users to FBA, I had to add them to SharePoint explicitly, before I could put them in SharePoint groups through code.&lt;/p&gt;  &lt;p&gt;So the code for adding users to FBA, and adding the SharePoint groups should look like this:&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1"&gt;MembershipUser existingUser = System.Web.Security.Membership.GetUser(“TheUserName”);     &lt;br /&gt;if (existingUser != null)      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Membership.DeleteUser(“TheUserName”, true);      &lt;br /&gt;} &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1"&gt;MembershipCreateStatus createStatus;     &lt;br /&gt;Membership.CreateUser(“TheUserName”, “ThePassword”, “TheEmailAdress”, &amp;quot;FbaPasswordQuestion&amp;quot;, &amp;quot;FbaPasswordAnswer&amp;quot;, true, out createStatus); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1"&gt;if (createStatus == MembershipCreateStatus.Success)     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; string userName = &amp;quot;aspnetsqlmembershipprovider:&amp;quot; + “TheUserName”;&amp;#160; //Don’t forget to prefix the username with the membership provider you defined &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1"&gt;&amp;#160;&amp;#160;&amp;#160; web.SiteUsers.Add(userName, “EmailAdress”, “Name”, &amp;quot;Batchimport&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SPUser user = web.SiteUsers[userName];      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (user != null)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000080" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; web.Groups[&amp;quot;GroupName&amp;quot;].AddUser(user);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; web.Update();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; else      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; throw new Exception(&amp;quot;The user was added to FBA, but couldn't be added to SharePoint.&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}      &lt;br /&gt;else      &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; throw new Exception(&amp;quot;The user could not be added to FBA.&amp;quot;);      &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-1611124498988917021?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/1611124498988917021/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/08/sharepoint-fba-adding-users.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1611124498988917021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/1611124498988917021'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/08/sharepoint-fba-adding-users.html' title='SharePoint FBA – Adding users programmatically'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-8051522740682311352</id><published>2009-03-16T10:19:00.000-07:00</published><updated>2009-03-16T10:27:01.634-07:00</updated><title type='text'>SharePoint Best Practices Seminar</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family: verdana;"&gt;On April 3rd 2009 a &lt;a href="http://www.questsoftware.nl/events/listdetails.aspx?ContentID=9163"&gt;SharePoint best practices seminar&lt;/a&gt; &lt;/span&gt;will be held at Microsoft headquarters in the Netherlands.&lt;br /&gt;&lt;br /&gt;Some of the speakers will be: &lt;a href="http://www.sharepointjoel.com"&gt;Joel Olesson&lt;/a&gt;, &lt;a href="http://www.sharepointmadscientist.com"&gt;Mike Watson&lt;/a&gt;, &lt;a href="http://community.zevenseas.com/Blogs/Daniel"&gt;Daniel McPherson&lt;/a&gt; and &lt;a href="http://blog.mastykarz.nl"&gt;Waldek Mastykarz&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I expect loads of interesting SharePoint subjects, so I will definitely be there! You can register &lt;a href="http://www.questsoftware.nl/common/registration.aspx?requestdefid=22926"&gt;here&lt;/a&gt;. (but hurry because there's a limited capacity).&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-8051522740682311352?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/8051522740682311352/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/03/sharepoint-best-practices-seminar.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/8051522740682311352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/8051522740682311352'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/03/sharepoint-best-practices-seminar.html' title='SharePoint Best Practices Seminar'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-8058250295582885692</id><published>2009-03-16T07:47:00.000-07:00</published><updated>2009-03-16T08:02:31.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Style Library'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Remove Folder from style library</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:verdana;"&gt;I recently had to modify a feature which had provisioned some stylesheets and images to the style library. One of the things I had to do was remove all the provisioned files and folders when the feature was deactivated.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Amongst others a folder within IMAGES had to be removed in an feature-receiver during FeatureDeactivating. To do this I followed the next steps:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;1.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;First I got a reference to the Style Library:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;SPWeb rootWeb = ((SPSite)properties.Feature.Parent).RootWeb;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SPList styleLibrary = rootWeb.Lists["Style Library"];&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;2.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Next I had to get a reference tot the IMAGES folder. There probably are more ways to do this, but what I did was loop through the folders until I found the IMAGES folder:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;foreach (SPFolder folder in styleLibrary.RootFolder.SubFolders)&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;if (folder.Name.Equals("Images", StringComparison.OrdinalIgnoreCase))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;3.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Now, last-but-not-least, in the above if statement you should find the folder you're looking for and delete it:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;for(int i = 0; i &lt; folder.SubFolders.Count; i++)&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;if(folder.SubFolders[i].Name.Equals("MyFolder", StringComparison.OrdinalIgnoreCase))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;folder.SubFolders[i].Delete();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:78%;" &gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-8058250295582885692?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/8058250295582885692/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/03/remove-folder-from-style-library.html#comment-form' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/8058250295582885692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/8058250295582885692'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/03/remove-folder-from-style-library.html' title='Remove Folder from style library'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4180175920749049428.post-198506416401737105</id><published>2009-03-04T09:30:00.000-08:00</published><updated>2009-03-04T10:21:51.583-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>stsadm upgradesolution and new features</title><content type='html'>I've had a few people come up to me and ask me why they can't find their new features after they did an &lt;span style="font-weight:bold;"&gt;stsadm -o upgradesolution&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;To make things clear, the scenario is as following: &lt;span style="font-style:italic;"&gt;example.wsp&lt;/span&gt; is deployed and contains two features, &lt;span style="font-style:italic;"&gt;feature-A&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;feature-B&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;If, for example, you add a new feature (feature-C) to example.wsp, and deploy it using &lt;span style="font-weight:bold;"&gt;stsadm -o upgradesolution&lt;/span&gt;, then you will not find the new feature in your feature overview. Neither in the site features nor the site collection features will you find &lt;span style="font-style:italic;"&gt;feature-C&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;It looks like &lt;span style="font-style:italic;"&gt;feature-C&lt;/span&gt; wasn't deployed. But wait.... the feature can be found in the 12-hyve. See what happened? The feature is deployed but not installed!&lt;br /&gt;&lt;br /&gt;So if you do a simple &lt;span style="font-weight:bold;"&gt;stsadm -o installfeature&lt;/span&gt; and presto: the feature will appear in the features overview.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4180175920749049428-198506416401737105?l=vujica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vujica.blogspot.com/feeds/198506416401737105/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://vujica.blogspot.com/2009/03/stsadm-upgradesolution-and-new-features.html#comment-form' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/198506416401737105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4180175920749049428/posts/default/198506416401737105'/><link rel='alternate' type='text/html' href='http://vujica.blogspot.com/2009/03/stsadm-upgradesolution-and-new-features.html' title='stsadm upgradesolution and new features'/><author><name>Vujica Neskovic</name><uri>http://www.blogger.com/profile/04087954769235459401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
