2010-11-12 45 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)。它的一个陷阱大量的新开发者落入并且有点复杂,但你似乎对它有兴趣。祝你好运。