大家好我是新手,我在asp.net网站上苦苦挣扎,我们的职责是制作兽医手术预约系统。
我有一个包含4个字段的asp.net页面,其中一个字段按照下面的vb代码在页面加载时填充。
我正在尝试获取下拉列表控件的选定值(或文本),并将其用作记录中第一个字段的值,但每次我在下拉列表中选择第二个或第三个值并单击提交时按钮创建的新记录是在下拉列表中插入第一个值。
希望你能提供帮助。
Imports System.Linq
Imports System.Data.Linq
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim db As New LinQTASK5DataContext
Dim mu As MembershipUser = Membership.GetUser()
Dim g As Guid = mu.ProviderUserKey
Session.Item("uGUID") = g.ToString
Dim animal = From a In db.pets Where g = a.userGuid Select a.petName
Dim valSelec = animal
DropDownList1.DataSource = animal
DropDownList1.DataBind()
RangeValidator1.MinimumValue = DateTime.Now.ToString("dd/MM/yyyy")
RangeValidator1.MaximumValue = New DateTime(2100, 1, 1).ToString("dd/MM/yyyy")
End Sub
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
Dim db As New LinQTASK5DataContext
Dim b As New booking With {.petName = DropDownList1.SelectedItem.Text, .VetID = cmbVet.Text, .Date = lblDate.Text, .slotID = cmbSlot.Text}
db.bookings.InsertOnSubmit(b)
db.SubmitChanges()
Response.Redirect("~/customers/viewbookings.aspx")
End Sub
End Class
答案 0 :(得分:0)
每次加载页面时都会重新绑定下拉列表。您应该将绑定封装在if语句中。
If Not Page.IsPostBack Then
// your code here
End If
答案 1 :(得分:0)
您需要更改Page_Load功能并测试Postback:
if not IsPostBack then
//do your all your initialization stuff
end if
如果您不这样做,那么当您单击“提交”时,所有代码都会再次运行,您的下拉列表将重置为其初始值。 if语句确保您只在首次加载页面时进行初始化,以便获得新值。