从IE中的ASP.net树节点调用Jquery
Calling Jquery from an ASP.net treenode in IE
我在从asp.net树节点控件调用jquery函数时遇到问题。这是aspx文件中的树节点代码。我使用的方法是在"navigationUrl"属性中放置一个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内容会按预期加载到mainContentContainerdiv中。
然而,在InternetExplorer(v8和9)中,它只是打开另一个浏览器窗口,并尝试加载JavaScript链接,就好像它是一个URL一样。由于某种原因,地址栏只显示链接的这一部分:"javascript:$('",内容窗口给出了"Internet Explorer无法显示网页"
我已经搜索了这个问题,我找到的所有解决方案都建议使用"OnClick"属性进行JavaScript调用,或者将"element"的"target"属性设置为"_self"
这两个选项对我都不起作用。我不能给标签一个"OnClick"属性,因为它不是这个asp.net控件的有效属性。
类型"System.Web.UI.WebControls.TreeNode"没有名为"onclick"的公共属性是出现在浏览器中的错误(作为标准.net错误网页返回)
我尝试了target="_self"选项,唯一的改变是打开一个错误的新浏览器窗口。当前浏览器将只显示[对象对象],地址栏中没有任何更改。
我读到的另一个解决方案是在javascript调用后加上"retunfalse",但这会导致"函数外的返回语句"javascript错误。
请告诉我是否有从asp.net树节点控件调用jquery.load的解决方案。
您可以考虑以下解决方案,即在加载文档后或在呈现树后使用jQuery来绑定点击事件处理程序。因此,您只使用报告的实际url,而不是NavigateUrl
属性中的javascript:
。
<asp:TreeNode Value="Level1"
NavigateUrl="report.aspx?level=1"
Text="Level 1"
Target="Content"
Expanded="false">
通常情况下,这会导致导航离开页面并转到报告页面。但我们可以使用以下jQuery代码将点击事件处理程序添加到链接中来防止这种情况:
$("#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:中使用不同的选择器
<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选择器将是:
$("#tree .report a").click(function(e) { ... });
- 在不添加树节点的情况下从网格拖放到树
- 在带有 标记的树节点上以编程方式触发单击事件
- d3树节点位置
- 用于构建树节点层次结构的javascript库
- 树递归:如何获取所选树节点的父根
- 如何将 css 类添加到 Ext4 中的树节点
- 无法从节点调用 REST.js如果我从浏览器调用,则可以正常工作
- 分页动态加载的 Webix 树节点
- D3.js具有相同父级的树节点
- 当我在 Dojo 中左键单击树行(树节点)时,如何从对象存储中获取 ID
- 从 C++ 节点调用 JavaScript 函数.js扩展
- Dojo:使用 CSS 选择器识别 dijit 树节点
- 如何获取选择 JS 树节点时的祖先
- appendChild树节点不展开
- 从IE中的ASP.net树节点调用Jquery
- 在Ext.tree.TreePanel中,当我们加载树时,没有任何事件可以检查是否所有树节点都已完全加载
- 基于当前导航url的树节点选择
- 树节点以支持浏览器兼容性
- 是否有一种方法可以自动打开D3折叠树节点逐个节点(对于有子节点的节点)
- 在d3中的树节点上调用操作符