строка json со стороны vb.net на asp.net - PullRequest
3 голосов
/ 13 ноября 2010

Как мне получить мою строку JSON на свой asp.net с помощью jquery? Я запутался в использовании веб-методов, массивов или функций. Все примеры, которые я видел, находятся на C #.Все, что я хочу, - это проанализировать строку json.

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.Таким образом, я могу создать клиентскую таблицу, которая будет включать математические функции.Я очень новичок в этом, поэтому мне нужно четкое объяснение и, возможно, даже пример.Я читал о методах страницы и пытался использовать этот пример при вызове серверных функций пример

Или вы можете сказать мне простой способ перехода от sql к ajax.Каков наилучший способ размещения больших наборов данных на странице asp.net без использования подкачки.

Я в основном переписываю страницу asp, которую они используют сейчас, чтобы использовать ajax, потому что она загружается медленно, вот примертекущий код 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 и использует промежуточный итог.

Ответы [ 3 ]

2 голосов
/ 16 ноября 2010

Сначала прочитайте эту ветку SO , если это не поможет - читайте дальше.

Я не уверен, почему вы хотите передать json после того, как вы получите if от веб-сервиса, но следующие шаги должны привести вас туда:

  1. Создание веб-службы (начните со службы HelloWorld по умолчанию из шаблона)
  2. Вызовите веб-сервис из javasscript ( jQuery's $ .ajax () делает именно это)
  3. Назначьте xml (json), который вы получаете от веб-сервиса, скрытому полю (используйте asp: HiddenField, чтобы убедиться, что он доступен на сервере)
  4. В вашем коде позади - получите значение скрытого поля и сделайте то, что вы должны с ним сделать.

Вы должны действительно перефразировать свой вопрос и сказать нам, какова конечная цель. Когда вы говорите «Я хочу построить стол», это ничего не значит.

1 голос
/ 22 ноября 2010

У меня большой набор данных, поэтому использование json и ajax не заставило бы мою страницу загружаться быстрее, чем использование sql.Также причина в том, что я хочу отформатировать свою информацию, используя HTML и таблицы.Это правильное направление?

Независимо от того, извлекаете ли вы данные из вызова веб-службы на стороне клиента или сервера, вы все равно загружаете их через веб-службу, которая должна извлечь их из некоторых внутренних данныххранить (т.е. SQL).Использование подхода на стороне клиента (JSON) ускорит доставку страницы, но пользователь все равно будет ожидать полной загрузки данных, доставляемых клиенту.

С точки зрения производительности вы, вероятно, захотите заглянуть в LINQ для доставки только той страницы данных, которая вам нужна (т. Е. Имеется 5000 записей, и пользователь просматривает только первые 100 на странице 1, поэтому тольковернуться на страницу 1).Это яма, в которую впадают многие новые разработчики, и она немного сложна, но у вас, кажется, есть к этому аппетит.Удачи.

1 голос
/ 13 ноября 2010

В вашем теге Body в ASP.NET поместите атрибут onload, который вызывает функцию Javascript, которая делает вызов Ajax (вы можете использовать JQuery или сделать это вручную (просто не забудьте поместить ServiceReference в ScriptManager) дляметод веб-сервиса. Метод return (в javascript) должен будет затем проанализировать JSON. Если вы собираетесь строить таблицы на стороне сервера, нет смысла сериализовывать объект в JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...