Asp.net 子窗口上的隐藏字段是否无法从父窗口访问
我有一个包含字段的asp.net表单。当我访问此窗口时,我的javascript函数可以使用getElementById()方法通过DOM访问字段,并且当我将其后置到服务器时,我会收到客户端所做的更新 但是,当我使用Telerik的RadWindow控件作为子窗口启动表单时,javascript无法访问子表单上的隐藏字段。相反,我得到空值 我的问题是:Asp.net 子窗口上的隐藏字段是否无法从父窗口访问,asp.net,javascript,telerik,Asp.net,Javascript,Telerik,我有一个包含字段的asp.net表单。当我访问此窗口时,我的javascript函数可以使用getElementById()方法通过DOM访问字段,并且当我将其后置到服务器时,我会收到客户端所做的更新 但是,当我使用Telerik的RadWindow控件作为子窗口启动表单时,javascript无法访问子表单上的隐藏字段。相反,我得到空值 我的问题是: 是子窗口上的隐藏字段 打开窗口时无法访问 是否从父asp.net表单启动 是否有人尝试使用Telerik控件进行此操作并遇到问题 编辑 克雷格指
很可能元素的ID不是您所认为的。检查呈现的页面并查看ID是否存在。我猜该页被赋予了不同的ID,因为它是在另一个控件中呈现的
如果是这种情况,您可以让表单呈现一些脚本,通过访问控件客户端ID返回元素ID。要获取asp.net控件的ID,请执行以下操作:
<%= theControl.ClientID %>
getElementByName不像getElementById那样常用。对于页面上的每个元素,ID属性应该是唯一的,而name属性可以重复。我对同一组中的复选框使用getElementsByName
至于控件的ID,TonyB的想法是正确的,但是请确保在PreRender事件处理程序中引用ClientID属性,因为如果在页面生命周期中过早地这样做,它将不可用。)javascript是否可能在RadWindow加载隐藏字段之前尝试获取对该字段的引用?我相信我以前也遇到过这个问题,不得不使用setTimeout来解决这个问题。David,我之所以向您发送这个答案,是因为我在代码中看到了同样的问题,而我找到的唯一真正的解决方案是我必须在两个地方支持“OnClick”函数。。。在我的例子中,我使用的是PetersDatePackage,但它是在Telerik RAD光带上 在我的例子中,控件位于.ascx页面上,JS代码如下:
function OnIncidentDateChange(ctrl, dtDate, bErr)
{
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
<%=LabelDayOfWeek.ClientID %>.innerText = weekday[dtDate.getDay()];
}
一旦我做到了,它就成功了
我不确定为什么,告诉你真相,这对我来说毫无意义,可能只是PDP包的一个问题
// Dummy function?
function OnIncidentDateChange()
{
}