【问题标题】:ASP.NET - Refreshing GridView Data on Page After Button ClickASP.NET - 单击按钮后刷新页面上的 GridView 数据
【发布时间】:2012-02-17 09:42:21
【问题描述】:

我使用 C# 和 .NET 已经有一段时间了,但目前正在开发我的第一个使用 ASP.NET 的 Web 应用程序。我花了很长时间才意识到 Page_Load 函数是在我的按钮事件处理程序之前被调用的,不过,此时我已经让应用程序在此行为下正常工作。但是,我遇到的问题是:

我有一个 GridView 控件,它绑定到我的应用程序中的 SortedList。按钮单击事件处理程序将表单中的数据保存到数据库(实际上是通过 SOAP 服务保存数据),然后更新 GridView 绑定到的列表以反映最新数据(再次更新SOAP 服务的列表)。但是,由于页面在我的按钮单击事件处理程序触发之前刷新,因此数据实际上并没有在页面上显示更新。处理这种情况的正确方法是什么?在按钮处理程序保存数据后,即使页面已经刷新,我如何才能让页面上的数据被刷新,或者至少是最新的?我已经为此苦苦挣扎了很长一段时间,因此非常感谢任何有助于解释这一点的代码示例或链接。

提前致谢!

【问题讨论】:

标签: asp.net .net gridview soap


【解决方案1】:

试试Page_Load

if (!IsPostBack)
 {
  //Bind your Grid
 }   

【讨论】:

  • 我实际上已经有了这个,因此当我第一次从 Web 服务中获取项目列表并加载页面时,GridView 看起来不错。只是在尝试通过单击按钮将其添加到列表之后,它才会不同步(注意 - 我注意到如果在按钮单击处理程序完成后手动刷新页面,我的 GridView 符合预期......但我应该不必手动刷新!)
  • 在按钮单击事件中重新绑定您的grid 以获取新的更新记录。
  • 啊!我没有意识到我每次都需要重新绑定数据!我假设一旦绑定,随着我的列表发生变化,控件也会发生变化。所以我通过重置 DataSource 然后在单击按钮处理程序中再次绑定它来修复它。谢谢!
【解决方案2】:

只要在 if 条件下写下你的代码。

 if(!IsPostBack)
      {
         write your code here in formload.
      }

【讨论】:

    【解决方案3】:

    我想更正 Harag 关于页面生命周期的资源链接。可以在这里找到:http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx。 虽然不是对 OP 问题的回答,但我重申它,因为一旦您开始更认真地编写 Web 表单,了解它是一个非常重要的概念。

    【讨论】:

      猜你喜欢
      • 2014-10-21
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多