我在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)时,视图会更新到之前单击的所需状态。
答案 0 :(得分:0)
我没有找到原因,但我发现了如何修复:
<DirectEvents>
<Command OnEvent="GridCommand" Success="GridID.reload(); GridID.render();">
</DirectEvents>
如果响应时间很长,那么调用reload并渲染到after之后不一定会有所帮助,因为之后会在成功之前被触发