【问题标题】:Manipulating the tree on the client在客户端操作树
【发布时间】:2009-04-15 16:46:32
【问题描述】:

我将有一个显示树视图的页面。用户可以添加和删除节点:当用户单击节点时,会弹出一个表单,用户将在其中输入数据,然后将这些数据保存到数据库中,然后弹出脚本带有 id(来自数据库)。此 id 需要传递给父页面,并且需要在 CLIENT 上更新树。

当用户完成对树的修改后,他们将点击保存按钮,树将被保存在数据库中。

我正在使用 asp.net 网络表单,c#。

我应该如何实现这些目标?在我看来,我不需要使用 ajax,因为树的修改是在客户端完成的。诀窍是让弹出窗口返回一个 id(来自服务器到父页面)。我应该使用来自 jQuery 的 TreeView 控件还是简单的树插件? (请记住,我需要将父页面提交到服务器并将树中的数据保存到数据库中)。

在我看来,我唯一的选择是 jQuery 树。但是我们可以在提交时访问 aspx 页面吗?

【问题讨论】:

    标签: c# asp.net javascript tree


    【解决方案1】:

    如果您在子窗口中将数据保存到数据库中,只需让它在父窗口关闭时回发,这将强制树从数据库中重新加载,显示新插入的数据。

    【讨论】:

    • 但我不想这样,请阅读我的问题。弹出窗口保存的数据应该独立于树。在用户按下父页面上的“保存”按钮之前,树本身不应保存到数据库中。
    • 在我的场景中,节点是一个独立的结构,所以如果用户添加一个新节点,该节点应该被保存到数据库中,并且它的ID返回到树中。只有当用户保存一棵树时,节点与树的关系才会被保存。希望这是有道理的。
    • 当弹出窗口提交时,它应该返回该 ID(来自数据库的唯一节点 ID)并使用 Javascript 更新树。
    【解决方案2】:

    伙计,我不知道为什么 Ajax 不会帮助你,但在那种情况下是 jQuery,然后获取你想要的控件的内部 html,然后执行 foreach 获取 Tree 节点并将它们保存在集合中然后提交用一些网络服务方法将它们数据库化,你就可以实现你想要的。

    但再次使用 AJAX,我认为它更简单,而且您不会丢失任何东西。

    很抱歉没有提供样品。

    希望对你有帮助

    【讨论】:

    • 这不是您所描述的 AJAX 吗? “获取您想要的控件的内部 html,然后执行 foreach 以获取 Tree 节点并将它们保存在集合中,然后使用一些 Web 服务方法将它们提交给 DB”
    • 如果你想保存到数据库,你将不得不做一些服务器端编码,所以你要么使用带有 Web 服务的 jquery(这非常快),要么只是制作一个普通函数并将其连接到按钮或其他东西,然后将该按钮放在更新面板中。您也可以使用厚框弹出然后使用 jquery 获取树的内部 html(这不是服务器端,它是客户端)。我希望我能提供更多帮助,但我只知道这些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多