GV からレコードを選択すると、別のページ details.aspx が呼び出されます。詳細ページには、SelectMethod="GetData" を使用して FormView を含むフォームがあり、選択した ID レコードのデータを表示します。
Public Function GetData( ByVal id? As Integer) As Ems_Candidate 試す // レコード ID を memVar に保存して、画像を取得するときに使用します strRecNo = id.ToString LoadCandidateImage() を呼び出す _db.DbSet_Candidates.Find(id) を返す ex を例外としてキャッチ ModelState.AddModelError("ModelError", ex.Message.ToString) 戻る 1 エンドトライ 終了機能
データが FormView にバインドされると同時に、このレコードのラベルにデータを表示する必要がありましたが、FormView モデルの外部では、上記のメソッドを次のように更新しました。
Public Function GetData( ByVal id? As Integer) As Ems_Candidate 試す // レコード ID を memVar に保存して、画像を取得するときに使用します strRecNo = id.ToString LoadCandidateImage() を呼び出す // 開始: 新しい行が追加されました Dim objQuery As IQueryable(Of Ems_Candidate) = _ _db.DbSet_Candidates の c から c.CandidateID = ID cを選択 For Each c In objQuery If c.CandidateStatus.Equals("A") Then Me.lblCandidateStatus.Text = "アクティブ" ElseIf c.CandidateStatus.Equals("D") Then Me.lblCandidateStatus.Text = "削除済み" ElseIf c.CandidateStatus.Equals("W") Then Me.lblCandidateStatus.Text = "免除" そうしないと Me.lblCandidateStatus.Text = "該当なし" 終了条件 次 // 終了: 新しい行が追加されました _db.DbSet_Candidates.Find(id) を返す ex を例外としてキャッチ ModelState.AddModelError("ModelError", ex.Message.ToString) 戻る 1 エンドトライ 終了機能
データを返す前に、必要なデータを選択できるように、データベースを IQueryable として再度クエリする必要がありました。
Ado.Net を使用している場合でも、同じ場所でデータベースを 2 回ヒットするのは実用的ではないと思います。コードを強化する方法はありますか?
助けてくれてありがとう。