2010-11-12 96 views
3

我怎麼會得到我的JSON字符串到我的asp.net使用jquery我很困惑使用web方法或數組或函數所有我看過的例子都在C#中。我想要的是用json字符串解析它。json字符串從vb.net端到asp.net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load 
    cmd.Connection = conn 
    conn.Open() 
    Dim ds As New DataSet 
    cmd.CommandText = "MY SELECT STATEMENT IS IN HERE(DIDNT WANT TO POST ONLINE)" 
    da.Fill(ds) 
    da.FillSchema(ds, SchemaType.Mapped) 
    Dim myObject = ds.GetXml 
    Dim jsonString = New JavaScriptSerializer().Serialize(myObject) 
    conn.Close() 
End Sub 

我想把jsonstring或myobject放到服務器端。 jsonstring是json,myobject是xml。這樣我可以創建一個包含數學函數的表格客戶端。我很新,所以我需要一個清晰的解釋,甚至可能是一個例子。我已閱讀關於pagemethods,並且我已經嘗試使用此示例調用服務器端函數example

或者您能告訴我一個簡單的方法,從sql到ajax。不使用分頁在asp.net頁面上放置大型數據集的最佳方法是什麼?

我基本上正在重寫一個他們現在使用ajax的asp頁面,因爲它加載速度很慢,繼承人是當前asp代碼的一個例子,以及我想實現的目標。

   response.write("<tr><td>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("book7")) 
      response.write("</td><td>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("dep7")) 
      response.write("</td><td>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("lead")) 
      response.write("</td><td>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("hear")) 
      response.write("</td><td>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("cname")) 
      response.write("</td><td>") 

%><font face="Arial,Helvetica,sans-serif" size="-2"><% 


response.write(rscontest.fields.item("theme") & " - " & rscontest.fields.item("tour")) 
      response.write("</td><td align='right'>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("userid")) 
      response.write("</td><td align='right'>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      response.write(rscontest.fields.item("pax_count")) 
      pax = pax + rscontest.fields.item("pax_count") 
      response.write("</td><td align='right'>") 

      %><font face="Arial,Helvetica,sans-serif" size="-2"><% 
      IF rscontest.fields.item("status") = "XL" then 
       response.write(formatnumber(rscontest.fields.item("CXVALUE"),2)) 
       sales = sales - formatnumber(rscontest.fields.item("CXVALUE"),2) 
      ELSE 
       response.write(formatnumber(rscontest.fields.item("AMOUNT"),2)) 
       sales = sales + formatnumber(rscontest.fields.item("AMOUNT"),2) 
      END IF 

     response.write("<tr><td rowspan=1>")  
     %><font face="Arial,Helvetica,sans-serif" size="-2"></style><% 
      response.write(rscontest.fields.item("description")) 




      rscontest.movenext 

     wend 

它寫的任何東西都來自sql語句,並且它使用一個運行總數。

+0

目前尚不清楚你要求什麼。您發佈的代碼是否可以在文本框中顯示您的json?如果是這樣,當頁面加載到瀏覽器中時,你是否想在JavaScript中使用它做些什麼? – 2010-11-12 21:35:01

+0

是的,基本上現在它在文本框中加載JSON,因爲這是我能夠判斷我是否真的獲得了json字符串的唯一方法。 – MyHeadHurts 2010-11-12 21:36:05

+0

我希望能夠將json字符串轉換爲ajax,這樣我就可以創建表格了。或至少讓它解析我基本上處於停滯狀態。 – MyHeadHurts 2010-11-12 21:37:24

回答

2

首先,閱讀this SO thread,如果它沒有幫助 - 請繼續閱讀

我不確定你爲什麼要通過json後得到,如果你從web服務,但下面的步驟應該讓你在那裏:

  1. 創建一個web服務(先從模板默認HelloWorld服務)
  2. 呼叫從使用JavasScript的web服務(jQuery's $.ajax()就是這樣做的)
  3. 指定的XML(JSON)你從web服務獲得一個隱藏的字段(使用asp:HiddenField來確保它在服務器上可用)
  4. 在您的代碼背後 - 獲取隱藏字段的值,並執行您的操作。

你應該真的改述你的問題,告訴我們最終的目標是什麼。當你說「我想建一張桌子」時,這並不意味着什麼。

+0

我有一個大的數據集,所以不會使用json和ajax使我的網頁加載速度更快,而不是使用sql。另外原因是我想使用html和表格來格式化我的信息。這是正確的方向嗎? – MyHeadHurts 2010-11-16 13:43:44

+0

我添加了一些更詳細的感謝幫助我 – MyHeadHurts 2010-11-16 13:51:27

1

在ASP.NET的Body標籤中放入一個onload屬性,該屬性調用一個使Ajax調用的Javascript函數(您可以使用JQuery或手動執行它(只是不要忘記將ServiceReference放在ScriptManager中)如果你打算在服務器端建立表格,那麼將對象序列化爲JSON是沒有意義的。

+0

我需要Web服務方法部分的幫助,它是一個函數還是它是什麼?我有一個腳本管理器,並將該屬性設置爲true的Web服務方法,但它是某種功能? – MyHeadHurts 2010-11-13 00:28:33

+0

當您在Visual Studio中啓動一個新項目時,選擇一個模板,例如Windows Forms Application或Asp .Net Web Application。選擇Asp .Net Web服務模板,並自動爲您生成hello world Web服務方法。將Hello World函數更改爲您將從javascript或jquery調用的函數。 – N0Alias 2010-11-19 03:44:18

+0

我是否需要使用webservice來完成此操作。我可以把我的json字符串從那裏vb.net端另一種方式進入asp.net。 – MyHeadHurts 2010-11-19 14:26:45

1

我有一個大的數據集,所以不會 使用JSON和Ajax使我 頁面加載速度更快,而不是使用SQL。 另外原因是我想格式化我的 信息使用HTML和表格。是 這個正確的方向?

無論您是從客戶端還是服務器端的Web服務調用中提取數據,您仍然通過必須從某個後端數據存儲(即SQL)檢索它的Web服務來加載數據。使用客戶端方法(JSON)可以更快地交付頁面,但用戶仍然會等待數據傳遞給客戶端的整體負載。

從性能的角度來看,您可能會希望看看LINQ只提供您需要的數據頁面(即,有5,000條記錄,用戶只能查看第1頁的前100個,因此只返回頁面1)。它的一個陷阱大量的新開發者落入並且有點複雜,但你似乎對它有興趣。祝你好運。