私は私の質問に対する答えを見つけました。呼び出し元のメソッドから直接プレースホルダーを参照するのではなく、メソッドパラメーターとしてプレースホルダーを渡し、呼び出し元のメソッドからMe.PlaceholderIDとして送信します。
' Public Shared Sub LoadOpenPurchasesGridData(ByRef Placeholder As Object, ByVal Location As String, ByVal Coop As String, ByVal Commodity As String, ByVal Season As String, ByVal Trader As String, ByVal SearchCriteria As String, ByVal Department As String, ByVal Database As String, ByVal InitialLoad As Boolean)
Dim SqlConnection As New SqlConnection
Dim SqlCommand As New SqlCommand
Dim SqlParameter As New List(Of SqlParameter)
Dim SqlReader As SqlDataReader = Nothing
Dim ReturnString = "["
Dim Counter As Integer = 1
Try
SqlConnection = CreateDatabaseConnection(ConnectionString)
AddSqlParameterToCollection(SqlParameter, "@Location", Location)
AddSqlParameterToCollection(SqlParameter, "@Coop", Coop)
AddSqlParameterToCollection(SqlParameter, "@Commodity", Commodity)
AddSqlParameterToCollection(SqlParameter, "@Season", Season)
AddSqlParameterToCollection(SqlParameter, "@Trader", Trader)
AddSqlParameterToCollection(SqlParameter, "@Search", SearchCriteria)
AddSqlParameterToCollection(SqlParameter, "@Database", Database)
SqlCommand = CreateSqlCommand("[proc_Dynamic_GetPOC]", SqlConnection, SqlParameter)
SqlReader = SqlCommand.ExecuteReader()
If SqlReader.HasRows Then
Do While SqlReader.Read And Counter < 200
If Counter <> 1 Then
ReturnString += ","
End If
ReturnString += "{""PrimCont"":""" & SqlReader("PrimCont") & ""","
ReturnString += """PSCM_COOP_ID"":""" & SqlReader("PSCM_COOP_ID") & ""","
ReturnString += """POCNumber"":""" & SqlReader("POCNumber") & ""","
ReturnString += """VENDORID"":""" & SqlReader("VENDORID") & ""","
ReturnString += """VendorContract"":""" & SqlReader("VendorContract") & ""","
ReturnString += """ITMCLSDC"":""" & SqlReader("ITMCLSDC") & ""","
ReturnString += """CommodityGrade"":""" & SqlReader("CommodityGrade") & ""","
ReturnString += """ContractQty"":""" & SqlReader("ContractQty") & ""","
ReturnString += """LIQty"":""" & SqlReader("LIQty") & ""","
ReturnString += """TonsNotFinalized"":""" & SqlReader("TonsNotFinalized") & ""","
ReturnString += """POC_DEL_QTY"":""" & SqlReader("POC_DEL_QTY") & ""","
ReturnString += """OpenQty"":""" & SqlReader("OpenQty") & ""","
ReturnString += """ContractPrice"":""" & SqlReader("ContractPrice") & ""","
ReturnString += """PurchaseBasis"":""" & SqlReader("PurchaseBasis") & ""","
ReturnString += """Safex Month"":""" & SqlReader("Safex Month") & ""","
ReturnString += """SpreadToSafexMonth"":""" & SqlReader("SpreadToSafexMonth") & ""","
ReturnString += """LOCNDSCR"":""" & SqlReader("LOCNDSCR") & ""","
ReturnString += """Area"":""" & SqlReader("Area") & ""","
ReturnString += """VesselName"":""" & SqlReader("VesselName") & ""","
ReturnString += """DeliveryMonth"":""" & SqlReader("DeliveryMonth") & ""","
ReturnString += """SignedContract"":""" & SqlReader("SignedContract") & """}"
Counter += 1
Loop
End If
ReturnString += "]"
Counter = 0
If InitialLoad = True Then
Dim LoadGridDataContainer As New HtmlGenericControl("input")
LoadGridDataContainer.ID = "hdnOpenPurchasesGridData"
LoadGridDataContainer.Attributes.Add("type", "hidden")
LoadGridDataContainer.Attributes.Add("value", ReturnString)
Placeholder.Controls.Add(LoadGridDataContainer)
Else
HttpContext.Current.Response.Write(ReturnString)
End If
Catch ex As Exception
HttpContext.Current.Response.Write("<span class=""error_message_span"">ERROR - An error occurred loading the open puchases grid. Please contact the system administrators for assistance.</span>" & ex.Message)
Finally
If Not IsNothing(SqlReader) Then
SqlReader.Close()
SqlReader = Nothing
End If
If Not IsNothing(SqlCommand) Then
SqlCommand.Dispose()
SqlCommand = Nothing
End If
If Not IsNothing(SqlConnection) Then
SqlConnection.Close()
SqlConnection.Dispose()
SqlConnection = Nothing
End If
End Try
End Sub'