【发布时间】:2016-09-15 17:06:53
【问题描述】:
我在名为“item_pricecataglog.js”的javascript中收到以下错误“Cannot set property 'value' of null”,遵循代码行
document.getElementById('ctl00_ContentPlaceHolder1_ctl00_hdn_returnboolvalue').value = 'true';
我认为这是因为我的应用程序没有在网页或控件中找到相应的元素。
奇怪的是,元素“hdn_returnboolvalue”是在引用此 java 脚本的 Web 控件中声明的。下面是我的 web 控件的 sn-p
<%@ control language="C#" autoeventwireup="true" CodeBehind="EstimateProductcatalogueBind.ascx.cs" Inherits="ePrint.usercontrol.ProductCatalogue.EstimateProductcatalogueBind" %>
<script type="text/javascript" src="<%=strSitepath %>js/item/item_pricecatalog.js"
language="javascript"></script>
<div>
<asp:HiddenField ID="hdn_kitavailibility" runat="server" Value="0" />
<asp:HiddenField ID="hdn_returnboolvalue" runat="server" Value="" />
</div>
上面的控件在弹出窗口里面,就是名为“common_popup”的aspx页面。我已将控件添加到在弹出 aspx 页面中声明的“ContentPlaceHolder1”。
<%@ page language="C#" masterpagefile="~/Templates/popUpMasterPage.master" autoeventwireup="true" CodeBehind="common_popup.aspx.cs" Inherits="ePrint.common.common_popup" title="Untitled Page" enableviewstatemac="false" enableEventValidation="false" theme="Theme1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<script type="text/javascript" language="javascript" src="<%=strSitepath %>js/Item/general.js?VN='<%=VersionNumber%>'"></script>
<div>
<UC:callClass ID="usrCallclass" runat="server" />
</div>
<div>
<asp:PlaceHolder ID="plhDiv" runat="server"></asp:PlaceHolder>
</div>
</asp:Content>
下面是我将控件添加到此页面的 C# 代码的 sn-p
UserControl userControl37 = (UserControl)base.LoadControl("~/usercontrol/ProductCatalogue/EstimateProductcatalogueBind.ascx");
this.plhDiv.Controls.Add(userControl37);
【问题讨论】:
-
如果该 JavaScript 文件按原样运行,它希望找到
<input id="ctl00_ContentPlaceHolder1_ctl00_hdn_returnboolvalue" ...>在您的客户端 HTML 中是否存在这样的元素? -
您所说的原样是什么意思?不完全相同的元素,但在 html 源
-
和上面的html代码行在下面的内容占位符也就是说,ID 不是您在 JavaScript 代码中使用的 ID?如果您将确切的 ID 传递给
getElementById,它将起作用根据你自己的评论,ID是ContentPlaceHolder1_PriceCatalog_hdn_returnboolvalue
标签: javascript asp.net asp.net-webpages