I'd try:

Response.ContentType = "application/json"

right before the first writing


On Jan 28, 2:32 pm, Jason Knight <jason.t.kni...@gmail.com> wrote:
> Hi all,
>
> I've loved using jQuery these past few months, but I'm really pulling
> my hair our here.
>
> The following is the "endpoint" asp code that gets called to populate
> my treeview:
>
> <%
> rootid = request.querystring("rootid")
> json = ""
> set Conn = server.CreateObject("ADODB.Connection")
> Conn.Open strProvider
> if rootid = "source" then
>         json = "["
>         set RS = Server.CreateObject("ADODB.RecordSet")
>         Sql = "select categoryid,categoryname,(select count(*) from
> tblcategories where parentid = c1.categoryid) ChildCount from
> tblcategories c1 where parentid = 0"
>         session("errorsql") = sql
>         set Cmd = Server.CreateObject("ADODB.Command")
>         Cmd.CommandText = Sql
>         Cmd.ActiveConnection = Conn
>         rs.open Cmd
>         if not RS.EOF then
>                 GotRows = "y"
>                 arrResultSet = RS.GetRows()
>                 numRows = ubound(arrResultSet,2)
>                 For i = 0 to numRows
>                         categoryid = arrResultSet(0,i)
>                         categoryname = arrResultSet(1,i)
>                         childcount = cint(arrResultSet(2,i))
>                         json = json & "{'text': '" & categoryname & 
> "','id':'" & categoryid
> & "'"
>                         if childcount > 0 then
>                                 json = json & ", 'hasChildren':true"
>                         end if
>                         json = json & "}"
>                         if i < numRows  then
>                                 json = json & ","
>                         end if
>                 Next
>         else
>                 GotRows = "n"
>                 json = json & "{'text': 'No Categories have been created'}"
>         end if
>         json = json & "]"
>         RS.close
> elseif isnumeric(rootid) and rootid <> "" then
>         json = "["
>         set RS = Server.CreateObject("ADODB.RecordSet")
>         Sql = "select categoryid,categoryname,(select count(*) from
> tblcategories where parentid = c1.categoryid) ChildCount from
> tblcategories c1 where parentid = ?"
>         session("errorsql") = sql
>         set Cmd = Server.CreateObject("ADODB.Command")
>         Cmd.Parameters.Append CreateIntParameter(Cmd, "rootid", rootid)
>         Cmd.CommandText = Sql
>         Cmd.ActiveConnection = Conn
>         rs.open Cmd
>         if not RS.EOF then
>                 GotRows = "y"
>                 arrResultSet = RS.GetRows()
>                 numRows = ubound(arrResultSet,2)
>                 For i = 0 to numRows
>                         categoryid = arrResultSet(0,i)
>                         categoryname = arrResultSet(1,i)
>                         childcount = cint(arrResultSet(2,i))
>                         json = json & "{'text': '" & categoryname & 
> "','id':'" & categoryid
> & "'"
>                         if childcount > 0 then
>                                 json = json & ", 'hasChildren':true"
>                         end if
>                         json = json & "}"
>                         if i < numRows then
>                                 json = json & ","
>                         end if
>                 Next
>         else
>                 GotRows = "n"
>         end if
>         json = json & "]"
>         RS.close
> end if
> set Cmd = nothing
> set RS=nothing
> conn.close
> set conn=nothing
> response.write json
> %>
>
> This code produces the following JSON string viewable when I hit the
> page directly with the ?rootid=source parameter:
>
> [{'text': 'Cat1.0','id':'1'},{'text': 'Cat1.1','id':'2',
> 'hasChildren':true},{'text': 'Cat1.2','id':'3'}]
>
> Unless I've received a severe blow to the head, I recognize this as
> valid JSON and just what the treeview needs to produce a flat display
> of 3 nodes with the second having a '+' sign for expandability.
>
> Here's the frustrating part, when I past that string into the body of
> my asp page, comment out the response.write line, save, and run
> everything I get the simple tree that I'd expect.  When I remove the
> JSON string, and uncomment the response.write line, nothing happens.
>
> I've tried flushing the response object, ending the response object,
> clearing the response before writing to it, yet nothing seems to work.
>
> Please, please help!

Reply via email to