亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Ajax實現無刷新樹

2019-11-18 16:37:21
字體:
來源:轉載
供稿:網友

1.建立一個aspx頁面
html代碼
<html xmlns="<head id="Head1" runat="server">
    <title>小山</title>
    <link type="text/
CSS" href="../../Styles/tree_css/tree.css" rel="stylesheet">
</head>
<body>
    <form id="Form1" runat="server">
    <table width=100% cellpadding=0 cellspacing=0 border=0>
        <colgroup>
            <col width=180 />
            <col />
        </colgroup>
        <tr>
            <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>
    </table>   
                           
            <script language="jscript">
            function el(id)
            {
                return document.getElementById(id);               
            }
            function ExpandSubCategory(iCategoryID)
            {
                var li_father = el("li_" + iCategoryID);
                if (li_father.getElementsByTagName("li").length > 0) //分類已下載
                {
                    ChangeStatus(iCategoryID);
                    return;
                }
               
                li_father.className = "Opened";
               
                switchNote(iCategoryID, true);
                AjaxMethod.GetSubCategory(iCategoryID, GetSubCategory_callback);               
            }

            function GetSubCategory_callback(response)
            {
                var dt = response.value.Tables[0];
                if (dt.Rows.length > 0)
                {
                    var iCategoryID = dt.Rows[0].FatherID;
                }
                var li_father = el("li_" + iCategoryID);
                var ul = document.createElement("ul");
                for (var i = 0;i < dt.Rows.length;i++)
                {
                    if (dt.Rows[i].IsChild == 1) //葉子節點
                    {
                        var li = document.createElement("li");
                        li.className = "Child";
                        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");
                        var id = dt.Rows[i].CategoryID;
                        a.onmouSEOver = function()
                        {
                            PReviewImage(id);
                        };
                        a.href = "javascript:OpenDocument('" + dt.Rows[i].CategoryID + "');";
                        a.innerHTML = dt.Rows[i].CategoryName;
                    }
                    else
                    {
                        var li = document.createElement("li");
                        li.className = "Closed";
                        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 = function () {
                            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);
            }
           
            // 葉子節點的單擊響應函數
            function OpenDocument(iCategoryID)
            {
                // 預加載信息
                PreloadFormUrl(iCategoryID);
            }
           
            function PreviewImage(iCategoryID)
            {
               
            }

            function ChangeStatus(iCategoryID)
            {
                var li_father = el("li_" + iCategoryID);
                if (li_father.className == "Closed")
                {
                    li_father.className = "Opened";
                }
                else
                {
                    li_father.className = "Closed";
                }               
            }

            function switchNote(iCategoryID, show)
            {
                var li_father = el("li_" + iCategoryID);
                if (show)
                {
                    var ul = document.createElement("ul");
                    ul.id = "ul_note_" + iCategoryID;
                   
                    var note = document.createElement("li");
                    note.className = "Child";
                   
                    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);
                }
                else
                {
                    var ul = el("ul_note_" + iCategoryID);
                    if (ul)
                    {
                        li_father.removeChild(ul);
                    }               
                }
            }

            // 加載根節點
            var tree = el("CategoryTree");
            var root = document.createElement("li");
            root.id = "li_0";
            tree.appendChild(root);
           
            // 加載頁面時顯示第一級分類
            ExpandSubCategory(0);
           
            function PreloadFormUrl(iCategoryID)
            {
                // 采用同步調用的方式獲取圖片的信息               
                var ds = AjaxMethod.GetFormsList(iCategoryID).value;
                // 如果返回了結果
                if (ds)
                {
                    // 判斷數據表是否不為空
                    if (ds.Tables[0].Rows.length > 0)
                    {
                        // 返回的信息數據表
                        dt = ds.Tables[0];
                        el("furl").src = dt.Rows[0].FormUrl;                                   
                    }
                    else // 分類下沒有
                    {                       
                    }
                }               
            }
            </script>           
    </form>
</body>
</html>2.cs代碼
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using AjaxPro;

public partial class Pages_Home_HomePage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Utility.RegisterTypeForAjax(typeof(AjaxMethod));
    }
}3.建立一個tree.css的css樣式
a
{}{
    text-decoration:none;
}
a,a:visited
{}{
    color:#000;
    background:inherit;
}
body
{}{
    margin:0;
    padding:20px;
    font:12px tahoma,宋體,sans-serif;
}
dt
{}{
    font-size:22px;
    font-weight:bold;
    margin:0 0 0 15px;
}
dd
{}{
    margin:0 0 0 15px;
}
h4
{}{
    margin:0;
    padding:0;
    font-size:18px;
    text-align:center;
}
p
{}{
    margin:0;
    padding:0 0 0 18px;
}
p a,p a:visited
{}{
    color:#00f;
    background:inherit;
}

.TreeMenu img.s
{}{
    cursor:hand;
    vertical-align:middle;
}
.TreeMenu ul
{}{
    padding:0;
}
.TreeMenu li
{}{
    list-style:none;
    padding:0;
}
.Closed ul
{}{
    display:none;
}
.Child img.s
{}{
    background:none;
    cursor:default;
}

#CategoryTree ul
{}{
    margin:0 0 0 17px;
}
#CategoryTree img.s
{}{
    width:34px;
    height:18px;
}
#CategoryTree .Opened img.s
{}{
    background:url(skin3/opened.gif) no-repeat 0 1px;
}
#CategoryTree .Closed img.s
{}{
    background:url(skin3/closed.gif) no-repeat 0 1px;
}
#CategoryTree .Child img.s
{}{
    background:url(skin3/child.gif) no-repeat 13px 2px;
}

#CategoryTree
{}{
    float:left;
    width:249px;
    border:1px solid #99BEEF;
    background:#D2E4FC;
    color:inherit;
    margin:3px;
    padding:3px;
    height:600px;
}
4.建立一個類AjaxMethod
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using AjaxPro;

/**//// <summary>
/// Summary description for AjaxMethod
/// </summary>
public class AjaxMethod
{}{
    public AjaxMethod()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    [AjaxMethod(HttpsessionStateRequirement.ReadWrite)]
    public static DataSet GetSubCategory(int iCategoryID)
    {}{
        string sql = string.Format("SELECT CategoryID, CategoryName, FatherID, dbo.IsLeaf(CategoryID) as IsChild FROM Category WHERE FatherID = {0}", iCategoryID);
        return GetDataSet(sql);
    }

    [AjaxMethod(HttpSessionStateRequirement.ReadWrite)]
    public static DataSet GetFormsList(int iCategoryID)
    {}{
        string sql = string.Format("SELECT * FROM forms WHERE form_category_id = {0}", iCategoryID);
        return GetDataSet(sql);
    }
public static string ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"].ToString();

        public static DataSet GetDataSet(string sql)
        {}{
            SqlDataAdapter sda = new SqlDataAdapter(sql, ConnectionString);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            if (ds != null)
                return ds;
            else
                return null;
        }
}5.sql腳本
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Category]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Category]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Forms]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Forms]
GO

CREATE TABLE [dbo].[Category] (
    [CategoryID] [int] IDENTITY (1, 1) NOT NULL ,
    [CategoryName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [FatherID] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Forms] (
    [FormID] [int] IDENTITY (1, 1) NOT NULL ,
    [FormName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [FormUrl] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Form_category_id] [int] NULL ,
    [target] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE FUNCTION IsLeaf (@cat_id int) 
RETURNS int AS 
BEGIN

declare @count int
select @count = (select count(*) from Category where FatherID=@cat_id)
if (@count=0)
return 1
return 0

END


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影中文 亚洲精品乱码| 韩国19禁主播vip福利视频| 精品偷拍一区二区三区在线看| 色婷婷av一区二区三区久久| 精品一区二区三区四区在线| 亚洲精品中文字幕av| 欧美日韩第一视频| 亚洲国产成人在线播放| 热99精品里视频精品| 久久手机免费视频| 日韩欧美aⅴ综合网站发布| 成人写真福利网| 精品亚洲一区二区三区在线播放| 富二代精品短视频| 久久久久久久久久久亚洲| 91精品久久久久久久久| 色在人av网站天堂精品| 欧美黄色片在线观看| 国产精品日韩av| 欧美一级大片视频| 91性高湖久久久久久久久_久久99| 国产精品第一第二| 亚洲美女av电影| 久久久精品久久| 精品久久香蕉国产线看观看亚洲| 亚洲欧美日韩综合| 久久久久久久一区二区三区| 久久久999成人| 日本不卡免费高清视频| 国产在线观看精品一区二区三区| 国产欧美一区二区| 日韩**中文字幕毛片| 97久久伊人激情网| 成人福利网站在线观看11| 日韩成人在线视频网站| 26uuu久久噜噜噜噜| 日韩在线观看网站| 国产精品久久久久久久久男| 亚洲无线码在线一区观看| 日韩精品久久久久久福利| 亚州欧美日韩中文视频| 欧美日韩国产123| 精品视频久久久久久久| 日韩成人在线网站| 91av在线影院| 成人一区二区电影| 国产精品香蕉国产| 最近中文字幕mv在线一区二区三区四区| 在线电影欧美日韩一区二区私密| 国产精品人人做人人爽| 92裸体在线视频网站| 国产精品久久综合av爱欲tv| 色香阁99久久精品久久久| 青青精品视频播放| 国精产品一区一区三区有限在线| 中文字幕精品在线视频| 久久精品国产久精国产一老狼| 中文字幕亚洲无线码在线一区| 日韩av在线影院| 亚洲国产成人爱av在线播放| 69**夜色精品国产69乱| 国产成人一区二区在线| 久久免费成人精品视频| 国产精品久久久久久一区二区| 欧美午夜久久久| 欧美日韩亚洲精品一区二区三区| 国产精品96久久久久久| 久久久国产精品x99av| 91在线高清视频| 亚洲视频欧美视频| 日韩欧美精品免费在线| 日韩av在线网| 日韩在线观看视频免费| 98精品国产高清在线xxxx天堂| 亚洲另类欧美自拍| 久久免费视频这里只有精品| 国产精品久久久久久久av电影| 久久九九热免费视频| 一区二区三区视频免费在线观看| 久久久久久久久久亚洲| 伊人久久久久久久久久久久久| 久久人体大胆视频| 91久久嫩草影院一区二区| 日韩在线视频观看正片免费网站| 亚洲人成欧美中文字幕| 成人福利网站在线观看11| 国内外成人免费激情在线视频网站| 国产日韩中文在线| 日韩国产一区三区| 欧美黑人性视频| 欧美成人免费va影院高清| 另类色图亚洲色图| 欧美视频在线观看 亚洲欧| 日韩精品极品在线观看播放免费视频| 亚洲国产成人精品久久| 日韩av不卡在线| 午夜精品福利视频| 国产精品7m视频| 久久99久久久久久久噜噜| 亚洲最大中文字幕| www亚洲精品| 亚洲国产黄色片| 色无极影院亚洲| 91极品女神在线| 中文字幕视频在线免费欧美日韩综合在线看| 欧美午夜精品久久久久久久| 久久激情视频久久| 欧美精品久久久久久久久久| 国产成人aa精品一区在线播放| 日韩电影中文字幕| 日韩精品免费在线观看| 亚洲欧洲激情在线| 久久精品国产久精国产一老狼| 97国产精品久久| 日韩av电影手机在线观看| 国内免费久久久久久久久久久| 欧美一区二区三区免费视| 亚洲一区av在线播放| 久久人人爽人人爽人人片亚洲| 亚洲国产精品99| 亚洲色图50p| 一区二区亚洲精品国产| 日韩精品视频在线观看网址| 成人激情视频在线| 久久久免费精品视频| 538国产精品一区二区在线| 亚洲黄色在线观看| 欧美精品久久久久久久久久| 色综合久久精品亚洲国产| 欧美天天综合色影久久精品| 国产精品久久久久久久久久久久久| 欧美成人小视频| 91中文在线视频| 亚洲人成在线观看网站高清| 亚洲精品中文字幕有码专区| 热门国产精品亚洲第一区在线| 成人激情视频小说免费下载| 一本色道久久综合狠狠躁篇怎么玩| 一本色道久久88精品综合| 日韩精品中文字幕在线播放| 日韩一区在线视频| 久久久国产精品一区| 宅男66日本亚洲欧美视频| 亚洲理论片在线观看| 国产精品久久久久国产a级| 成人性生交大片免费看视频直播| 欧美大片在线看| 亚洲国产精品久久| 成人观看高清在线观看免费| 亚洲深夜福利在线| 国产在线一区二区三区| 国产一区二区三区在线免费观看| 久久人人爽人人爽人人片亚洲| 日韩精品一二三四区| 91沈先生作品| 国产日韩欧美在线看| 91免费视频国产| 亚洲一区二区三区乱码aⅴ| 亚洲一区二区三区xxx视频| 日韩av大片免费看| 亚洲a成v人在线观看| 国产成人一区二区在线| 欧美日韩亚洲一区二区三区| 国内精品模特av私拍在线观看|