2012-04-19 10 views
0

現在、YUIグリッドを使用するソリューションを開発中です。私の問題は、私のホームページは他のすべてのページの要約であり、他のページに表示されているグリッドの要約グリッドが含まれているため、各ページのコードに同じコードを再利用したくないということです。私はそれを一元化しようとしている。だから私がやったことは、ホームページとOpen PurchasesページにJSON文字列を書く場所<asp:Placeholders id="LoadOpenPurchasesGridDataPlaceholder" runat="server">を作ったことです。しかし、すべてのページでサブプロシージャを共有したいので、私はそれをpublicにしましたが、共有メソッドまたは共有メンバ内からクラスのインスタンスメンバを参照することはできません。パブリック共有サブスクライブから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'