在我的应用程序中,我有一个用户填写的表单,然后由经理批准。我有各种类型的表单都使用相同的过程,因此批准按钮都是通过用户控件完成的(其中包括更新数据库中的数据并调用回发的功能)。
但是,一旦我点击“批准”按钮(在用户控件中),表单信息就不会更新(它仍然显示为“未批准”)。肯定会发生回发,但不确定为什么页面没有正确更新。
我可以确认正在进行更改 - 当我手动重新加载页面时,它会更新 - 但不会在帖子后面。
我在这里缺少什么?
我的页面:
protected void Page_Load(object sender, EventArgs e)
{
int ID;
// ensure that there's an ID set in the query string
if (Int32.TryParse(Request.QueryString["ID"], out ID))
PopulatePage(ID);
else
Response.Redirect("~/Default.aspx");
}
}
protected void PopulatePage(int ID)
{
using (WOLinqClassesDataContext db = new WOLinqClassesDataContext())
{
lblStatus.Text = wo.Workorder.status;
....
}
}
答案 0 :(得分:2)
我认为Page_Load发生在提交按钮中的代码之前。要检查这一点,只需使用几个断点。因此页面加载旧数据,因为新数据尚未保存。
您应该调用一个方法来在Approve按钮的OnClick方法中加载数据。
答案 1 :(得分:1)
将更改提交到数据库后,请尝试运行db.Refresh(RefreshMode.OverwriteCurrentValues)
以强制将更改重新加载到数据上下文中。