1.المنتجات aspx 面
أتش تي أم أل 码
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head id="Head1" runat="الخادم">
<العنوان>العنوان</العنوان>
<link type="text/css" href="../../Styles/tree_css/tree.css" rel="stylesheet">
</الرأس>
<الجسم>
<form id="Form1" runat="server">
<عرض الجدول=100% حشوة الخلية=0 تباعد الخلايا=0 حد=0>
<كولجروب>
<عرض العمود=180 />
<الكول />
</colgroup>
<تر>
<TD>
<div class="TreeMenu" id="CategoryTree" style="width: 100%; height: 489px">
</div>
</TD>
<TD>
<iframe id=furl height=20 style="height: 497px; width: 100%;"></iframe>
</TD>
</tr>
</الجدول>
<لغة البرمجة = "jscript">
الدالة (المعرف)
{
إرجاع document.getElementById(id);
}
الدالة ExpandSubCategory(iCategoryID)
{
var li_father = el("li_" + iCategoryID);
إذا (li_father.getElementsByTagName("li").length > 0) //分类已下载
{
ChangeStatus(iCategoryID);
يعود؛
}
li_father.className = "مفتوح";
SwitchNote(iCategoryID, true);
AjaxMethod.GetSubCategory(iCategoryID, GetSubCategory_callback);
}
الدالة GetSubCategory_callback(response)
{
var dt = Response.value.Tables[0];
إذا (dt.Rows.length > 0)
{
var iCategoryID = dt.Rows[0].FatherID;
}
var li_father = el("li_" + iCategoryID);
var ul = document.createElement("ul");
لـ (var i = 0;i < dt.Rows.length;i++)
{
إذا (dt.Rows[i].IsChild == 1) //叶子节点
{
var li = document.createElement("li");
li.className = "الطفل";
li.id = "li_" + dt.Rows[i].CategoryID;
var img = document.createElement("img");
img.id = dt.Rows[i].CategoryID;
img.className = "s";
img.src = "../../Styles/tree_css/s.gif";
var a = document.createElement("a");
معرف فار = dt.Rows[i].CategoryID;
a.onmouseover = الدالة()
{
PreviewImage(id);
};
a.href = "javascript:OpenDocument('" + dt.Rows[i].CategoryID + "');";
a.innerHTML = dt.Rows[i].CategoryName;
}
آخر
{
var li = document.createElement("li");
li.className = "مغلق";
li.id = "li_" + dt.Rows[i].CategoryID;
var img = document.createElement("img");
img.id = dt.Rows[i].CategoryID;
img.className = "s";
img.src = "../../Styles/tree_css/s.gif";
img.onclick = الوظيفة () {
ExpandSubCategory(this.id);
};
img.alt = "المصدر/المصدر";
var a = document.createElement("a");
a.href = "javascript:ExpandSubCategory(" +
dt.Rows[i].CategoryID + ");";
a.innerHTML = dt.Rows[i].CategoryName;
}
li.appendChild(img);
li.appendChild(a);
ul.appendChild(li);
}
li_father.appendChild(ul);
SwitchNote(iCategoryID, false);
}
// إنشاء قاعدة البيانات
وظيفة OpenDocument(iCategoryID)
{
// 预加载信息
PreloadFormUrl(iCategoryID);
}
وظيفة PreviewImage(iCategoryID)
{
}
الدالة ChangeStatus(iCategoryID)
{
var li_father = el("li_" + iCategoryID);
إذا (li_father.className == "مغلق")
{
li_father.className = "مفتوح";
}
آخر
{
li_father.className = "مغلق";
}
}
وظيفة SwitchNote(iCategoryID, show)
{
var li_father = el("li_" + iCategoryID);
إذا (إظهار)
{
var ul = document.createElement("ul");
ul.id = "ul_note_" + iCategoryID;
var note = document.createElement("li");
note.className = "الطفل";
var img = document.createElement("img");
img.className = "s";
img.src = "../../Styles/tree_css/s.gif";
var a = document.createElement("a");
a.href = "javascript:void(0);";
a.innerHTML = "الصفحة الرئيسية";
note.appendChild(img);
note.appendChild(a);
ul.appendChild(note);
li_father.appendChild(ul);
}
آخر
{
var ul = el("ul_note_" + iCategoryID);
إذا (أول)
{
li_father.removeChild(ul);
}
}
}
// 加载根节点
var Tree = el("CategoryTree");
var root = document.createElement("li");
root.id = "li_0";
Tree.appendChild(root);
// 加载页面时显示第一级分类
ExpandSubCategory(0);
الدالة PreloadFormUrl(iCategoryID)
{
// تحديد موعد التسليم النهائي
var ds = AjaxMethod.GetFormsList(iCategoryID).value;
// 如果返回了结果
إذا (س)
{
// إنشاء قاعدة بيانات جديدة
إذا (ds.Tables[0].Rows.length > 0)
{
// 返回的信息数据表
dt = ds.Tables[0];
el("furl").src = dt.Rows[0].FormUrl;
}
else // 分类下没有
{
}
}
}
</script>
</النموذج>
</الجسم>
</html>2.cs
باستخدام النظام؛
باستخدام System.Data؛
باستخدام System.Configuration؛
باستخدام System.Collections؛
باستخدام System.Web؛
باستخدام System.Web.Security؛
باستخدام System.Web.UI؛
باستخدام System.Web.UI.WebControls؛
باستخدام System.Web.UI.WebControls.WebParts؛
باستخدام System.Web.UI.HtmlControls؛
باستخدام أجاكس برو؛
Pages_Home_HomePage للفئة الجزئية العامة: System.Web.UI.Page
{
Page_Load باطلة محمية (مرسل الكائن، EventArgs e)
{
Utility.RegisterTypeForAjax(typeof(AjaxMethod));
}
}3.استخدم شجرة Tree.css.css
أ
{}{
زخرفة النص: لا شيء؛
}
أ،أ: زار
{}{
اللون: #000؛
الخلفية: وراثة؛
}
جسم
{}{
الهامش:0;
الحشو: 20 بكسل؛
الخط: 12 بكسل تاهوما، 宋体، بلا الرقيق؛
}
dt
{}{
حجم الخط: 22 بكسل؛
وزن الخط: غامق؛
الهامش: 0 0 15 بكسل؛
}
د
{}{
الهامش: 0 0 15 بكسل؛
}
h4
{}{
الهامش:0;
الحشو: 0؛
حجم الخط: 18 بكسل؛
محاذاة النص:مركز؛
}
ص
{}{
الهامش:0;
الحشو: 0 0 18 بكسل؛
}
با، با: زار
{}{
اللون: #00f؛
الخلفية: وراثة؛
}
.TreeMenu img.s
{}{
المؤشر:اليد؛
محاذاة عمودية: وسط؛
}
.TreeMenu ماي
{}{
الحشو: 0؛
}
.TreeMenu لى
{}{
نمط القائمة: لا شيء؛
الحشو: 0؛
}
.مغلق
{}{
العرض: لا شيء؛
}
.الطفل img.s
{}{
الخلفية: لا شيء؛
المؤشر:افتراضي؛
}
#CategoryTree ul
{}{
الهامش: 0 0 17 بكسل؛
}
#CategoryTree img.s
{}{
العرض: 34 بكسل؛
الارتفاع: 18 بكسل؛
}
#CategoryTree .تم فتحه img.s
{}{
الخلفية: url(skin3/opened.gif) بدون تكرار 0 1px;
}
#CategoryTree .Closed img.s
{}{
الخلفية: url(skin3/ Closed.gif) بدون تكرار 0 1px;
}
#CategoryTree .Child img.s
{}{
الخلفية: url(skin3/child.gif) بدون تكرار 13px 2px;
}
#CategoryTree
{}{
تعويم: يسار؛
العرض: 249 بكسل؛
الحدود: 1 بكسل صلب #99BEEF؛
الخلفية: #D2E4FC؛
اللون: يرث؛
الهامش: 3 بكسل؛
الحشو: 3 بكسل؛
الارتفاع: 600 بكسل؛
}
4. طريقة أياكس
باستخدام النظام؛
باستخدام System.Data؛
باستخدام System.Data.SqlClient؛
باستخدام System.Configuration؛
باستخدام System.Web؛
باستخدام System.Web.Security؛
باستخدام System.Web.UI؛
باستخدام System.Web.UI.WebControls؛
باستخدام System.Web.UI.WebControls.WebParts؛
باستخدام System.Web.UI.HtmlControls؛
باستخدام أجاكس برو؛
/**//// <الملخص>
/// وصف ملخص لـ AjaxMethod
/// </الملخص>
طريقة Ajax للطبقة العامة
{}{
طريقة أجاكس العامة ()
{
//
// TODO: أضف منطق المنشئ هنا
//
}
[AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
مجموعة البيانات الثابتة العامة GetSubCategory(int iCategoryID)
{}{
string sql = string.Format("SELECT CategoryID, CategoryName, FatherID, dbo.IsLeaf(CategoryID) as IsChild FROM Category WHERE FatherID = {0}", iCategoryID);
إرجاع GetDataSet(sql);
}
[AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
مجموعة البيانات الثابتة العامة GetFormsList(int iCategoryID)
{}{
string sql = string.Format("SELECT * FROM Forms WHERE form_category_id = {0}"، iCategoryID)؛
إرجاع GetDataSet(sql);
}
سلسلة ثابتة عامة ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"].ToString();
مجموعة البيانات الثابتة العامة GetDataSet (سلسلة SQL)
{}{
SqlDataAdapter sda = new SqlDataAdapter(sql, ConnectionString);
DataSet ds = new DataSet();
sda.Fill(ds);
إذا (دس != فارغة)
عودة س.
آخر
عودة فارغة؛
}
}5.sql
إذا كان موجودًا (اختر * من dbo.sysobjects حيث id = object_id(N'[dbo].[الفئة]') وOBJECTPROPERTY(id, N'IsUserTable') = 1)
جدول الإسقاط [dbo].[الفئة]
انتقل
إذا كان موجودًا (اختر * من dbo.sysobjects حيث id = object_id(N'[dbo].[Forms]') وOBJECTPROPERTY(id, N'IsUserTable') = 1)
إسقاط الجدول [dbo].[نماذج]
انتقل إلى
إنشاء جدول [dbo].[الفئة] (
[CategoryID] [int] الهوية (1، 1) ليست فارغة،
[اسم الفئة] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL،
[معرف الأب] [كثافة العمليات] فارغة
) تشغيل [الابتدائي]
انتقل إلى
إنشاء جدول [dbo].[النماذج] (
[FormID] [int] الهوية (1، 1) ليست فارغة،
[اسم النموذج] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL،
[FormUrl] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Form_category_id] [int] NULL ,
[الهدف] [شار] (10) COLLATE Chinese_PRC_CI_AS NULL
) تشغيل [الابتدائي]
يذهب
إنشاء وظيفة IsLeaf (@cat_id int)
إرجاع كثافة العمليات AS
ابدأ
بإعلان @count int
حدد @count = (اختر count(*) من الفئة حيث معرف الأب=@cat_id )
إذا (@العدد=0)
العودة 1
العودة 0
النهاية