2010-05-11 48 views
1

这个问题可能会令人困惑,我很抱歉。我不确定如何最好地说出它。仅在客户端删除jqGrid行,并将已删除的行发送到表单POST上的ASP.NET MVC

我在一个jQueryUI对话框中使用jqGrid是一个窗体。用户将使用此表单来创建和编辑事件。

编辑后,用户可以点击一个按钮打开一个对话框,显示事件保存位置的网格。我想让他们能够移除已保存的位置,但我不想立即在服务器上删除它们,因为他们可能决定不在主窗体上保存更改。

我想要做的是构建一个数组,其中包含使用默认的删除导航器删除按钮删除哪些位置的ID。当我确认删除行时,它想要一个editurl,但我现在不想删除它们。

有没有一种很好的方法来跟踪他们的删除记录,然后删除它们,一旦他们保存事件?我想知道是否应该创建一个服务器端的集合/文件,并在事件本身保存后读取它;我不知道最好的办法是什么。

预先感谢您:)

回答

1

下面是一些你如何能做到这一点的高级指南:

除了使用导航器的删除按钮,你可以创建自己的按钮 - 命名删除并给它一个自定义事件hander。然后,删除行时,将其ID添加到已删除行的数组中,并更新包含所有已删除行的表单中的隐藏字段。当表单被POST-ed回到服务器时,这个字段可以被用来做实际的删除。

要将ID保存到隐藏字段,可以使用json2.js中的stringify方法将其写为JSON。然后,您需要使用ASP.NET MVC解码JSON数组以提取ID。

这有帮助吗?

+0

非常好,谢谢Justin!这可能需要自己的SO问题,但是当使用隐藏字段时,我可以将字段值设置为所有数组值,还是应该逐个执行(每个数组值为一个隐藏字段)。我担心的是我可能会发送大量数据回服务器。不过,我会研究stringify,但是 - 再次感谢:) – Dan 2010-05-11 17:06:13

+0

不客气,很高兴帮助:)我推荐使用'stringify'将字段值设置为所有数组值。或者,您可能可以动态创建隐藏字段,和/或只有一定数量。但是使用'stringify'是一个简单和灵活性的完美平衡。 – 2010-05-11 17:13:42

+0

我坚持不使用'stringify'的唯一原因是因为我有一个自定义模型绑定器,它已经绑定了我所有的东西。不过,这将是值得一看的,因为我不是创造十亿隐藏领域的巨大粉丝:) – Dan 2010-05-11 18:10:44