从母版页-如何在子页中找到可能存在也可能不存在的项目的clientID
From Master page - How to find the clientID of item in Child page which may or may not be there
我有以下设置:
- 主页
- 子页面
- 外部Javascript文件
在子页面中,我有时可以有一个名为'hiddenFoo'的隐藏控件。在js文件中,我有一个名为"hFoo"的变量,它应该包含hiddenFoo
的ClientID
。
现在我知道我可以将hFoo = "<%=hiddenFoo.ClientID %>";
添加到每个子页面,但我想知道是否有可能在母版页面中做到这一点(注意hiddenFoo
不是在每个页面上)。
** edit with answer **
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 " ";
}
}
您可以实现FindControl
方法的递归版本,或者选择一个已经可用的版本,比如这个。之后,在母版页后面的代码中,您可以创建如下属性:
protected string HiddenFooClientID
{
get
{
Control hiddenFoo = FindControlRecursive("hiddenFoo");
if (hiddenFoo != null)
{
return hiddenFoo.ClientID;
}
return String.Empty;
}
}
并在标记上调用它:
hFoo = "<%=HiddenFooClientID %>";
您可以使用URL参数在页面之间传递变量。您仍然需要在每个子页面上声明变量。
var hFoo = "<%=Request.QueryString["ClientID") %>";
从母版页到子页的链接应该像这样:"childPage.aspx?ClientID = XXX "
相关文章:
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 以下内容在ASP.net/JS中可能存在吗
- Onclick不会启动..可能存在javascript语法问题
- 使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
- 如何使用pouchdb创建动态查询(couchdb可能也是如此)
- 在没有“;可能存在严重违规行为&”;
- JSHint”;可能存在严重违规行为"当使用“bind”时
- WinJS,从可能是异步的函数返回一个承诺,也可能不是异步的
- InnerHTML创建问题,没有't加载顺序正确,可能存在处理问题
- 浮景图数据或其他原因的最大长度,即使渲染轴,水平条也可能不显示
- regex某个字符可以存在也可以不存在,但之后什么都没有
- 在Javascript中,有没有办法评估一个变量,该变量可能是函数,也可能不是函数
- 在webkit中不触发布局也可能是IE中的优化选项
- 可能是也可能不是另一个Angular指令的子指令
- 从母版页-如何在子页中找到可能存在也可能不存在的项目的clientID
- 如果情况总是正确的,但也可能是错误的
- 尝试使用Javascript来查找文本并将其链接到页面-也可能使用XML
- 用于整个单词匹配的Javascript正则表达式,也可能包含特殊字符
- jQuery可能放在同一行的第一个,也可能不是第一个
- 查找数组中可能存在也可能不存在的元素