0

私は次の設定をしています:

  1. マスターページ
  2. 子ページ
  3. 外部 Javascript ファイル

子ページでは、「hiddenFoo」という非表示のコントロールを使用できる場合があります。js ファイルには、「hFoo」という変数があり、これにはClientIDof hiddenFoo.

これで、各子ページに追加できることがわかりhFoo = "<%=hiddenFoo.ClientID %>";ましたが、マスターページ内でそれを行うことができるかどうか疑問に思っています (hiddenFooすべてのページにあるわけではないことに注意してください)。

** 回答付きで編集 **
1. マスター ページの JavaScript で、コンテンツ内に「hiddenFoo」が存在するかどうかを確認しました。
2. これが空白でない場合は、コード ビハインドを呼び出して ClientID を返しました。

<script type="text/javascript">  
    if ('<%=MainContent.FindControl("hiddenFoo") %>' != '') {  
        hiddenFooID = "<%=GetHiddenFooClientID %>";  
    }  
</script> 

protected string GetHiddenFooClientID   
{  
    get {   
        Control hiddenFoo = MainContent.FindControl("hiddenFoo");  
        if (hiddenFoo != null) {  
            return hiddenFoo.ClientID;  
        }  
        return " ";  
    }  
}  
4

2 に答える 2

1

メソッドの再帰バージョンを実装するか、このFindControlような既に利用可能なものを選択できます。その後、マスター ページのコード ビハインドで、次のようなプロパティを作成できます。

protected string HiddenFooClientID
{
    get
    {
        Control hiddenFoo = FindControlRecursive("hiddenFoo");
        if (hiddenFoo != null)
        {
            return hiddenFoo.ClientID;
        }

        return String.Empty;
    }
}

マークアップでそれを呼び出します:

hFoo = "<%=HiddenFooClientID %>";
于 2013-05-31T14:35:05.037 に答える