Javascript 从母版页-如何在子页中查找可能存在或不存在的项目的clientID

Javascript 从母版页-如何在子页中查找可能存在或不存在的项目的clientID,javascript,master-pages,Javascript,Master Pages,我有以下设置: 母版页 子页面 外部Javascript文件 在子页面中,我有时可以有一个名为“hiddenFoo”的隐藏控件。 在js文件中,我有一个名为“hFoo”的变量,它应该包含hiddenFoo的ClientID 现在我知道我可以添加hFoo=“”到每个子页面,但我想知道是否有可能在母版页中这样做(注意,hiddenFoo不在每个页面上) **用答案编辑** 1.在我的主页javascript中,我检查了我的内容中是否存在“hiddenFoo”。 2.如果返回的不是空的,我就调用后面的

我有以下设置:

  • 母版页
  • 子页面
  • 外部Javascript文件
  • 在子页面中,我有时可以有一个名为“hiddenFoo”的隐藏控件。 在js文件中,我有一个名为“hFoo”的变量,它应该包含
    hiddenFoo
    ClientID

    现在我知道我可以添加
    hFoo=“”
    到每个子页面,但我想知道是否有可能在母版页中这样做(注意,
    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 " ";  
        }  
    }  
    
    
    如果(“”!“”){
    hiddenFooID=“”;
    }  
    受保护字符串GetHiddenFooClientID
    {  
    获取{
    Control hiddenFoo=MainContent.FindControl(“hiddenFoo”);
    如果(hiddenFoo!=null){
    返回hiddenFoo.ClientID;
    }  
    返回“”;
    }  
    }  
    
    您可以使用URL参数在页面之间传递变量。您仍然需要在每个子页面上声明变量

    var hFoo = "<%=Request.QueryString["ClientID") %>";
    
    var hFoo=”“;
    

    从母版页到子页的链接应该是这样的:“childPage.aspx?ClientID=XXX”

    您可以实现
    FindControl
    方法的递归版本,或者选择一个已经可用的方法,如。之后,在母版页代码中,您可以创建如下属性:

    protected string HiddenFooClientID
    {
        get
        {
            Control hiddenFoo = FindControlRecursive("hiddenFoo");
            if (hiddenFoo != null)
            {
                return hiddenFoo.ClientID;
            }
    
            return String.Empty;
        }
    }
    
    并在标记上调用它:

    hFoo = "<%=HiddenFooClientID %>";
    
    hFoo=”“;
    
    谢谢,我知道我应该如何使用它-我会让你知道它是如何运行的。