保存拖放布局的最佳方法

时间:2011-02-23 16:37:58

标签: javascript jquery sql-server

我已经看过几次这个问题,但它们主要与个别物品和饼干有关。我正在使用工具箱拖放功能构建一个应用程序(非常类似于您在Visual Studio中看到的 - 即将对象拖到窗体上,为它们命名等等)因此可放置区域可能包含许多对象,包括嵌套的droppables。

有关保存到SQL Server数据库,然后重新加载这种复杂布局的最佳方法的任何意见?对象需要加载并完全按照保存的方式显示。它将由ajax完成,但除此之外,我不确定最好的方法。此外,任何可能指向正确方向的例子都会很棒。

很有责任。

2 个答案:

答案 0 :(得分:2)

您可以通过XML或JSON序列化数据,并将序列化字符串保存到数据库中。这将使您的数据库和Web服务基础结构变得简单,而不是单独保存每个控件,但需要在JS方面进行更多解析,但由于您的应用程序听起来很重,我认为这对您来说应该不是问题。 / p>

var state = {
    textbox1:{
        x:100,
        y:200,
        width:20,
        height:10,
        defaultValue:'Hello world!'
    },
    button1:{
        x:150,
        y:200,
        width:20,
        height:10,
        text:'Push me!'
    }
}
var serialized = JSON.stringify(state);
yourService.SaveSate(serialized)   //made this object up to mock your web service

JSON.stringify仅适用于现代浏览器,但如果您定位较旧的内容,则有很多其他选择。

答案 1 :(得分:1)

如果您尝试在关系数据库中表示层次结构,我会看到两种方法:邻接列表模型嵌套集模型。< / p>

这是使用MySQL的良好描述的链接:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

根据您选择的方法,您传递到后端的内容会有所不同。

也许还会看到这个问题:Storing folder hierarchy in relational database