JSON Data Format: {"XX": "xx1", "YY": [{"YY1": "yyy1" },{ "yy2": "yyy2"}]}
Background Section: (in json format)
// This is to get the root directory
Public String getroottree ()
{
Using (sqldatareader DR = sqlhelper. executereader (Conn, system. Data. commandtype. Text, "select * From mmenu where mparentid = 0 "))
{
SB. append ("{" "region "":[");
While (dr. Read ())
{
SB. append ("{""");
SB. append ("mid ");
SB. append (""":""");
SB. append (Dr ["mid"]. tostring ());
SB. append (""",""");
SB. append ("mname ");
SB. append (""":""");
SB. append (Dr ["mname"]. tostring ());
SB. append (""",""");
SB. append ("mparentid ");
SB. append (""":""");
SB. append (Dr ["mparentid"]. tostring ());
SB. append ("""},");
}
SB. append ("]");
Return sb. tostring (). substring (0, SB. tostring (). Length-2) + "]}";
}
}
// Obtain subordinate data by ID
Public String getsubtree (INT mid)
{
Using (sqldatareader DR = sqlhelper. executereader (Conn, system. Data. commandtype. Text, "select * From mmenu where mparentid =" + mid ))
{
SB. append ("{" "region "":[");
While (dr. Read ())
{
SB. append ("{""");
SB. append ("mid ");
SB. append (""":""");
SB. append (Dr ["mid"]. tostring ());
SB. append (""",""");
SB. append ("mname ");
SB. append (""":""");
SB. append (Dr ["mname"]. tostring ());
SB. append (""",""");
SB. append ("mparentid ");
SB. append (""":""");
SB. append (Dr ["mparentid"]. tostring ());
SB. append ("""},");
}
SB. append ("]");
Return sb. tostring (). substring (0, SB. tostring (). Length-2) + "]}";
}
}
Foreground:
<! Doctype HTML public "-// W3C // dtd html 4.0 transitional // en">
<HTML>
<Head>
<Title> select </title>
<Meta name = "generator" content = "Microsoft Visual Studio. NET 7.1">
<Meta name = "code_language" content = "C #">
<Meta name = vs_defaultclientscript content = "JavaScript">
<Meta name = vs_targetschema content = "http://schemas.microsoft.com/intellisense/ie5">
<SCRIPT src = JS/prototype-1.4.0.js> </SCRIPT>
<SCRIPT>
Function getjson ()
{
VaR myoptions = {
Parameters :"",
Method: "Get ",
Onsuccess: function (RES ){
VaR mydata = eval ("(" + res. responsetext + ")");
Mydata. region. Each (function (XX ){
$ ("Root"). Options. Add (New Option (XX. mname, XX. Mid ));
}
);
}
}
New Ajax. Request ("jsonselect. aspx? Action = root & S "+ math. Random (), myoptions );
}
Function getsub (ID)
{
VaR myoptions = {
Parameters: "subid =" + id,
Method: "Get ",
Onsuccess: function (RES ){
VaR mydata = eval ("(" + res. responsetext + ")");
$ ("Sub"). Options. Length = 1;
Mydata. region. Each (function (XX ){
$ ("Sub"). Options. Add (New Option (XX. mname, XX. Mid ));
}
);
}
}
New Ajax. Request ("jsonselect. aspx? Action = sub & S "+ math. Random (), myoptions );
}
</SCRIPT>
</Head>
<Body onload = getjson ()>
<Form ID = "form1" method = "Post" runat = "server">
<Select name = "A" id = "root" onchange = "getsub (this. Value)">
<Option value = "" selected> ----- select a category ----- </option>
</SELECT>
<Select name = "A" id = "sub" onchange = "getsub (this. Value)">
<Option value = "" selected> ----- select a category ----- </option>
</SELECT>
</Form>
</Body>
</Html>