如何通过JavaScript访问位于用户控件中的ASP控件

时间:2009-01-13 10:35:00

标签: asp.net javascript user-controls ascx

大家好,

我正在设计一个用户控件,简要说它包含一个asp:hiddenfield控件,我将通过这样的JavaScript函数访问它

function doAnyThing
{
    var myVar = document.getElementById("myHiddenFiled");
}

但是当我追踪我的代码时,我发现myVar被赋值为null,这是否重要

document.getElementById()

方法用于用户控制文件(.ascx)或常规(.aspx)文件,考虑到它在(.aspx)文件中正常工作

2 个答案:

答案 0 :(得分:9)

您必须通过ClientID设置控件的最终ID,这将取决于您的页面结构。 试试这个:

function doAnyThing
{
    var myVar = document.getElementById("<%= yourControlServerID.ClientID %>");
}

显然这个函数需要放在.aspx文件中。我建议你切换到使用像jQuery这样的框架,它允许你通过更多的sofistic选择器来检索控件。这个案子将通过以下方式解决:

$("[id$=yourControlServerID]");

您可以将javascript代码放在外部.js文件中。

答案 1 :(得分:2)

简化您可以使用:

JQuery的

$("<%= yourControlServerID.ClientID %>"). ....

ASP.NET JavaScript注释:

var myVar = $get("<%= yourControlServerID.ClientID %>");

ASP.NET JavaScript注释代码与:

相同
var myVar = document.getElementById("<%= yourControlServerID.ClientID %>")