Ajax+asp โครงสร้างต้นไม้จำแนกได้ไม่จำกัด พร้อมฐานข้อมูล ของดีห้ามพลาด ทดสอบ IE ได้แล้ว FF มีจุดบกพร่องเล็กน้อย
Cls_Leibie.asp
คัดลอกรหัสรหัสดังต่อไปนี้:
-
'ช่องฐานข้อมูลเป็นคุณลักษณะของคลาส และฟังก์ชันต่างๆ เช่น การเพิ่ม การลบ การแก้ไข และการตรวจสอบการดำเนินการเป็นวิธีการของคลาส
คลาส Cls_Leibie
ส่วนตัว nClassID,sClassName,nParentID,sParentPath,nDepth,nRootID,nChild,nOrderID,sFilePath 'กำหนดตัวแปรส่วนตัว (คุณลักษณะของคลาส นั่นคือ ตัวแปรที่สอดคล้องกับฟิลด์ฐานข้อมูล)
rs, sql ส่วนตัว, ErrorStr
Class_Initialize ส่วนตัว ()
ErrorStr= 'ข้อความแสดงข้อผิดพลาดในการเริ่มต้นว่างเปล่า
จบหมวดย่อย
Private Sub Class_Terminate() 'ปิดการเชื่อมต่อฐานข้อมูลเมื่อทำลายคลาส'
ถ้า IsObject (Conn) แล้ว
คอน.ปิด
SetConn=ไม่มีอะไร
สิ้นสุดถ้า
จบหมวดย่อย
'************************ ตั้งค่าคุณสมบัติต่างๆ ********************** ******** ***************************
ทรัพย์สินสาธารณะให้ ClassID(str) 'รับรหัสหมวดหมู่ (คีย์หลัก)
nClassID=str
เรียก ClassProperty() 'เรียกใช้ฟังก์ชันนี้เพื่ออ่านคุณสมบัติทั้งหมดของคลาสเมื่อได้รับรหัสหมวดหมู่
สิ้นสุดคุณสมบัติ
คุณสมบัติสาธารณะ Let ClassName(str) 'รับชื่อคลาส
sClassName=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ ClassName
ชื่อคลาส=sClassName
สิ้นสุดคุณสมบัติ
คุณสมบัติสาธารณะ Let ParentID(str) 'รับรหัสพาเรนต์ของหมวดหมู่
nParentID=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ ParentID
ParentID=nParentID
สิ้นสุดคุณสมบัติ
คุณสมบัติสาธารณะ Let ParentPath(str) 'รับ ID พาธพาเรนต์
sParentPath=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ ParentPath
ParentPath=sParentPath
สิ้นสุดคุณสมบัติ
คุณสมบัติสาธารณะ Let Depth(str) 'รับความลึกของหมวดหมู่
nความลึก=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับความลึก
ความลึก=nความลึก
สิ้นสุดคุณสมบัติ
คุณสมบัติสาธารณะ ให้ RootID(str) 'รับรหัสรูทของหมวดหมู่
nRootID=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ RootID
RootID=nRootID
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะ Let Child(str) 'จำนวนหมวดหมู่ย่อย
nChild=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับเด็ก
เด็ก=nเด็ก
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะให้ OrderID(str) 'รหัสคำสั่งซื้อ
nOrderID=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ OrderID
รหัสคำสั่งซื้อ=nรหัสคำสั่งซื้อ
สิ้นสุดคุณสมบัติ
คุณสมบัติสาธารณะ Let FilePath(str) 'ไดเรกทอรีรากของไฟล์หมวดหมู่ (สร้างเส้นทางไฟล์แบบคงที่ บล็อกเทคโนโลยีเว็บ Xiaozhan Laoyang ใช้การสร้างไฟล์แบบคงที่ ดังนั้นให้ตั้งค่าฟิลด์นี้)
sFilePath=str
สิ้นสุดคุณสมบัติ
ทรัพย์สินสาธารณะรับ FilePath
FilePath=sFilePath
สิ้นสุดคุณสมบัติ
'************************************************ * ******************************
Private Sub ClassProperty() 'อ่านคุณสมบัติทั้งหมดของคลาส
sql=select * จาก ArticleClass โดยที่ ClassID=& nClassID
ตั้งค่า rs=conn.execute(sql)
ถ้าไม่ใช่ rs.eof แล้ว
sClassName=trim(rs(ชื่อคลาส))
nParentID=ตัดแต่ง(rs(ParentID))
sParentPath=ตัดแต่ง(rs(ParentPath))
nDepth=การตัดแต่ง(rs(ความลึก))
nRootID=ตัดแต่ง(rs(RootID))
nChild=ตัดแต่ง(rs(เด็ก))
nOrderID=trim(rs(รหัสคำสั่งซื้อ))
sFilePath=trim(rs(FilePath))
สิ้นสุดถ้า
ตั้งค่า rs=nothing
จบหมวดย่อย
ฟังก์ชั่นสาธารณะ FAddCheck() 'เพิ่มฟังก์ชั่นตรวจสอบให้กับหมวดหมู่ ผลลัพธ์ของ 0 หมายความว่าผ่านการตรวจสอบ และผลลัพธ์ของ 1 หมายถึงมีข้อผิดพลาดเกิดขึ้น เมื่อมีข้อผิดพลาดเกิดขึ้น ให้ออกจากฟังก์ชันและเขียนข้อมูลข้อผิดพลาดไปยังข้อผิดพลาด ตัวแปร ErrorStr
อุณหภูมิสลัว
FAddCheck=0
ถ้า sClassName= ดังนั้น 'ชื่อคลาสว่างเปล่า'
FAddCheck=1
ErrorStr=ชื่อคลาสไม่สามารถเว้นว่างได้!
ออกจากฟังก์ชัน
อื่น
ถ้า nParentID= ดังนั้น 'รหัสผู้ปกครองว่างเปล่า'
FAddCheck=1
ErrorStr=รหัสผู้ปกครองไม่สามารถเว้นว่างได้!
ออกจากฟังก์ชัน
อื่น
ถ้า nParentID<>0 แล้ว
set temprs=conn.execute (เลือก ClassID จาก ArticleClass โดยที่ ClassID= & nParentID) 'ไม่มีหมวดหมู่หลัก
ถ้า temprs.eof แล้ว
FAddCheck=1
ErrorStr=หมวดหมู่ไม่มีอยู่หรือถูกลบไปแล้ว!
ออกจากฟังก์ชัน
อื่น
sql=select ClassID จาก ArticleClass โดยที่ ClassName='& sClassName &' และ ParentID=& nParentID 'ชื่อคลาสที่ซ้ำกัน
ตั้งค่า rs=conn.execute(sql)
ถ้าไม่ใช่ rs.eof แล้ว
FAddCheck=1
ErrorStr=ชื่อคลาสซ้ำ!
ออกจากฟังก์ชัน
สิ้นสุดถ้า
ตั้งค่า rs=nothing
สิ้นสุดถ้า
settemprs=ไม่มีอะไร
อื่น
sql=select ClassID จาก ArticleClass โดยที่ ClassName='& sClassName &' และ ParentID=& nParentID 'ชื่อคลาสที่ซ้ำกัน
ตั้งค่า rs=conn.execute(sql)
ถ้าไม่ใช่ rs.eof แล้ว
FAddCheck=1
ErrorStr=ชื่อคลาสซ้ำ!
ออกจากฟังก์ชัน
สิ้นสุดถ้า
ตั้งค่า rs=nothing
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
สาธารณะย่อย SAdd()
สลัว maxClassID, maxRootID
set rs = conn.execute(เลือก Max(ClassID) จาก ArticleClass) 'ค้นหารหัสหมวดหมู่ที่ใหญ่ที่สุดในฐานข้อมูลปัจจุบัน หากไม่มีข้อมูล ให้ตั้งค่าเป็น 0 รหัสหมวดหมู่ที่จะแทรกคือรหัสที่ใหญ่ที่สุดในปัจจุบันบวก 1
maxClassID=rs(0)
ถ้า isnull(maxClassID) แล้ว
maxClassID=0
สิ้นสุดถ้า
ตั้งค่า rs=nothing
nClassID=maxClassID+1
set rs=conn.execute(select max(rootid) From ArticleClass) 'ค้นหา root id ที่ใหญ่ที่สุดในฐานข้อมูลปัจจุบัน หากไม่มีข้อมูล ให้ตั้งค่าเป็น 0 root id ที่จะแทรกคือ root id ที่ใหญ่ที่สุดในปัจจุบันบวก 1
maxRootID=rs(0)
ถ้า isnull(maxRootID) แล้ว
maxRootID=0
สิ้นสุดถ้า
nRootID=maxRootID+1
set rs=conn.execute(เลือก RootID,Depth,ParentPath,Child,OrderID จาก ArticleClass โดยที่ ClassID= & nParentID) 'ค้นหาข้อมูลที่เกี่ยวข้องของหมวดหมู่หลัก
ถ้าไม่ใช่ rs.eof แล้ว
nRootID=trim(rs(Rootid)) 'รหัสรูทเหมือนกับรหัสรูทหมวดหมู่หลัก
sParentPath=trim(rs(ParentPath))& , &nParentID
if cint(trim(nParentID))>0 ดังนั้น 'หากรหัสพาเรนต์มากกว่า 0 แสดงว่ามีหมวดหมู่พาเรนต์ ดังนั้นความลึกของหมวดหมู่ที่จะแทรกจะถูกเพิ่มเข้ากับความลึกของหมวดหมู่พาเรนต์ด้วย 1 หาก รหัสพาเรนต์ต้องไม่เกิน 0 หมวดหมู่ปัจจุบันที่จะแทรกคือหมวดหมู่รูท จากนั้นความลึกคือ 0
nDepth=cint(trim(rs(ความลึก)))+1
อื่น
nความลึก=0
สิ้นสุดถ้า
ถ้า cint(trim(rs(Child)))>0 แล้ว
dimrsPrevOrderID
'รับ OrderID ของคอลัมน์สุดท้ายในระดับเดียวกับคอลัมน์นี้
ตั้งค่า rsPrevOrderID=conn.execute (เลือก Max (OrderID) จาก ArticleClass โดยที่ ParentID= & ParentID)
prevOrderID=rsPrevOrderID(0)
'รับ OrderID สูงสุดของคอลัมน์ย่อยของคอลัมน์หลักเดียวกันแต่มีขนาดใหญ่กว่าคอลัมน์นี้ หากมากกว่าค่าก่อนหน้า ให้ใช้ค่านี้แทน
ตั้งค่า rsPrevOrderID=conn.execute(เลือก Max(OrderID) จาก ArticleClass โดยที่ ParentPath เช่น ' & ParentPath & ,%')
ถ้า (ไม่ใช่ (rsPrevOrderID.bof และ rsPrevOrderID.eof)) จากนั้น
ถ้าไม่ใช่ IsNull(rsPrevOrderID(0)) แล้ว
ถ้า rsPrevOrderID(0)>prevOrderID แล้ว
prevOrderID=rsPrevOrderID(0)
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ตั้งค่า rsPrevOrderID=nothing
สิ้นสุดถ้า
nOrderID=prevOrderID+1
อื่น
nรหัสคำสั่งซื้อ=0
sParentPath=0
nความลึก=0
สิ้นสุดถ้า
ตั้งค่า rs=nothing
nChild=0
sql=แทรกลงใน ArticleClass (ClassID,ClassName,ParentID,ParentPath,Depth,RootID,Child,OrderID,FilePath) ค่า (& nClassID &,'& sClassName &',& nParentID &,'& sParentPath &',& nDepth &, & nRootID &,& nChild &,& nOrderID &,'& sFilePath -
conn.execute(sql)
ถ้า ParentID>0 แล้ว
'อัพเดตจำนวนคอลัมน์ย่อยของคลาสพาเรนต์'
conn.execute (อัพเดต ArticleClass set child=child+1 โดยที่ ClassID=& nParentID)
'อัปเดตการเรียงลำดับของคอลัมน์นี้และหมายเลขลำดับการเรียงลำดับของคอลัมน์ที่มากกว่าความต้องการนี้และอยู่ภายใต้หมวดหมู่นี้
ถ้า prevOrderID<> แล้ว
conn.execute (อัพเดต ArticleClass ตั้ง OrderID=OrderID+1 โดยที่ rootid= & nRootid & และ OrderID>& prevOrderID & และ ClassID<>& nClassID)
สิ้นสุดถ้า
สิ้นสุดถ้า
จบหมวดย่อย
ฟังก์ชั่นสาธารณะ FEditCheck() 'ฟังก์ชั่นตรวจสอบการแก้ไขหมวดหมู่ ผลลัพธ์คือ 0 หมายความว่าผ่านการตรวจสอบแล้ว และ 1 หมายถึงมีข้อผิดพลาดเกิดขึ้น เมื่อมีข้อผิดพลาดเกิดขึ้น ให้ออกจากฟังก์ชันและเขียนข้อมูลข้อผิดพลาดไปยังตัวแปรข้อผิดพลาด ErrorStr
อุณหภูมิสลัว
FEditCheck=0
ถ้า nClassID= ดังนั้น 'รหัสหมวดหมู่ว่างเปล่า'
FEditCheck=1
ErrorStr=รหัสหมวดหมู่ไม่สามารถเว้นว่างได้!
ออกจากฟังก์ชัน
อื่น
ถ้า sClassName= ดังนั้น 'ชื่อคลาสว่างเปล่า'
FEditCheck=1
ErrorStr=ชื่อคลาสไม่สามารถเว้นว่างได้!
ออกจากฟังก์ชัน
อื่น
ถ้า nParentID<>0 แล้ว
set temprs=conn.execute (เลือก ClassID จาก ArticleClass โดยที่ ClassID= & nParentID) 'ไม่มีหมวดหมู่หลัก
ถ้า temprs.eof แล้ว
FAddCheck=1
ErrorStr=หมวดหมู่ไม่มีอยู่หรือถูกลบไปแล้ว!
ออกจากฟังก์ชัน
อื่น
ตั้งค่า rs=conn.execute (เลือก ClassID จาก ArticleClass โดยที่ ClassName='& sClassName &' และ ClassID<>& nClassID &และ ParentID=& nParentID)
ถ้าไม่ใช่ rs.eof แสดงว่า 'ชื่อคลาสซ้ำ'
FEditCheck=1
ErrorStr=ชื่อคลาสซ้ำ!
ออกจากฟังก์ชัน
สิ้นสุดถ้า
ตั้งค่า rs=nothing
สิ้นสุดถ้า
settemprs=ไม่มีอะไร
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
Public Sub SEdit() 'การปรับเปลี่ยนหมวดหมู่
sql=update ArticleClass ตั้งค่า ClassName='& sClassName &', FilePath='& sFilePath &' โดยที่ ClassID=& nClassID
conn.execute(sql)
จบหมวดย่อย
ฟังก์ชั่นสาธารณะ FDeleteCheck() 'ฟังก์ชันตรวจสอบการลบหมวดหมู่ ผลลัพธ์คือ 0 หมายความว่าผ่านการตรวจสอบแล้ว และ 1 หมายถึงมีข้อผิดพลาดเกิดขึ้น เมื่อมีข้อผิดพลาดเกิดขึ้น ให้ออกจากฟังก์ชันและเขียนข้อมูลข้อผิดพลาดไปยังตัวแปรข้อผิดพลาด ErrorStr
FDeleteCheck=0 'ลบโค้ดที่นี่โดยไม่ต้องเขียนส่วนการลบแบบเรียงซ้อนของบทความ เมื่อทำการลบ คุณควรลบแบบต่อเนื่อง
ถ้า nClassID= แล้ว
FDeleteCheck=1
ErrorStr=รหัสหมวดหมู่ที่จะลบไม่สามารถเว้นว่างได้!
ออกจากฟังก์ชัน
อื่น
set rs=conn.execute (เลือก Child จาก ArticleClass โดยที่ ClassID=& nClassID)
ถ้า rs.bof และ rs.eof แล้ว
FDeleteCheck=1
ErrorStr=หมวดหมู่ไม่มีอยู่หรือถูกลบไปแล้ว!
ออกจากฟังก์ชัน
อื่น
ถ้า trim(rs(Child))>0 แล้ว
FDeleteCheck=1
ErrorStr=หมวดหมู่นี้มีหมวดหมู่ย่อย โปรดลบหมวดหมู่ย่อยก่อนที่จะลบหมวดหมู่นี้!
ออกจากฟังก์ชัน
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
SDelete ย่อยสาธารณะ ()
ถ้า nDepth>0 ดังนั้น 'แก้ไขจำนวนลูกของรหัสพาเรนต์
conn.execute (อัพเดต ArticleClass set child=child-1 โดยที่ child>0 และ ClassID= & nParentID)
สิ้นสุดถ้า
sql=delete จาก ArticleClass โดยที่ ClassID=& nClassID
conn.execute(sql)
จบหมวดย่อย
ฟังก์ชั่นสาธารณะFErrStr()
FErrStr=ข้อผิดพลาด
ฟังก์ชันสิ้นสุด
จบคลาส
-
ดัชนี.asp
<%@LANGUAGE=รหัส VBSCRIPT=65001%>
-
'เว็บไซต์ผู้เขียน: www.guaishi.org
อีเมล์: [email protected]
'QQ:514777880.'
Session.CodePage=65001
Response.Charset = utf-8
-
<!DOCTYPE html สาธารณะ -//W3C//DTD XHTML 1.0 การเปลี่ยนผ่าน//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<หัว>
<meta http-equiv=เนื้อหาประเภทเนื้อหา=ข้อความ/html; charset=utf-8 />
<title></title>
<ประเภทสไตล์=ข้อความ/css>
body{margin:0;padding:0;font-size:12px; พื้นหลัง-สี:#FFFFFF;}
ul { รายการสไตล์: ไม่มีระยะขอบ: 0 0 0 20px;
li {ช่องว่างสีขาว: nowrap;
.childdiv { พื้นหลัง: url (รูปภาพ/dot.gif); พื้นหลังซ้ำ: ซ้ำ-y;}
ขยาย { เคอร์เซอร์: ตัวชี้;}
</สไตล์>
<ประเภทสคริปต์=ข้อความ/จาวาสคริปต์>
var xmlHttp; //กำหนดตัวแปรโกลบอล
var currentID=1;//ตั้งค่า ID ที่เลือกในปัจจุบัน หากไม่มี ID นี้ จะเกิดข้อผิดพลาด js
//ฟังก์ชั่นหลักแสดงหมวดหมู่
//cid--รหัสเลเยอร์ของหมวดหมู่ย่อย
//id --รหัสหมวดหมู่
//pid--[+] และ [-] ไอคอน id
//fid--รหัสไอคอนหมวดหมู่
ฟังก์ชั่น DivDisplay(cid,id,pid,fid)
-
if (GetId(cid).style.display=='') //ไอคอนควบคุมการแสดงเมื่อไม่แสดงหมวดหมู่ย่อย
-
GetId(cid).style.display='none';
GetId(pid).src = 'รูปภาพ/ปิด.gif';
GetId(fid).src = 'images/folder.gif';
-
else //การดำเนินการเมื่อขยายหมวดหมู่ย่อย
-
GetId(cid).style.display='';
GetId(pid).src = 'รูปภาพ/opened.gif';
GetId(fid).src = 'images/folderopen.gif';
if (GetId(cid).innerHTML==''||GetId(cid).innerHTML=='กำลังส่งข้อมูล...')
-
GetId(cid).innerHTML='';
ShowChild(cid,id); //เรียกใช้ฟังก์ชันหมวดหมู่ย่อยของการแสดงผล
-
-
-
//มีผลเหมือนกับฟังก์ชันก่อนหน้า ใช้ได้เฉพาะกับหมวดหมู่สุดท้ายเท่านั้น
ฟังก์ชั่น DivDisplay2 (cid, id, pid, fid)
-
ถ้า (GetId(cid).style.display=='')
-
GetId(cid).style.display='none';
GetId(pid).src = 'รูปภาพ/lastclosed.gif';
GetId(fid).src = 'images/folder.gif';
-
อื่น
-
GetId(cid).style.display='';
GetId(pid).src = 'images/lastopen.gif';
GetId(fid).src = 'images/folderopen.gif';
if (GetId(cid).innerHTML==''||GetId(cid).innerHTML=='กำลังส่งข้อมูล...')
-
GetId(cid).innerHTML='';
ShowChild(ซิด,ไอดี);
-
-
-
//ฟังก์ชันเพิ่มหมวดหมู่
//id--รหัสหมวดหมู่
ฟังก์ชั่น ClassAdd (id) {
if (GetId(p+id).src.indexOf(last)>0){/ //เพิ่มการดำเนินการสำหรับหมวดหมู่สุดท้าย
ถ้า (!GetId(p+id).onclick){
GetId(p+id).onclick=function (){DivDisplay2(c+id,id,p+id,f+id);}; // เพิ่มเหตุการณ์การคลิกสำหรับ [+] และ [-]
GetId(s+id).ondblclick=function (){DivDisplay2(c+id,id,p+id,f+id);}; //เพิ่มเหตุการณ์ดับเบิลคลิกสำหรับช่วงที่แสดงข้อความหมวดหมู่
GetId(p+id).src = 'images/lastopen.gif';
-
-
อื่น{
if (!GetId(p+id).onclick){/ //อย่าเพิ่มหมวดหมู่สุดท้าย
GetId(p+id).onclick=function (){DivDisplay(c+id,id,p+id,f+id);};
GetId(s+id).ondblclick=function (){DivDisplay(c+id,id,p+id,f+id);};
GetId(p+id).src = 'รูปภาพ/opened.gif';
-
-
GetId(c+id).style.display='';
ShowChild(c+id,id);
-
//ฟังก์ชั่นแก้ไขหมวดหมู่
ฟังก์ชั่น ClassEdit (id, ชื่อคลาส) {
GetId(s+id).innerHTML=ชื่อคลาส;
-
//ลบฟังก์ชันสำหรับหมวดหมู่ที่มีหลายหมวดหมู่ย่อย
ฟังก์ชั่น ClassDel (id) {
ShowChild(c+id,id);
CurrentSelect(รหัสปัจจุบัน,รหัส)
เรียกดูขวา(id);
-
//ลบฟังก์ชันสำหรับหมวดหมู่ที่มีหมวดหมู่ย่อยเพียงหมวดหมู่เดียว
ฟังก์ชั่น ClassDel1 (id) {
if (GetId(p+id).src.indexOf(last)>0){/ //เมื่อหมวดหมู่เป็นหมวดหมู่สุดท้ายของหมวดหมู่ปัจจุบัน
GetId(p+id).style.cursor=cursor; //ตั้งค่ารูปแบบการส่งผ่านเมาส์ของไอคอน
GetId(p+id).onclick=function (){}; //เนื่องจากหลังจากลบไปแล้วจะมีหมวดหมู่ย่อยเพียงหมวดหมู่เดียว จะไม่มีหมวดหมู่ย่อยอีกต่อไป ดังนั้นให้เปลี่ยนไอคอนเหตุการณ์การคลิกเป็นฟังก์ชันว่าง
GetId(s+id).ondblclick=function (){}; //เหมือนข้างบน
GetId(p+id).src = 'images/lastnochild.gif'; // การตั้งค่าไอคอน
-
อื่น{
GetId(p+id).style.cursor=cursor; //ลบการดำเนินการของหมวดหมู่ที่ไม่ใช่หมวดหมู่สุดท้าย
GetId(p+id).onclick=function (){};
GetId(s+id).ondblclick=function (){};
GetId(p+id).src = 'images/nofollow2.gif'; //การตั้งค่าไอคอนที่นี่แตกต่างจากการตั้งค่าก่อนหน้า
-
ShowChild(c+id,id);
CurrentSelect(รหัสปัจจุบัน,id);
เรียกดูขวา(id);
-
//ส่งพารามิเตอร์ไปยังเฟรมด้านขวา
ฟังก์ชั่น BrowserRight (id) {
CurrentSelect(รหัสปัจจุบัน,id);
top.ContentFrame.location=../ArticleMain.asp?ClassID=+ id;
-
//ฟังก์ชั่นสำหรับกำหนดสถานะของหมวดหมู่ที่เลือก
ฟังก์ชั่น CurrentSelect (oldid, newid) {
currentID=รหัสใหม่;
document.getElementById(s+oldid).style.พื้นหลังสี=สีขาว;
document.getElementById(s+currentID).style.พื้นหลังสี=#C0C0E9;
-
//สร้างวัตถุ XMLHttpRequest
ฟังก์ชั่น CreateXMLHttpRequest()
-
ถ้า (window.ActiveXObject)
-
xmlHttp = ActiveXObject ใหม่ (Microsoft.XMLHTTP);
-
อื่น
-
xmlHttp = XMLHttpRequest ใหม่();
-
-
//ฟังก์ชันการประมวลผล Ajax
//id, รหัสเลเยอร์
//กำจัด id ของข้อมูลในตาราง
ฟังก์ชั่น ShowChild (cid, id)
-
CreateXMLHttpRequest();
ถ้า(xmlHttp)
-
xmlHttp.open('POST','child.asp',true);
xmlHttp.setRequestHeader('ประเภทเนื้อหา','application/x-www-form-urlencoded');
var SendData = 'id='+id;
xmlHttp.send(ส่งข้อมูล);
xmlHttp.onreadystatechange=function()
-
ถ้า(xmlHttp.readyState==4)
-
ถ้า(xmlHttp.status==200)
-
GetId(cid).innerHTML = xmlHttp.responseText;
-
อื่น
-
GetId(cid).innerHTML='ข้อผิดพลาด:'+xmlHttp.statusText;
-
-
อื่น
-
GetId(cid).innerHTML=กำลังส่งข้อมูล...;
-
-
-
อื่น
-
GetId(cid).innerHTML='ขออภัย เบราว์เซอร์ของคุณไม่รองรับ XMLHttpRequest โปรดใช้ IE6 ขึ้นไป! -
-
-
//รับวัตถุหน้า
//id, รหัสเลเยอร์
ฟังก์ชั่น GetId (id)
-
ส่งคืน document.getElementById(id);
-
</สคริปต์>
</หัว>
<ร่างกาย>
<!--#include file=../conn.asp-->
-
'แสดงไดเรกทอรีราก
sql=select *,(เลือก ClassID 1 อันดับแรกจาก ArticleClass โดยที่ Depth=0 เรียงลำดับตาม ClassID desc) เป็นครั้งสุดท้ายจาก ArticleClass โดยที่ Depth=0 เรียงลำดับตาม ClassID
ตั้งค่า rs=conn.execute(sql)
ถ้าไม่ใช่ rs.eof แล้ว
response.เขียน <ul>&vbcr
ทำในขณะที่ไม่ใช่ rs.eof
ถ้า cint(trim(rs(ClassID)))=cint(trim(rs(lastid))) แล้ว
ถ้า rs(Child)>0 แล้ว
การตอบสนองเขียน <li><img id='p&rs(ClassID)&' src=images/lastclosed.gif onclick=DivDisplay2('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)& ','f& rs(ClassID) &') style=cursor : hand; align=absmiddle>
การตอบสนองเขียน <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& trim(rs(ClassID)) &' onclick=BrowseRight(& trim(rs (ClassID)) &) ondblclick=DivDisplay2('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)&','f& rs(ClassID) &')>& rs(ชื่อคลาส) &</span>
อื่น
การตอบสนองเขียน <li><img id='p& rs(ClassID) &' src=images/lastnochild.gif align=absmiddle />
การตอบสนองเขียน <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& trim(rs(ClassID)) &' onclick=BrowseRight(& trim(rs (ClassID)) &)>& rs(ชื่อคลาส) &</span>
สิ้นสุดถ้า
อื่น
ถ้า rs(Child)>0 แล้ว
response.Write <li><img id='p&rs(ClassID)&' src=images/closed.gif onclick=DivDisplay('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)& ','f& rs(ClassID) &') style=cursor : hand; align=absmiddle>
การตอบสนองเขียน <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& trim(rs(ClassID)) &' onclick=BrowseRight(& trim(rs (ClassID)) &) ondblclick=DivDisplay('c&rs(ClassID)&','&rs(ClassID)&','p&rs(ClassID)&','f& rs(ClassID) &')>& rs(ชื่อคลาส) &</span>
อื่น
การตอบสนองเขียน <li><img id='p& rs(ClassID) &' src=images/nofollow2.gif align=absmiddle />
การตอบสนองเขียน <img src=images/folder.gif align=absmiddle id='f& rs(ClassID) &' /> <span id='s& trim(rs(ClassID)) &' onclick=BrowseRight(& trim(rs (ClassID)) &)>& rs(ชื่อคลาส) &</span>
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้า cint(trim(rs(ClassID)))=cint(trim(rs(lastid))) แล้ว
response.Write <div id='c&rs(ClassID)&' style='display:none;'></div>
อื่น
response.Write <div id='c&rs(ClassID)&' style='display:none;' class=childdiv></div>
สิ้นสุดถ้า
การตอบสนองเขียน </li>&vbcr
rs.movenext
วนซ้ำ
การตอบสนองเขียน </ul>&vbcr
สิ้นสุดถ้า
RS.ปิด
ตั้งค่า rs=nothing
เชื่อมต่อปิด
ตั้งค่าคอน = ไม่มีอะไร
-
</ร่างกาย>
</html>