コントロールを再帰的に検索するために、ページ コントロールの小さな拡張メソッドを作成しました。しかし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外が発生します。
そして、page.Controlsにはコントロールが1つしかなく、このコントロールでこの例外を設定しているようです。
誰でも何か考えがありますか?
コードは次のとおりです。
public static Control FindControlRecursive(this Page page, string id)
{
return Execute(page, id);
}
private static Control Execute(Control root, string id)
{
if (root.ID.Equals(id))
return root;
ControlCollection controls = root.Controls;
foreach (Control ctrl in controls)
{
Control FoundControl = Execute(ctrl, id);
if (FoundControl != null)
return FoundControl;
}
return null;
}
}
Update Now 別のエラーが発生しました: エラーが発生しました: インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:index ...
しかし、これはループの途中でスローされます。