<?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>Blog de Bertrand Vergnault, Consultant SharePoint &#187; ASP.NET</title>
	<atom:link href="https://blog.developpez.com/bertrandvergnault/pcategory/asp-net/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/bertrandvergnault</link>
	<description></description>
	<lastBuildDate>Mon, 28 Nov 2011 08:18:06 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>[SHP2010] Modifier l&#8217;apparence d&#8217;un contrôle natif à l&#8217;aide d&#8217;un ControlAdapter</title>
		<link>https://blog.developpez.com/bertrandvergnault/p10524/sharepoint/shp2010_modifier_l_apparence_d_un_contro</link>
		<comments>https://blog.developpez.com/bertrandvergnault/p10524/sharepoint/shp2010_modifier_l_apparence_d_un_contro#comments</comments>
		<pubDate>Tue, 22 Nov 2011 07:33:01 +0000</pubDate>
		<dc:creator><![CDATA[bertrandv]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Un Control Adapter permet de modifier l’apparence de contrôles en récupérant le flux HTML généré par celui-ci. Dans le cadre de SharePoint on peut du coup l’utiliser pour venir modifier l’apparence de certains contrôles natifs. Pour cela, il faut créer une classe qui héritera de la classe ControlAdapter (dans l’espace de noms System.Web.UI.Adapters) et venir redéfinir la méthode Render : public class InputFormDropDownListAdapter : ControlAdapter { protected override void Render(System.Web.UI.HtmlTextWriter writer) { StringBuilder sb = [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Un Control Adapter permet de modifier l’apparence de contrôles en récupérant le flux HTML généré par celui-ci.<br />
Dans le cadre de SharePoint on peut du coup l’utiliser pour venir modifier l’apparence de certains contrôles natifs.<br />
Pour cela, il faut créer une classe qui héritera de la classe <b>ControlAdapter</b> (dans l’espace de noms System.Web.UI.Adapters) et venir redéfinir la méthode <b>Render</b> :<br />
</p>
<pre>public class InputFormDropDownListAdapter : ControlAdapter    
{        
    protected override void Render(System.Web.UI.HtmlTextWriter writer)        
    {            
        StringBuilder sb = new StringBuilder();            
        HtmlTextWriter htw = new HtmlTextWriter(new StringWriter(sb));            
        base.Render(htw);                        
        string stringToWrite = sb.ToString();             
        //Modifier la chaine "stringToWrite" à écrire dans le rendu du contrôle...             
        writer.Write(stringToWrite);        
    }    
}</pre>
<p>
Il faut maintenant mettre en place la prise en compte de ce ControlAdapter par le navigateur.<br />
<br />
Pour cela, il faut se placer dans le <b>constructeur</b> de la <b>masterPage</b><br />
qui sera utilisée par SharePoint :<br />
</p>
<pre>public SiteMaster()        
{            
    var adapters = HttpContext.Current.Request.Browser.Adapters;            
    var key = typeof(Microsoft.SharePoint.Portal.WebControls.InputFormDropDownList).AssemblyQualifiedName;            
    if (!adapters.Contains(key))            
    {                
        var adapter = typeof(InputFormDropDownListAdapter).AssemblyQualifiedName;                
        adapters.Add(key, adapter);            
    }        
}</pre>
<p>
La clé de l’entrée du dictionnaire correspond au nom de l’assembly du type du contrôle dont<br />
on viendra modifier l’apparence.<br />
<br />
La valeur de l’entrée du dictionnaire correspond au nom de l’assembly du controlAdapter<br />
que l’on a développé plus haut.<br />
<br />
Il est ainsi possible de modifier l’apparence des contrôles natifs de SharePoint…</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
