2012-04-19 7 views
1

こんにちは皆私は新しく、私のasp.netウェブサイトで苦労しています、私たちの任務は獣医手術予約システムを作ることです。LINQとドロップダウンリストを使用してSQLデータベースに新しいレコードを入力する

私は4つのフィールドを持つasp.netページを持っています。フィールドの1つは、以下のVBコードに従ってページの読み込みに取り込まれます。

私はドロップダウンリストの選択された値(またはテキスト)を取得しようとしていますが、ドロップダウンリストの2番目または3番目の値を選択するたびにレコードの最初のフィールドの値として使用します。送信ボタンをクリックすると、作成された新しいレコードがドロップダウンリストに最初の値を挿入します。

希望すると助かります。

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

if not IsPostBack then 
    //do your all your initialization stuff 
end if 

あなたが提出する]をクリックすると、その後、そのコードのすべてが再び実行され、あなたのドロップダウンリストが取得されていることを実行しない場合初期値にリセットします。 ifステートメントは、ページが最初にロードされたときにのみ初期化を行い、新しい値を取得するようにします。

0

ページが読み込まれるたびにリビルドします。バインドをifステートメントにカプセル化する必要があります。

あなたがポストバックのためのPage_Load機能とテストを変更する必要が
If Not Page.IsPostBack Then 
    // your code here 
End If 
関連する問題