こんにちは、私はどのようにDataListコントロール内にあるDataListを見つけることができますか?Datalist1でコントロールを見つけるには?
iは、このような制御を見つけています:
のDataList DL =((DataListコントロール)(DataList1.FindControl( "DataList2")));
正しいですか?
こんにちは、私はどのようにDataListコントロール内にあるDataListを見つけることができますか?Datalist1でコントロールを見つけるには?
iは、このような制御を見つけています:
のDataList DL =((DataListコントロール)(DataList1.FindControl( "DataList2")));
正しいですか?
あなたがコントロールとコントロールを見つけたいときには依存しています。それらのすべてを取得したい場合は、以下のようなDataList項目をループします。 DataList内のCheckBoxにアクセスしたいとします。
foreach (DataListItem item in DataList1.Items)
{
if (item.ItemType == ListItemType.Item ||item.ItemType == ListItemType.AlternatingItem)
{
CheckBox chb=(CheckBox) item.FindControl("CheckBox1");
if (chb!= null)
{
//you can access chb.Checked value
}
}
}
DataList2はDataList1の中に直接存在するのですか、DataList1の子コンポーネントの内部にありますか?
FindControl
の方法では、コントロールを詳細に検索しません。
私はしばらく前にこれを行うための方法を書いて、それは使用のだ包み、私はそれをここに投稿します:
public static IEnumerable<Control>
GetDeepControlsByType<T>(this Control control)
{
foreach(Control c in control.Controls)
{
if (c is T)
{
yield return c;
}
if(c.Controls.Count > 0)
{
foreach (var x in c.GetDeepControlsByType<T>())
{
yield return x;
}
}
}
}
あなたはGetDeepControlsByTypeが何であるかを教えてplzは可能それがループの多くのように見える任意のインタフェースやメソッドmの混同 –
です。コントロールが複数のレイヤーに深くネストされている場合は、同じ子コントロールを何回か反復します。再帰なしでこれを行う方が早いかもしれないように見えます。そして、IEnumerableを1つだけ作成します。 –
sory私はそれを得た。このジェネリックメソッドの名前.... M try –