none
客户端添加html元素,刷新后丢失的问题 RRS feed

  • 问题

  • 在客户端,我用jquery添加或者删除一个dropdown的option元素,$("#ddd options").append("<option value='ss'>ss</option>"),在刷新页面后就会丢失,我知道是viewstate在作怪,请问有什么办法使得客户端对服务器端控件的操作可以被保存状态。
    2012年7月30日 13:36

答案

全部回复

  • 使用 Ajax 的时候,这时一个主要的问题。

    除非你在客户端添加之后,在后台向服务器也发送一个信息,告诉服务器需要与客户端同步,在服务器端同步你的状态。


    冠军

    2012年7月30日 14:12
  • 怎么做到同步呢?我现在只能在调用后在后台更新cache,并在下次postback之后重新绑定这个cache。我觉得这个方法太傻了,但是没有其他办法。

    2012年7月30日 14:30
  • 你应该设法使用jQuery把内容存储到一个HiddenField中,这样提交之后在Form_Load代码中使用Request.Form["隐藏域Id"]就直接获取内容即可。

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年7月31日 2:15
  • 这个不是我说的场景,我的场景是在客户端动态添加下拉框内容,要做两个工作,一个是保存这个新增的内容到数据库,二是添加这个内容到下拉框,这样用户可以在不刷新页面重新绑定下拉列表的情况下就可以使用这个新增的选项。
    2012年8月1日 7:07
  • 如果要服务器记住,那么在append之后,发送一个AJAX请求到服务端进行数据库的更新。

    2012年8月1日 13:11
    版主
  • 不知道微软会不会增加解决这个问题的功能
    2012年8月1日 13:21
  • DropDownList的对里面元素的更新还是传统的PostBack的设计,所以每点击一次都会向服务器发送请求,然后重新render DropDownList。

    2012年8月2日 7:06
    版主