1. ホーム
  2. asp.net

[解決済み] リピーターのヘッダーやフッターにあるコントロールを見つける方法

2022-08-17 18:16:39

質問

Asp.Net Repeater コントロールの HeaderTemplate または FooterTemplate にあるコントロールをどのように見つけるか不思議に思っていました。

私はItemDataBoundイベントでそれらにアクセスすることができますが、私は(例えば、ヘッダー/フッターの入力の値を取得するために)後にそれらを取得する方法を疑問に思っていました。

注:私はそれを覚えておくために、答えを見つけた後、この質問をここに投稿しました(そして多分他の人々がこれを有用と感じるかもしれません)。

どのように解決するのですか?

コメントにあるように、これはリピータをデータバインドした後でなければ動作しません。

のコントロールを見つけるには ヘッダ :

lblControl = repeater1.Controls[0].Controls[0].FindControl("lblControl");

のコントロールを見つけるには フッター :

lblControl = repeater1.Controls[repeater1.Controls.Count - 1].Controls[0].FindControl("lblControl");


拡張メソッド付き

public static class RepeaterExtensionMethods
{
    public static Control FindControlInHeader(this Repeater repeater, string controlName)
    {
        return repeater.Controls[0].Controls[0].FindControl(controlName);
    }

    public static Control FindControlInFooter(this Repeater repeater, string controlName)
    {
        return repeater.Controls[repeater.Controls.Count - 1].Controls[0].FindControl(controlName);
    }
}