【问题标题】:Gridview losing changes made via Javascript on postbackGridview 在回发时丢失通过 Javascript 所做的更改
【发布时间】:2015-07-03 13:49:30
【问题描述】:

我有一个绑定了一些数据的 Gridview。我在 Gridview 的每一行上都有复选框,用于通过 Javascript 删除记录。删除效果很好。我遇到的问题是,当我在页面上进行回发时,所有已删除的记录都会重新出现。我假设这是一些视图状态问题。

如何让 Javascript 删除的行在回发时保持删除状态?

【问题讨论】:

  • 发布一些代码是一个好的开始
  • GridView 不是客户端控件,JavaScript 无法更改用于填充 GridView 的数据存储。您可以做的最好的事情是标记要删除的行,如果您愿意,甚至可以隐藏它们。但实际删除必须在回发期间在服务器端完成。有很多方法可以做到这一点,但如果不了解您的代码,任何答案都只是猜测。
  • 您必须在回发时使用不包含已删除项目的新数据源再次对网格进行数据绑定!
  • 和?有帮助吗?如果不发布你的代码!
  • 谢谢,我今天不在办公室发布代码。我想我要将删除客户端的索引存储在隐藏字段控件中。然后当页面从服务器回传时,从隐藏字段中获取这些索引并通过网格并删除行。我会试试这个,让你们知道这是否有效。

标签: javascript asp.net gridview postback viewstate


【解决方案1】:

您必须在回发时使用不包含已删除项目的新数据源再次对网格进行数据绑定! 如果数据源包含旧项目,那么它们将再次出现。

【讨论】:

  • 谢谢,这让我走上了让它工作的正确轨道。我会投票,但我还没有足够的代表。
【解决方案2】:

我能够得到这个工作。由于服务器不知道我删除了客户端上的行,因此我需要在回发时再次在服务器端删除行。

我是如何做到这一点的,当我删除客户端上的行时,我将删除的索引存储在一个隐藏字段中。然后,一旦页面发回,我从这个隐藏字段中获取值,遍历网格的数据源并删除行。之后,我再次简单地 DataBind() 网格。

【讨论】:

    猜你喜欢
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 2020-07-29
    相关资源
    最近更新 更多