0

コードビハインドで次のダイレクトイベントハンドラーがあります:

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()は正しく実行されません。同じユーティリティ(これはrowCommand)の他のボタンをクリックすると、ビューは1クリック前の目的の状態に更新されます。

4

1 に答える 1

0

理由はわかりませんでしたが、修正方法を見つけました:

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

応答時間が長い場合、reload と render を after に呼び出しても、必ずしも役に立ちません。成功する前に then after が起動されるためです。

于 2013-02-18T11:19:16.577 に答える