在Formview中显示新创建的记录

时间:2013-11-06 17:51:07

标签: insert formview

我在VS2012上使用asp.net这个表单。首先,我搜索赞助人,然后去验证该赞助人的信息。该顾客信息显示在ItemTemplate(ReadOnly)中。如果那不是他们正在寻找的赞助人,那么他们可以添加一个新的赞助人“新按钮”(asp.net代码)。我能够得到新的赞助人(这是PK)的id。但是,插入后我无法在表单上显示这个新创建的记录。它仍然显示正在显示的记录。由于这是一个formview,我没有启用“Paging”。

是否可以从datasource_inserted事件中调用pageload事件?然后我可以传递新的顾客ID进行显示。我将此ID声明为全局变量?

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Dim lvPatronID As String
    lvPatronID = Request.QueryString("value1")
    If lvPatronID = "" Then
        frmPatronView.ChangeMode(FormViewMode.Insert)
    Else
        frmPatronView.ChangeMode(FormViewMode.ReadOnly)
        GvPatronID = lvPatronID
        lblPatronID.Text = GvPatronID
    End If 


Protected Sub PatronDS_Inserted(sender As Object, e As SqlDataSourceStatusEventArgs) Handles PatronDS.Inserted
    NewID = e.Command.Parameters("@PatronID").Value.ToString
    GvPatronID = NewID
End Sub

1 个答案:

答案 0 :(得分:0)

我回答了部分问题。对Inserted事件的以下更改将允许我查看新插入的数据。我有另一个按钮来在搜索表单的空模板中添加新记录。这就是为什么我要更改要插入的模式,因为默认模式是只读。这将让我插入数据,但插入后根本不显示表格。不确定为什么插入的事件没有正确开始。

    Protected Sub PatronDS_Inserted(sender As Object, e As SqlDataSourceStatusEventArgs) Handles PatronDS.Inserted
    Dim NewID As String = Nothing
    Try
        NewID = e.Command.Parameters("@PatronID").Value.ToString
        PatronDS.SelectCommand = "SELECT * FROM tblPatron WHERE PatronID='" & NewID & "'"
        lblPatronID.Text = NewID.Trim()
        frmPatronView.DataBind()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub