ページ内のすべてのコントロールを反復しようとしています。このページには、いくつかの ajaxtoolkit:tabpanel を持つ ajaxtoolkit:tabcontainer が含まれています。次のように、これを再帰的に実行しようとしています。
protected override void AddedControl(Control control, int index)
{
base.AddedControl(control, index);
ParseControls(control);
}
public void ParseControls(Control control)
{
foreach (Control myControl in control.Controls)
{
ParseControls(myControl);
if(myControl.GetType().ToString().ToLower() == "AjaxControlToolkit.TabPanel".ToLower())
{
AjaxControlToolkit.TabPanel tabPanel = (AjaxControlToolkit.TabPanel)myControl;
Response.Write("tabpanel id is:" + tabPanel.ID + " |tab panel no of controls:" + tabPanel.Controls.Count.ToString() + "<br />");
}
}
}
ここでの問題は、TabPanel.Controls.Count が常に 0 を返すため、TabPanel を見つけるたびにそのコントロール コレクションを反復処理できないことですが、aspx ページではテキスト ボックス、ラベルなどを追加しました。また、FindControl メソッドを使用して TabPanel 内の項目を調べてみましたが、役に立ちませんでした。
HtmlTable tbl = (HtmlTable)tabPanel.FindControl("tblContent");
誰かが私が欠けているものを指摘できますか? ありがとうございました!