我有以下设置:
在Child页面中,我有时会有一个名为'hiddenFoo'的隐藏控件。
在js文件中,我有一个名为'hFoo'的变量,它应该包含ClientID
的{{1}}。
现在我知道我可以将hiddenFoo
添加到每个子页面,但我想知道是否可以在主页面中执行此操作(请注意每页都不会hFoo = "<%=hiddenFoo.ClientID %>";
)。< / p>
**编辑回答**
1.在我的母版页面javascript中,我检查了我的内容中是否存在“hiddenFoo”
2.如果返回的不是空白,我调用后面的代码返回ClientID。
hiddenFoo
答案 0 :(得分:1)
您可以实现FindControl
方法的递归版本,或选择已有的版本,例如this one。之后在后面的母版页代码中,您可以创建如下属性:
protected string HiddenFooClientID
{
get
{
Control hiddenFoo = FindControlRecursive("hiddenFoo");
if (hiddenFoo != null)
{
return hiddenFoo.ClientID;
}
return String.Empty;
}
}
并在标记上调用它:
hFoo = "<%=HiddenFooClientID %>";
答案 1 :(得分:0)
您可以使用URL参数将变量从一个页面传递到另一个页面。您仍然需要在每个子页面上声明变量。
var hFoo = "<%=Request.QueryString["ClientID") %>";
在母版页中,子页面的链接应如下所示:“childPage.aspx?ClientID = XXX”