以下のようなvb.net関数があり、チェックボックスコントロール名をパラメーターとして渡します。コードはここにあります
Public Function emaildata(ByVal grdv As GridView, ByVal ctrl As String, ByVal celpos As Integer) As GridView
Dim comm As OleDbCommand = New OleDbCommand()
Dim bpv As String = ""
Dim gv As New GridView
For Each gvrow As GridViewRow In grdv.Rows
Dim chkbx As CheckBox = CType(gvrow.FindControl(ctrl), CheckBox)
If chkbx.Checked Then
If bpv <> "" Then
bpv += ","
End If
bpv += gvrow.Cells(celpos).Text
comm.CommandText = "SELECT chq_num Cheque#,to_char(bpv_amt,'9,999,999,999') Amount,vch_nar Narration,bnf_nam PartyName,acc_des Bank from CHECK_DATA where bpv_num in(" & bpv.ToString() & ") and BPV_DTE=to_date('" & TreeView2.SelectedValue & "')"
comm.CommandType = CommandType.Text
comm.Connection = con
Dim da As New OleDbDataAdapter(comm)
Dim ds As New DataSet
da.Fill(ds)
gv.DataSource = ds
gv.DataBind()
End If
Next
Return gv
End Function
問題は、ラジオボタンとテキストボックスで同じ関数を使用する必要があり、すべてのタイプのコントロールに個別の関数を記述したくないことです。コントロールをパラメータとして検出します。たとえば、テキストボックスを渡すと、関数になります。テキストボックスのように動作する必要があり、ラジオの場合はラジオンの動作、チェックボックスの場合はこれと同じ動作です。関数を渡すためのこれらの3つのコントロールがあり、これらのコントロールの自動検出方法を作成したい