我一直在拼凑一个函数,为不同的节点组合一个自定义上下文菜单.好吧,到目前为止,获得不同的标签以显示文件夹或文件的点击效果非常好,但实际上却没有删除它们.
看一看.我不得不......做一些hacky解决方法,因为我无法得到node.hasClass('jstree-open')yada yada工作正常,但这通常会达到应该做的一点删除
function customMenu(node) {
            //Show a different label for renaming files and folders
            var ID = $(node).attr('id');
            if (ID == "j1_1") {
                return items = {}; //no context menu for the root
            }
            var $mynode = $('#' + ID);
            var renameLabel;
            var deleteLabel;
            var folder = false;
            if ($mynode.hasClass("jstree-closed") || $mynode.hasClass("jstree-open")) { //If node is a folder
                renameLabel = "Rename Folder";
                deleteLabel = "Delete Folder";
                folder = true;
            }
            else {
                renameLabel = "Rename File";
                deleteLabel = "Delete …这基本上是此问题的后续措施
我试图将自定义工具提示添加到jstree中,如果鼠标悬停在它们上,它们会显示图像文件的缩略图。它应使用节点的href值标记缩略图并将其粘贴在工具提示中。参考上述文章,我设法使它显示一些任意的文本工具提示,但这显然不是我想要的。
如果我只是将工具提示单独添加到img标签或标签,我怀疑这将是一个问题。但是,我试图为埋在一堆jstree节点中的链接创建自定义工具提示。
例如:
    .on('hover_node.jstree',function(e,data){
            var $node = $("#" + data.node.id);
            var url = $node.find('a').attr('href');
            $("#" + data.node.id).prop('title', url);
        })
做的很好...只是给我一个文本工具提示。但是我真的不知道从这里走到哪里,我已经将头撞墙了好几个小时了,在互联网上搜寻可行的解决方案。
$(function () {
        $(document).tooltip();
        $('#treeView').jstree({
            'core': {
                'multiple': false,
                'check_callback': true,
                'data': {
                    'url': 'Temp/ajax.html',
                    'data': function (node) {
                        return { 'id': node.id };
                    }
                }
            },
            'checkbox': {
                'three_state': false,
                'whole_node': false
            },
            'plugins': ["checkbox"]
        }).on('hover_node.jstree',function(e,data){
            var $node = $("#" + data.node.id);
            var url = $node.find('a').attr('href');
            $("#" + data.node.id).prop({ 'title': url, 'content': '<img src="' + url …我试图在用户编辑新节点的名称并按 Enter 键后获取新创建节点的文本值。
当我这样做时:
        .on('create_node.jstree', function (e, data) {
            var id = data.node.id;
            alert($('#' + id).text());
        });
我在警报中得到的只是“新节点”。一段时间以来,我一直在这个网站上寻找答案,并仔细阅读 jstree 网站上的 API 文档,但他们提供的示例很少,所以作为一个 jQuery 新手,这对我来说很难理解。
所以,我的问题是我实际上需要针对哪个事件进行编程才能获取刚刚创建的节点的 ID?这是changed.jstree事件吗?如果是这样,我该如何利用它?
编辑 可能有助于提及我正在通过上下文菜单尝试此操作;以下是我设置“创建”项目的方式:
                items = {
                    "create": {
                        "label": "New Category",
                        "action": function (obj) {
                            $node = tree.create_node(node);
                            tree.edit($node);
                        }
                    }
                }
我的.aspx页面中有以下标记:
<ul>
            <li><asp:HyperLink ID="lnkHome" NavigateUrl="~/Default.aspx" Text="Home" runat="server" /></li>
            <asp:Repeater id="navRepeater" runat="server" DataSourceID="SMDS1" EnableViewState="false">
                <ItemTemplate>
                    <li>
                        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
                        <asp:Repeater ID="Repeater1" runat="server" DataSource='<%# CType(Container.DataItem, SiteMapNode).ChildNodes %>'>
                            <HeaderTemplate>
                                <ul>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <li>
                                    <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
                                </li>
                            </ItemTemplate>
                            <FooterTemplate>
                                </ul>
                            </FooterTemplate>
                        </asp:Repeater>
                    </li>
                </ItemTemplate>
            </asp:Repeater>
        </ul>
当我尝试编译它时,我得到了这个:
编译错误
描述:编译服务>此请求所需的资源时发生错误.请查看以下特定错误详细信息并适当修改源代码>代码.
编译器错误消息:CS0103:当前上下文中不存在名称"CType"
我确实从MSDN网站上获得了这段代码.有谁知道为什么它会给我这个问题?如果该信息有帮助,则站点位于C#中.
我一直在和这个愚蠢的转发器摔跤.我能得到的日期正确使用到的格式<%#Eval("Start Date", "{0:MMM dd, yyyy}") %>,但使用 
 <#Eval("Start Time", "{0:t}") %>时不产生正确的时间.无论我使用什么样的格式,它仍然以军事时间格式的"hh:mm:ss"出现.
我已经尝试将全局设置硬编码到web.config文件中.我已尝试过互联网提供的每种格式符号组合,但无论我做什么,它仍然出现在"15:45:00"
我怎么能得到这个愚蠢的事情吐出"下午3:45"而不是"15:45:00"!?我的智慧结束了.
我尝试过:
 <%# Eval("Start Time")%>
<%# Eval("Start Time", {0:t}") %>
<%# Eval("Start Time", {0:T}") %>
<%# DataBinder.Eval(Container.DataItem, "End Time", "{0:t}") %>
<%# DataBinder.Eval(Container.DataItem, "End Time", "{0:T}") %>
......没有任何变化.
jquery ×3
jstree ×3
asp.net ×2
javascript ×2
c# ×1
compilation ×1
ctype ×1
format ×1
jquery-ui ×1
time ×1