当asp.net控件不存在于内容页中时,母版javascript会导致对象引用错误
Masterpage javascript causes an object reference error when asp.net control doesn't exist in the content page
所以这里的交易:我有一个asp.net控件位于一些内容页,但不是其他。我想在$(文档)中引用这个asp.net控件。单击event,此操作的代码位于母版页中。下面的代码是我如何做到这一点的;它在ContentPlaceHolder"body"中搜索控件"dep_ddb"并检索其客户端id。
var dep_ddb = document.getElementById('<%= body.findcontrol("dep_ddb").ClientId %>');
var filterButton = document.getElementById('<%=body.findcontrol("filterButton").ClientId %>');
当我加载包含控件的页面时,这非常有效。不幸的是,当加载一个不使用控件但使用母版页的页面时,我在VB代码上得到一个对象引用错误:<%= blah blah %>。
我尝试使用javascript if语句来检测内容页是否不包含该控件(只需使用标题来检查我们是否正在处理我知道不会包含此控件的内容页):
if (ttl.indexof('| Sign Up') == -1) {
var dep_ddb = document.getElementById('<%= body.findcontrol("dep_ddb").ClientId %>');
var filterButton = document.getElementById('<%=body.findcontrol("filterButton").ClientId %>');
};
…但它仍然会导致对象引用错误。我相信ASP正试图首先编译<% %>标签中包含的代码,并且由于它不存在而返回错误。这意味着没有基于javascript的"if语句",我可以在必要时使用它来省略这些代码。
我的问题是:
当控件存在于内容页中时,可以使用什么方法安全地从母版页引用asp.net控件,并且当控件不存在时省略该引用?
请点击以下链接。也许你会得到一些帮助:
检查jQuery中是否存在元素
是否有"存在"?jQuery的函数?
还有一件事,而不是使用body.findcontrol("dep_ddb").ClientId
尝试通过从页面源获取直接客户端id。那么我就不会显示任何服务器错误
相关文章:
- 避免使用母版页在 Javascript 中重复
- 母版页中的 JavaScript asp.net 无法加载
- Javascript无法从母版页运行
- 使用母版页通过窗体在 asp.net 中调用 JavaScript 函数
- 使用 JavaScript 获取首页(母版页)
- 使用 javascript 获取母版页内容占位符中文本框的值
- 引用母版页 ContentPlaceholder 时的 JavaScript 错误
- 在构建网站时,我应该在特定用户控件或母版页中引用 JavaScript 库
- 在母版页中page_load方法之前调用 Javascript 脚本
- 如何使 javascript 文件在从母版页继承的任何页面上工作
- 如何在 SharePoint 2013 Online 中使用 JavaScript 动态创建母版页文件
- 使用 javascript 从内容页访问母版页控件
- 如何修复 Javascript 计时器 在 asp.net(母版页概念)
- Javascript 函数在放在母版页上时不会从代码隐藏处获取调用
- 如何使用 Javascript 创建母版页
- LoginStatus注销未在母版页的某个特定页面中启动javascript
- 在ASP.NET中,将数据从弹出窗口传递到不使用母版页中的Javascript的父窗口
- document.getelementbyid在母版页内容页的外部javascript中不起作用
- 在生成内容中调用母版页中创建的Javascript变量
- JavaScript在asp.net中点击按钮在母版页中不起作用