Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui ASP.NETMVC&;JQuery UI拖放-有人知道如何存储/检索面板状态吗?_Jquery Ui_Asp.net Mvc 2_Telerik_State - Fatal编程技术网

Jquery ui ASP.NETMVC&;JQuery UI拖放-有人知道如何存储/检索面板状态吗?

Jquery ui ASP.NETMVC&;JQuery UI拖放-有人知道如何存储/检索面板状态吗?,jquery-ui,asp.net-mvc-2,telerik,state,Jquery Ui,Asp.net Mvc 2,Telerik,State,我以前用过,虽然它很好,但有点笨重和臃肿。一个很好的特性是能够在数据库中保存页面的状态(所有停靠位置等),并在以后恢复它们 我想知道在MVC和jQuery中是否有保存面板状态的方法。基本上,每个用户都可以编辑自己的“仪表板”并将项目放置在他们想要的任何位置,并且状态会保存到他们的配置文件下的SQL Server中,以供以后重用 提前感谢我们最近解决了一个类似的问题(尽管是在一个非MVC项目中),只需添加一个带有小部件id的HTML5数据属性,遍历所有li,检索它们的id并将它们推送到一个数组中。

我以前用过,虽然它很好,但有点笨重和臃肿。一个很好的特性是能够在数据库中保存页面的状态(所有停靠位置等),并在以后恢复它们

我想知道在MVC和jQuery中是否有保存面板状态的方法。基本上,每个用户都可以编辑自己的“仪表板”并将项目放置在他们想要的任何位置,并且状态会保存到他们的配置文件下的SQL Server中,以供以后重用


提前感谢

我们最近解决了一个类似的问题(尽管是在一个非MVC项目中),只需添加一个带有小部件id的HTML5数据属性,遍历所有li,检索它们的id并将它们推送到一个数组中。例如:

HTML结构:

<ul>
    <li data-id="1"></li>
    <li data-id="2"></li>
    <li data-id="3"></li>
    <li data-id="4"></li>
    <li data-id="5"></li>
    <li data-id="6"></li>
</ul>
我们在
可排序的
上的
停止
回调中这样做,但在这里也应该适用


然后,Web服务接收一个
int[]
,您知道它将使用它们所处的
int[]
索引在它们的新位置包含id。

我认为Peol通常是正确的。在这种情况下,模拟Telerik RadControls行为的唯一方法是手动跟踪并保持对面板布局的更改。具体而言,对于配电盘,您可能需要:

  • 处理
    dragStop
    事件
  • 在这种情况下,获取当前面板的当前位置/大小/偏移信息
  • 保留新位置-本地保存在隐藏输入中或通过Web服务
  • 如果您在一个隐藏字段中本地持久化,那么您可以在下一页帖子中长期持久化,或者在(例如)用户单击“保存”按钮时通过单个服务调用持久化

    Telerik RadDock通过将其状态序列化为XML简化了过程,这使得保存和加载变得容易,但我认为jQuery面板不提供相同的功能。也许这将被添加到未来的

    var widgets = [];
    
    $('li')​​​​.each(function() {
        widgets.push( this.getAttribute("data-id") );
    });
    
    WebService.UpdatePositions(widgets);