0

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

是否可以从 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
4

1 回答 1

0

好吧,我回答了我自己问题的一部分。对 Inserted 事件的以下更改将让我查看新插入的数据。我有另一个按钮可以在搜索表单的空模板中添加新记录。这就是为什么我将模式更改为插入,因为默认模式是只读的。这将让我插入数据,但插入后它根本不显示表单。不知道为什么 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
于 2013-11-06T21:08:46.600 回答