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