从公共共享子访问 asp:占位符



我目前正在开发一个使用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'

相关内容

  • 没有找到相关文章

最新更新