2012-03-07 39 views

回答

1

你能做到这一点使用jQuery通过寄存器选择 '结尾为'。

var element = $("input[id$=isChanged]")[0]; 

这里假设你只在页面上有一个输入,其ID以'isChanged'结尾。我们使用结束的原因是因为asp会让你的控件的客户端ID为ct100 $ placeholder1 $ mypanel $ isChanged。您从父页面上的Page_Load在你的用户控件的标记,你可以设置

protected void Page_Load(object sender, EventArgs e) 
{ 
    UserControl1.ClientIdOfHiddenField = isChanged.ClientID; 
} 

然后

更健壮的解决办法是对你的用户控件的属性(如“ClientIdOfHiddenField”)

var element = document.getElementById("<%= ClientIdOfHiddenField %>"); 
+0

你的第二种方法帮助我缩短了我的问题。非常感谢。 – Geeth 2012-03-07 08:12:54

1

像如下

isChanged.ClientID- is serverside property... so this will work for you 

document.getElementById("<%=isChanged.ClientID %>"); 
+0

控件位于调用用户控件的父页面中。所以在页面加载时它显示错误页面控件不存在 – Geeth 2012-03-07 05:28:15

+0

假设我正确理解他的问题,隐藏字段在页面上,而他试图从用户控件中访问该项目。如果是这种情况,'isChanged'将不可见。 – SynXsiS 2012-03-07 05:29:43

+0

@Geetha - 他只需要在用户控件中编写脚本并公开该变量...因为javascript变量是全局变量,易于在父页面上可用...我跳你现在得到了 – 2012-03-07 05:35:33

0

如果您正在使用jQuery,你应该能够使用

var hidden = $('input[id$="isChanged"]'); 

否则@Pranay Rana的答案应该有效。

相关问题