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!
No comments:
Post a Comment