我目前正在开发一个使用YUI网格的解决方案。我的问题是我的主页是我所有其他页面的摘要,它包括其他页面上显示的网格的摘要网格,并且我不想在每个页面的代码隐藏中重复使用相同的代码。我试图集中它。所以我所做的是我在主页和打开购买页面上编写 JSON 字符串的<asp:Placeholders id="LoadOpenPurchasesGridDataPlaceholder" runat="server">
。但是,由于我想在所有页面上共享子过程,因此我已将其公开共享,但它给出了一个错误:无法从共享方法或共享成员中引用类的实例成员。
现在,如果我想从不同的代码开始响应.写入页面,我使用HttpContext.Current.Response.Write()。是否有类似的方法可以从我调用它的地方访问页面的 HTML 控件。(我试图详细解释它,很抱歉造成的混乱。
我的代码: Shared sub loadOpenPurchasesGrid(ByVal location as string, ByVal coop as string, ByVal commodity as string, ByVal Finance as String, ByVal
season as String, ByVal trader as string, ByVal Department as string, ByVal database as string) 尝试 将返回字符串暗为字符串 = 无 如果位置 = "0" 并且 coop = "0" 和商品 = "0" 和季节 = "0" 并且交易者 = "0" 则 ReturnString = (LoadOpenPurchasesGridData(", ", ", ", ", Department, Database)) 将 LoadGridDataContainer 调暗为新的 HtmlGenericControl("input") LoadGridDataContainer.ID = "hdnOpenPurchasesGridData" LoadGridDataContainer.Attributes.Add("type", "hidden") LoadGridDataContainer.Attributes.Add("value", ReturnString) LoadOpenPurchasesGridDataPlaceholder.Controls.Add(LoadGridDataContainer) 还 ReturnString = (LoadOpenPurchasesGridData(location, coop, comsortity, season, Trader, Department, Database)) HttpContext.Current.Response.Write(ReturnString) 结束如果 HttpContext.Current.Response.Write(ex.message) 结束尝试结束子
我已经找到了问题的答案。我不是尝试直接从调用方法引用占位符,而是将占位符作为方法参数传递,并将其作为 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'