<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>diploD &#187; fields</title>
	<atom:link href="http://www.diplod.it/tag/fields/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diplod.it</link>
	<description>by Davide Del Monte</description>
	<lastBuildDate>Fri, 13 Feb 2015 14:26:10 +0000</lastBuildDate>
	<language>it-IT</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Sharepoint: nascondere campi nei form tramite javascript</title>
		<link>http://www.diplod.it/2009/11/20/sharepoint-nascondere-campi-nei-form-tramite-javascript/</link>
		<comments>http://www.diplod.it/2009/11/20/sharepoint-nascondere-campi-nei-form-tramite-javascript/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 05:37:38 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[fields]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=908</guid>
		<description><![CDATA[Tutto inizia da questo interminabile quanto esaustivo articolo: utilizzare un javascript per nascondere i campi nel form di inserimento (NewForm.aspx) oppure dal form di visualizzazione (DispForm.aspx) di una lista Sharepoint.
L'utilità? Lasciare ai soli amministratori la possibilità di editing di determinati campi.
Ecco come utilizzare al meglio il javascript!]]></description>
				<content:encoded><![CDATA[<p>Tutto inizia da questo <a title="Sharepoint - hide form fields using javascript" href="http://www.cleverworkarounds.com/2008/02/07/more-sharepoint-branding-customisation-using-javascript-part-1/" target="_blank">interminabile quanto esaustivo articolo</a>: utilizzare un javascript per nascondere i campi nel form di inserimento (<em>NewForm.aspx</em>) oppure dal form di visualizzazione (<em>DispForm.aspx</em>) di una lista <strong>Sharepoint</strong>.</p>
<p>L&#8217;<strong>utilità</strong>? Lasciare ai soli amministratori la <strong>possibilità di editing di determinati campi</strong>.</p>
<p>Questo il codice di base proposto:</p>
<p><code>&lt;script language="javascript" type="text/javascript"&gt;<br />
_spBodyOnLoadFunctionNames.push("avvioControlli");<br />
function avvioControlli() {<br />
hideFields();<br />
}<br />
function findacontrol(FieldName) {<br />
   var arr = document.getElementsByTagName("!");<br />
   // get all comments<br />
   for (var i=0;i &lt; arr.length; i++ )<br />
   {<br />
      // now match the field name<br />
      if (arr[i].innerHTML.indexOf(FieldName) &gt; 0)<br />
      {         return arr[i];      }<br />
   }<br />
}<br />
function hideFields() {<br />
   var control = findacontrol("Stato");<br />
   control.parentNode.parentNode.style.display="none";<br />
   control = findacontrol("Comments");<br />
   control.parentNode.parentNode.style.display="none";<br />
}<br />
&lt;/script&gt;</code></p>
<p><span id="more-908"></span></p>
<p>Dove si mette? Appena soto al <em>PlaceHolderMain</em>, nella pagina <em>NewForm.aspx</em> della relativa lista, tramite <strong>Sharepoint Designer</strong>: una figura vale più di mille parole. Dopo aver aperto l&#8217;albero della lista su Sharepoint Designer, è sufficiente editare il codice della pagina.</p>
<p><img class="aligncenter size-full wp-image-909" title="Sharepoint Designer" src="http://www.diplod.it/wp-content/uploads/2009/11/Cattura1.PNG" alt="Sharepoint Designer" width="896" height="409" /></p>
<p>L&#8217;approccio è perfetto e geniale, il javascript non fa altro che ricercare nel documento i commenti per poi oscurare tramite una proprietà CSS la visualizzazione. Ci sono però alcuni difetti su questo codice: piace a internet explorer e non agli altri browser.<br />
Ecco allora <strong>come modificarlo per renderlo compatibile</strong> con i vari Firefox, Chrome e compagnia bella:</p>
<p><code>&lt;script language="javascript" type="text/javascript"&gt;<br />
_spBodyOnLoadFunctionNames.push("avvioControlli");<br />
function avvioControlli() {<br />
hideFields();<br />
}<br />
function findacontrol(FieldName) {<br />
//se browser Internet Explorer cerco i commenti<br />
if (navigator.userAgent.indexOf("MSIE")!=-1) {<br />
   var arr = document.getElementsByTagName("!");<br />
   // get all comments<br />
   for (var i=0;i &lt; arr.length; i++ )<br />
   {<br />
      // now match the field name<br />
      if (arr[i].innerHTML.indexOf(FieldName) &gt; 0)<br />
      {         return arr[i];      }<br />
   }<br />
   }<br />
//se browser diverso da Internet Explorer cerco i titoletti<br />
   else {<br />
   var arr = document.getElementsByTagName("H3");<br />
   // get all comments<br />
   for (var i=0;i &lt; arr.length; i++ )<br />
   {<br />
      // now match the field name<br />
      if (arr[i].innerHTML.indexOf(FieldName) &gt; 0)<br />
      {         return arr[i];      }<br />
   }<br />
}<br />
}<br />
function hideFields() {<br />
   var control = findacontrol("Stato");<br />
   control.parentNode.parentNode.style.display="none";<br />
var control = findacontrol("Comments");<br />
   control.parentNode.parentNode.style.display="none";<br />
}<br />
&lt;/script&gt;</code></p>
<p>Se poi volessi piazzare da qualche parte un pulsantino per far riapparire questi campi, magari solo per determinati utenti, sarà sufficiente creare questa funzione:</p>
<p><code>function showFields() {<br />
   var control = findacontrol("Stato");<br />
   control.parentNode.parentNode.style.display="block";<br />
var control = findacontrol("Comments");<br />
   control.parentNode.parentNode.style.display="block";<br />
}</code></p>
<p><strong>Buona personalizzazione!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2009/11/20/sharepoint-nascondere-campi-nei-form-tramite-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
