コントロールAとコントロールBの2つのコントロールをロードするasp.netページがあります。コントロールAには、リフレクションを使用してコントロールBの更新機能を呼び出す独自のコードビハインドでクリックイベントをトリガーするいくつかの一般的なフォーム送信ボタンとクリアボタンがあります。いくつかの入力フィールドがあります。私はこれをデバッグしましたが、すべてが順調に進んでいるようです。コントロール B の update 関数が呼び出されたときに、inputname.text または me.inputname.text を使用すると、入力フィールドが値を返さない。なぜこれが機能しないのか、誰にもアイデアがありますか? 任意のガイダンスをいただければ幸いです。
これは、コントロール B のコード ビハインドで update メソッドを呼び出すコントロール A のコード ビハインドのコードです。
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
Try
Dim lctlControl = Session("SelectedQstnCtl")
Dim methodObj = lctlControl.GetType().GetMethod("UpdateGenInfo", BindingFlags.NonPublic Or BindingFlags.Instance)
' Execute UpdateGenInfo method to update the data
methodObj.Invoke(lctlControl, Nothing)
Catch ex As Exception
'TODO: check for concurrency error here
End Try
End Sub
これは、呼び出されているコントロール B の更新関数です。セッション値は渡されていますが、フォーム フィールドは渡されていません。
Protected Sub UpdateGenInfo()
Dim lclUtil As New clUtility
Dim genInfo As New clGenInfo
Try
Dim dt As Integer
'Update Data for 1-2
dt = genInfo.UpdateGenInfo_E1_01_02(Session("ConnStrEP"), Me.varLastUpdate, Session("AppNo"), Session("RevNo"), _
Me.txtPrName.Text, Me.txtPrAddr1.Text, Me.txtPrAddr2.Text, _
Me.txtPrCity.Text, Me.txtPrState.Text, Me.txtPrZip.Text)
Catch ex As Exception
'Display error
lclUtil.DisplayMsg(Me.lblErrMsg, String.Format("Error Location: Sub LoadGenInfo (ctlE1_01_02) {0}", ex.Message))
End Try
End Sub