0

我有一个 DetailsView 控件,如下所示:

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="IssueId"
    DataSourceID="edsIssues" DefaultMode="Insert" OnItemInserted="DetailsView1_ItemInserted"
    OnItemInserting="DetailsView1_ItemInserting" OnItemUpdated="DetailsView1_ItemUpdated"
    OnItemUpdating="DetailsView1_ItemUpdating">
    <Fields>

插入和更新后,我想重定向到另一个页面(包含 GridView 的列表页面)。所以我这样做了:

protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
    Response.Redirect("IssueList.aspx");
}

protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
    Response.Redirect("IssueList.aspx");
}

插入新记录时,它工作正常。但是,在更新记录时,重定向会导致更新取消。

如果我从 ItemUpdated 中删除 Repsonse.Redirect 则更新有效 - 但随后 DetailsView 加载为空白(我猜是在插入模式下)。

更新后如何在不取消更新的情况下重定向到另一个页面?

提前致谢。

4

2 回答 2

0

尽管我不喜欢这个答案,因为它似乎是错误的——使用 Threading.Thread.Sleep() 实际上确实可以完成这项工作。我很想知道是否有更好的答案。

于 2012-09-04T09:20:50.610 回答
0

试试这个 VB

Protected Sub dv_Itemclick(ByVal sender As Object, ByVal e As DetailsViewCommandEventArgs) Handles yourDetailsViewitem.ItemCommand If (e.CommandName = "Cancel") Then Response.Redirect("yourPage.aspx") End If End Sub

于 2013-02-05T15:04:56.023 回答