0

我创建了一个树视图 webpart,如果单击一个节点,它会修改一个 SPList,并清除并重新创建树视图。

因此,当我单击一个节点时,页面会刷新,然后出现树视图功能并编辑列表并重新创建树视图。那么问题是如果我要通过按 F5 来刷新页面,同样的事情会再次发生,即即使我没有单击节点,列表也会再次被修改。

我怀疑像树视图节点选择更改事件之类的东西再次被激活。

当我点击刷新时也会发生这种情况:

在此处输入图像描述

是否以某种方式重新发送树单击标志或其他东西?刷新时如何清除它,以免尝试重新发送?

4

1 回答 1

1

有两种常见的方法可以防止用户刷新页面重复调用回发执行的操作:

  1. 在他们正在运行的任何代码中,都会进行某种检查,看看他们是否已经完成了他们将要做的事情。有时这很容易(即他们单击删除了一个项目,但我看到它已被删除),有时这只是不可能或不切实际。

  2. 在执行您不想重复的回发后,执行一个Response.Redirect(到另一个页面,甚至只是同一页面)。通过在他们点击刷新时这样做,他们的“最后一个动作”不会是过去,而是重定向的结果。当然,如果他们开始使用他们的历史“回去”,他们很容易最终重做你之前做过的任何动作。此操作过程并没有阻止他们有意(或恶意)复制操作,它只是允许他们点击“刷新”而不会意外复制操作。另请注意,这是有代价的。您将需要与客户端来回执行另一个操作,并且您需要重新生成整个页面(这可能会产生性能成本,

于 2012-08-20T17:02:26.950 回答