我在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
答案 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