所以我有一个带有两个控件的ASP.NET页面:
GridView
,显示来自SqlDataSource
的行,用户可以在其中选择一行; DetailsView
,用户可以在其中看到并编辑所选行的值。 DetailsView
可以更新基础数据,但即使页面重新加载,GridView
仍会显示旧数据,直到我手动在浏览器中重新加载页面。
如何在GridView
更新后确保DetailsView
显示正确的数据?
P.S。值得注意的是due to reasons outlined in this other question,我必须使用OnItemUpdating
的自定义DetailsView
事件。此事件执行SQL更新命令(成功),将DetailsView
设置回ReadOnly模式(退出编辑模式),然后取消事件(e.Cancel = true
)。如果此事件取消也会以某种方式取消GridView
更新,我该如何手动告诉它自行更新?
PPS:我发现了this similar question,但答案不起作用:它将整个页面重置为原始状态,这意味着GridView
丢失了所选行和DetailsView
消失。我不希望这样。
答案 0 :(得分:3)
:
YourGridViewID.DataBind()
答案 1 :(得分:0)
如果您的OnItemUpdating
事件生成回发
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
GridView.DataBind();//rebinding it with considering changes DetailView
}
}
如果不起作用,请告诉我。