为什么网格视图仅在第二次函数调用时更新?

时间:2013-02-15 13:49:23

标签: c# events gridview ext.net

我在Code-Behind中有以下直接事件处理程序:

public void changeBlock(string blockname)
{
  IntraNetEntities ent = new IntraNetEntities();
  var query = from x in ent.Mailings_blocked where x.blocked == blockname select x;
  if (query.Count() == 0)
  {
     Mailings_blocked add = new Mailings_blocked();
     add.blocked = blockname;
     ent.AddToMailings_blocked(add);
  }
  else
  {
     Mailings_blocked del = ent.Mailings_blocked.Single(c => c.blocked == blockname);
     ent.DeleteObject(del);
  }
  ent.SaveChanges();
  updateStore();
  Grid_Business.RefreshView();
  Grid_Mailing.RefreshView();
}

但是当触发事件时,数据库会更新,就像存储一样,但是RefreshView()没有正确执行。当单击同一实用程序的任何其他Button(这是一个rowCommand)时,视图会更新到之前单击的所需状态。

1 个答案:

答案 0 :(得分:0)

我没有找到原因,但我发现了如何修复:

<DirectEvents>
   <Command OnEvent="GridCommand" Success="GridID.reload(); GridID.render();">
</DirectEvents>

如果响应时间很长,那么调用reload并渲染到after之后不一定会有所帮助,因为之后会在成功之前被触发