C# ASP.NET详细信息视图在插入后返回为空

C# ASP.NET详细信息视图在插入后返回为空,c#,asp.net,visual-studio-2010,detailsview,C#,Asp.net,Visual Studio 2010,Detailsview,我有两个页面:第一个是绑定到DataSet的gridview,第二个是绑定到DataSet的DetailsView,用于编辑和插入 在DetailsView页面上插入后,我想重定向到GridView页面 if (Request.QueryString["Id"] == null) { //prevPage = Request.UrlReferrer.ToString(); if (!IsPostBack) { DetailsView1.ChangeMode

我有两个页面:第一个是绑定到DataSet的gridview,第二个是绑定到DataSet的DetailsView,用于编辑和插入

在DetailsView页面上插入后,我想重定向到GridView页面

if (Request.QueryString["Id"] == null)
{
    //prevPage = Request.UrlReferrer.ToString();
    if (!IsPostBack)
    {
        DetailsView1.ChangeMode(DetailsViewMode.Insert);
    }
详细信息页允许正确插入新记录,但保存后返回空白页;如何获得返回到更新的gridview页面的权限

我试图使用DetailsView的ItemInserted事件,但它根本无法启动

更新:

根据建议,我添加了以下代码:

protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
    Response.Redirect("ms_Ticket.aspx");
}
(MSS票为GRIDVIEW页),但插入继续返回空白DealIsVIEW。< /P> 更新:

以下是详细信息页面的代码隐藏:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Rise_cs.Ticket
{
    public partial class WebForm4 : System.Web.UI.Page
    {
        static string prevPage = String.Empty;

        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                if (!(Request.UrlReferrer == null))
                {
                    prevPage = Request.UrlReferrer.ToString();
                }
            }

            if (Request.QueryString["Id"] == null)
            {
                //prevPage = Request.UrlReferrer.ToString();
                if (!IsPostBack)
                {
                    DetailsView1.ChangeMode(DetailsViewMode.Insert);
                }



            }


        }

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




    }
}
设计如下:

//------------------------------------------------------------------------------
// <generato automaticamente>
//     Codice generato da uno strumento.
//
//     Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
//     il codice viene rigenerato. 
// </generato automaticamente>
//------------------------------------------------------------------------------

namespace Rise_cs.Ticket {


    public partial class WebForm4 {

        /// <summary>
        /// Controllo DetailsView1.
        /// </summary>
        /// <remarks>
        /// Campo generato automaticamente.
        /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
        /// </remarks>
        protected global::System.Web.UI.WebControls.DetailsView DetailsView1;

        /// <summary>
        /// Controllo SqlDataSource1.
        /// </summary>
        /// <remarks>
        /// Campo generato automaticamente.
        /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
        /// </remarks>
        protected global::System.Web.UI.WebControls.SqlDataSource SqlDataSource1;
    }
}
//------------------------------------------------------------------------------
// 
//科迪兹发电厂。
//
//修改文件的原因是文件不完整或不正确
//我是科迪丝·维恩·里盖纳托。
// 
//------------------------------------------------------------------------------
名称空间上升\u cs.Ticket{
公共部分类WebForm4{
/// 
///控制器详细信息视图1。
/// 
/// 
///Campo Generatoro automaticamente。
///根据修改,在文件代码背后隐藏着文件。
/// 
受保护的全局::System.Web.UI.WebControls.DetailsView DetailsView1;
/// 
///ControllSQLDataSource1。
/// 
/// 
///Campo Generatoro automaticamente。
///根据修改,在文件代码背后隐藏着文件。
/// 
受保护的全局::System.Web.UI.WebControl.SqlDataSource SqlDataSource1;
}
}
更新:

以下是完整的表单代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="dt_TicketRiga.aspx.cs" Inherits="Rise_cs.Ticket.WebForm4" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
        DataKeyNames="Id" DataSourceID="SqlDataSource1" Height="50px" Width="125px">
        <Fields>
            <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" 
                ReadOnly="True" SortExpression="Id" />
            <asp:TemplateField HeaderText="TicketId" SortExpression="TicketId">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("TicketId") %>'></asp:TextBox>
                </EditItemTemplate>
                <InsertItemTemplate>


                    <asp:Label ID="Label3" runat="server" 
                        Text='<%# Request.QueryString["TicketId"] %>'></asp:Label>

                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("TicketId") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" />
            <asp:BoundField DataField="Ora" HeaderText="Ora" SortExpression="Ora" />
            <asp:BoundField DataField="OperatoreId" HeaderText="OperatoreId" 
                SortExpression="OperatoreId" />
            <asp:BoundField DataField="Referente" HeaderText="Referente" 
                SortExpression="Referente" />
            <asp:BoundField DataField="ModalitaContattoId" HeaderText="ModalitaContattoId" 
                SortExpression="ModalitaContattoId" />
            <asp:BoundField DataField="Descrizione" HeaderText="Descrizione" 
                SortExpression="Descrizione" />
            <asp:TemplateField ShowHeader="False">
                <EditItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                        CommandName="Update" Text="Aggiorna"></asp:LinkButton>
                    &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                        CommandName="Cancel" Text="Annulla"></asp:LinkButton>
                </EditItemTemplate>
                <InsertItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                        CommandName="Insert" onclick="LinkButton1_Click" Text="Inserisci"></asp:LinkButton>
                    &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                        CommandName="Cancel" Text="Annulla"></asp:LinkButton>
                </InsertItemTemplate>
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                        CommandName="Edit" Text="Modifica"></asp:LinkButton>
                    &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                        CommandName="New" Text="Nuovo"></asp:LinkButton>
                    &nbsp;<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" 
                        CommandName="Delete" Text="Elimina"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Fields>
    </asp:DetailsView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:GONGConnectionString1 %>" 
        DeleteCommand="DELETE FROM [TicketRighe] WHERE [Id] = @Id" 
        InsertCommand="INSERT INTO [TicketRighe] ([TicketId], [Data], [Ora], [OperatoreId], [Referente], [ModalitaContattoId], [Descrizione]) VALUES (@TicketId, @Data, @Ora, @OperatoreId, @Referente, @ModalitaContattoId, @Descrizione)" 
        SelectCommand="SELECT * FROM [TicketRighe] WHERE (([Id] = @Id) AND ([TicketId] = @TicketId))" 
        UpdateCommand="UPDATE [TicketRighe] SET [TicketId] = @TicketId, [Data] = @Data, [Ora] = @Ora, [OperatoreId] = @OperatoreId, [Referente] = @Referente, [ModalitaContattoId] = @ModalitaContattoId, [Descrizione] = @Descrizione WHERE [Id] = @Id">
        <DeleteParameters>
            <asp:Parameter Name="Id" Type="Int32" />
        </DeleteParameters>
        <InsertParameters>
            <asp:QueryStringParameter Name="TicketId" QueryStringField="TicketId" 
                Type="Int32" />
            <asp:Parameter Name="Data" Type="DateTime" />
            <asp:Parameter Name="Ora" Type="DateTime" />
            <asp:Parameter Name="OperatoreId" Type="Int32" />
            <asp:Parameter Name="Referente" Type="String" />
            <asp:Parameter Name="ModalitaContattoId" Type="Int32" />
            <asp:Parameter Name="Descrizione" Type="String" />
        </InsertParameters>
        <SelectParameters>
            <asp:QueryStringParameter Name="Id" QueryStringField="Id" Type="Int32" />
            <asp:QueryStringParameter Name="TicketId" QueryStringField="TicketId" 
                Type="Int32" />
        </SelectParameters>
        <UpdateParameters>
            <asp:Parameter Name="TicketId" Type="Int32" />
            <asp:Parameter Name="Data" Type="DateTime" />
            <asp:Parameter Name="Ora" Type="DateTime" />
            <asp:Parameter Name="OperatoreId" Type="Int32" />
            <asp:Parameter Name="Referente" Type="String" />
            <asp:Parameter Name="ModalitaContattoId" Type="Int32" />
            <asp:Parameter Name="Descrizione" Type="String" />
            <asp:Parameter Name="Id" Type="Int32" />
        </UpdateParameters>
    </asp:SqlDataSource>
</asp:Content>

你能试试这个让我知道吗

 protected void dtv_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
     Response.Redirect("page.aspx");
}
编辑:替换此

 <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
    DataKeyNames="Id" DataSourceID="SqlDataSource1" Height="50px" Width="125px">



由于您忘记将事件附加到您的DetailsView
OnItemInserted=“DetailsView 1\u ItemInserted”

中,我遇到了同样的问题!经过一些调试后,我意识到在post之后,DetailViewMode回到了插入模式(我在aspx文件中定义的默认模式)。为了保证更新操作后保存的值是可见的,我必须调用Changemode来保证DetailView保持在EditMode上<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="Id" DataSourceID="SqlDataSource1" Height="50px" Width="125px" OnItemInserted="DetailsView1_ItemInserted"> </asp:DetailsView>