jQuery/JSTree/ASP.net:如何从服务器获取新创建的节点的 ID

发布于 2024-09-18 19:49:32 字数 1423 浏览 9 评论 0原文

我目前已经设置了一个 JSTree 来创建和重命名新节点:

.bind("create_node.jstree", function (NODE, REF_NODE) {
               $.ajax({
                   async: false,
                   cache: false,
                   type: 'POST',
                   url: "ApplicationAJAXHandler.aspx?action=CreateMenuItem&ApplicationID=" + document.getElementById('<%=hdnSelectedAppID.ClientID %>').value + "",
                   data: {
                       "operation": "create_node",
                       "ref": REF_NODE.args[0][0].id,
                       "title": REF_NODE.rslt.obj[0].innerText
                   },
                   success: function (data) {
                       console.log(data);
                   }
               });
           })
           .bind("rename_node.jstree", function (NODE, REF_NODE) {
               $.ajax({
                   async: false,
                   cache: false,
                   type: 'POST',
                   url: "ApplicationAJAXHandler.aspx?action=UpdateMenuItem&ApplicationID=" + document.getElementById('<%=hdnSelectedAppID.ClientID %>').value + "",
                   data: {
                       "id": createdNodeID,
                       "title": REF_NODE.rslt.obj[0].innerText
                   }
               });
           })

问题是,当我在创建节点上返回整数 ID 时,我的成功似乎没有成功,因此我无法设置它到一个全局变量。我到底需要在函数中返回什么才能从服务器取回 ID?我现在只是返回一个新的整数。

I currently have a JSTree all set up to do the creation and renaming of a new node:

.bind("create_node.jstree", function (NODE, REF_NODE) {
               $.ajax({
                   async: false,
                   cache: false,
                   type: 'POST',
                   url: "ApplicationAJAXHandler.aspx?action=CreateMenuItem&ApplicationID=" + document.getElementById('<%=hdnSelectedAppID.ClientID %>').value + "",
                   data: {
                       "operation": "create_node",
                       "ref": REF_NODE.args[0][0].id,
                       "title": REF_NODE.rslt.obj[0].innerText
                   },
                   success: function (data) {
                       console.log(data);
                   }
               });
           })
           .bind("rename_node.jstree", function (NODE, REF_NODE) {
               $.ajax({
                   async: false,
                   cache: false,
                   type: 'POST',
                   url: "ApplicationAJAXHandler.aspx?action=UpdateMenuItem&ApplicationID=" + document.getElementById('<%=hdnSelectedAppID.ClientID %>').value + "",
                   data: {
                       "id": createdNodeID,
                       "title": REF_NODE.rslt.obj[0].innerText
                   }
               });
           })

The problem is that my success doesn't seem to get hit when I return an integer ID on the create node, thus I can't set it to a global variable. What exactly do I need to return in the function to get back the ID from the server? I'm simply returning a new integer right now.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薔薇婲 2024-09-25 19:49:32

我最终创建了一个 JSTree 对象,将其序列化,然后通过管道将其作为 JSON 发送。工作起来就像一个魅力。

I ended up creating a single JSTree object, serializing it, and sending it through the pipe as JSON. Worked like a charm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文