2012-04-19 2 views
0

현재 YUI 표를 사용하는 솔루션을 개발 중입니다. 내 문제는 내 홈페이지가 다른 모든 페이지의 요약이고 다른 페이지에 표시된 격자의 요약 그리드가 포함되어 있으며 각 페이지의 코드에서 동일한 코드를 다시 사용하고 싶지 않습니다. 그것을 중앙 집중화하려고 노력하고있는 Im. 그래서 내가 한 것은 <asp:Placeholders id="LoadOpenPurchasesGridDataPlaceholder" runat="server">으로 홈 페이지와 Open Purchases 페이지에 JSON 문자열을 씁니다. 그러나 모든 페이지에서 하위 프로 시저를 공유하기 때문에 공유를 공용으로 만들었지 만 오류가 발생합니다. 공유 메서드 또는 공유 멤버 내에서 클래스의 인스턴스 멤버를 참조 할 수 없습니다.asp에 액세스 : 공용 공유 하위에서 자리 표시 자

이제 다른 코드의 페이지에 response.write를 쓰려면 HttpContext.Current.Response.Write()를 사용하십시오. 페이지의 HTML 컨트롤에 액세스하는 것과 비슷한 방법이 있나요? (나는 상세하게 설명하는 것을 시도했다, 혼란에 대한 유감이 발생합니다.)

내 코드 :

Shared Sub LoadOpenPurchasesGrid(ByVal Location As String, ByVal Coop As String, ByVal Commodity As String, ByVal Financed As String, ByVal Season As String, ByVal Trader As String, ByVal Department As String, ByVal Database As String) 
    Try 
     Dim ReturnString As String = Nothing 
     If Location = "0" And Coop = "0" And Commodity = "0" And Season = "0" And Trader = "0" Then 
      ReturnString = (LoadOpenPurchasesGridData("", "", "", "", "", Department, Database)) 
      Dim LoadGridDataContainer As New HtmlGenericControl("input") 
      LoadGridDataContainer.ID = "hdnOpenPurchasesGridData" 
      LoadGridDataContainer.Attributes.Add("type", "hidden") 
      LoadGridDataContainer.Attributes.Add("value", ReturnString) 
      LoadOpenPurchasesGridDataPlaceholder.Controls.Add(LoadGridDataContainer) 
     Else 
      ReturnString = (LoadOpenPurchasesGridData(Location, Coop, Commodity, Season, Trader, Department, Database)) 
      HttpContext.Current.Response.Write(ReturnString) 
     End If 
     HttpContext.Current.Response.Write(ex.message) 
    End Try 
End Sub 

답변

0

내 질문에 대한 답을 발견했다. 호출하는 메서드에서 직접 자리 표시자를 참조하는 대신 메서드 매개 변수로 자리 표시자를 전달하고 호출하는 메서드에서 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'