1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
namespace MonoTests.Common
{
public static class MiscExtensions
{
public static TChild FindChild <TChild> (this Control parent) where TChild: class
{
return FindChild <TChild> (parent, null);
}
public static TChild FindChild<TChild> (this Control parent, string id) where TChild: class
{
if (parent == null)
return null;
foreach (Control child in parent.Controls) {
if (child == null)
continue;
if (typeof (TChild).IsAssignableFrom (child.GetType ())) {
if (String.IsNullOrEmpty (id))
return child as TChild;
if (String.Compare (child.ID, id, StringComparison.OrdinalIgnoreCase) == 0)
return child as TChild;
}
TChild ret = child.FindChild<TChild> (id);
if (ret != null)
return ret;
}
return null;
}
}
}
|