首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在IE中从ASP.net树节点调用Jquery

在IE中从ASP.net树节点调用Jquery
EN

Stack Overflow用户
提问于 2012-01-27 20:23:02
回答 1查看 2.1K关注 0票数 0

我在从asp.net树节点控件调用jquery函数时遇到了问题。下面是aspx文件中的treenode代码。我使用的方法是在"navigateUrl“属性中放入一个javascript链接。

代码如下:

代码语言:javascript
运行
复制
<asp:TreeNode Value="Level1" 
                NavigateUrl="javascript:$('#mainContentContainer').load('report.aspx?level=1');"
                Text="Level 1"
                Target="Content"
                expanded="false">

这在CHROME中工作得很好。当我单击树节点"Level 1“时,report.aspx内容会如期加载到mainContentContainer目录中。

然而,在Internet Explorer (v8和9)中,它只是打开另一个浏览器窗口,并尝试加载JavaScript链接,就像它是一个URL一样。由于某些原因,地址栏只显示链接的这一部分:"javascript:$('“,内容窗口显示此错误"Internet Explorer无法显示网页”

我已经搜索过这个问题,我找到的所有解决方案都建议使用"OnClick“属性进行目标调用,或者将”element“的”JavaScript“属性设置为"_self”

这两个选项对我都不起作用。我不能为标记赋予"OnClick“属性,因为它不是此asp.net控件的有效属性。

类型'System.Web.UI.WebControls.TreeNode‘没有名为'onclick’的公共属性是出现在浏览器中的错误(作为标准.net错误网页返回)

我尝试了target=的“_self”选项,唯一的变化不是打开一个新的浏览器窗口,而是打开一个错误。当前浏览器将只显示对象对象,而不会在地址栏中进行任何更改。

我读到的另一个解决方案是将"retun false“放在javascript调用之后,但这会给出一个”函数外的返回语句“javascript错误。

如果有从asp.net树节点控件调用jquery.load的解决方案,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2012-01-27 21:00:40

您可以考虑以下解决方案,即在加载文档或呈现树之后使用jQuery绑定单击事件处理程序。因此,您只需使用报告的实际url,而不是NavigateUrl属性中的javascript:

代码语言:javascript
运行
复制
<asp:TreeNode Value="Level1" 
  NavigateUrl="report.aspx?level=1"
  Text="Level 1"
  Target="Content"
  Expanded="false">

通常,这将导致导航离开页面并转到报表页面。但我们可以使用以下jQuery代码将单击事件处理程序添加到链接中来防止这种情况:

代码语言:javascript
运行
复制
$("#tree a").click(function(e) {
  // Get the url (report.aspx?level=...)
  var url = $(this).attr("href");

  // Load the report
  $('#mainContentContainer').load(url);

  // Don't navigate away
  e.preventDefault();
});

您可能必须使用更具体的选择器,以便仅将此单击处理程序添加到树中某个级别的节点。在这种情况下,您可以使用LevelStyles为这些节点提供一个类,然后在jQuery中使用不同的选择器:

代码语言:javascript
运行
复制
<div id="tree">
  <asp:TreeView runat="server">
    <LevelStyles>
      <!-- Add class report only to nodes at the first level -->
      <asp:TreeNodeStyle CssClass="report"/>
    </LevelStyles>
    ...
  </asp:treeView>
</div>

现在,您的jQuery选择器将是:

代码语言:javascript
运行
复制
$("#tree .report a").click(function(e) { ... });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9033195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档