protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
}
private Random rand = new Random(); [AjaxMethod()]
public DataSet GetSubCategory(int iCategoryID)
{
DataSet ds = new DataSet(); SqlConnection conn =
new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format(
"SELECT CategoryID, CategoryName, FatherID, dbo.IsLeaf(CategoryID) as IsChild FROM Category WHERE FatherID = {0}",
iCategoryID);
SqlDataAdapter da = new SqlDataAdapter(cmd); try
{
da.Fill(ds);
}
catch (SqlException)
{
}
finally
{
conn.Close();
} System.Threading.Thread.Sleep(500 + rand.Next(1000)); return ds;
} [AjaxMethod()]
public DataSet GetDocInfo(int iCategoryID)
{
DataSet ds = new DataSet(); SqlConnection conn =
new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format(
"SELECT id, author, title, convert(varchar(20), writetime, 120) as writetime, url FROM DocInfo WHERE id = {0}", iCategoryID);
SqlDataAdapter da = new SqlDataAdapter(cmd); try
{
da.Fill(ds);
}
catch (SqlException)
{
}
finally
{
conn.Close();
} return ds;
} [AjaxMethod()]
public DataSet GetDocInfoInCategory(int iCategoryID)
{
DataSet ds = new DataSet(); SqlConnection conn =
new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format(
"SELECT CategoryID, CategoryName, FatherID FROM Category WHERE FatherID = {0} AND dbo.IsLeaf(CategoryID) = 1", iCategoryID);
SqlDataAdapter da = new SqlDataAdapter(cmd); try
{
da.Fill(ds);
}
catch (SqlException)
{
}
finally
{
conn.Close();
} return ds;
}已经添加了引用
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
}
private Random rand = new Random(); [AjaxMethod()]
public DataSet GetSubCategory(int iCategoryID)
{
DataSet ds = new DataSet(); SqlConnection conn =
new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format(
"SELECT CategoryID, CategoryName, FatherID, dbo.IsLeaf(CategoryID) as IsChild FROM Category WHERE FatherID = {0}",
iCategoryID);
SqlDataAdapter da = new SqlDataAdapter(cmd); try
{
da.Fill(ds);
}
catch (SqlException)
{
}
finally
{
conn.Close();
} System.Threading.Thread.Sleep(500 + rand.Next(1000)); return ds;
} [AjaxMethod()]
public DataSet GetDocInfo(int iCategoryID)
{
DataSet ds = new DataSet(); SqlConnection conn =
new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format(
"SELECT id, author, title, convert(varchar(20), writetime, 120) as writetime, url FROM DocInfo WHERE id = {0}", iCategoryID);
SqlDataAdapter da = new SqlDataAdapter(cmd); try
{
da.Fill(ds);
}
catch (SqlException)
{
}
finally
{
conn.Close();
} return ds;
} [AjaxMethod()]
public DataSet GetDocInfoInCategory(int iCategoryID)
{
DataSet ds = new DataSet(); SqlConnection conn =
new SqlConnection(ConfigurationSettings.AppSettings["ConnStr"]);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = string.Format(
"SELECT CategoryID, CategoryName, FatherID FROM Category WHERE FatherID = {0} AND dbo.IsLeaf(CategoryID) = 1", iCategoryID);
SqlDataAdapter da = new SqlDataAdapter(cmd); try
{
da.Fill(ds);
}
catch (SqlException)
{
}
finally
{
conn.Close();
} return ds;
}已经添加了引用
{
var li_father = document.getElementById("li_" + iCategoryID);
if (li_father.getElementsByTagName("li").length > 0) //分类已下载
{
ChangeStatus(iCategoryID);
displayDocList(iCategoryID);
return;
}
li_father.className = "Opened";
switchNote(iCategoryID, true);
_Default.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 = document.getElementById("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 = "css/s.gif";
var a = document.createElement("a");
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 = "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);
displayDocList(iCategoryID);
switchNote(iCategoryID, false);
}
function OpenDocument(iCategoryID)
{
var div_docContent = document.getElementById("docContent");
var div_docList = document.getElementById("docList");
div_docContent.style.display = "";
div_docList.style.display = "none";
_Default.GetDocInfo(iCategoryID, GetDocInfo_callback);
}
function GetDocInfo_callback(response)
{
var dr = response.value.Tables[0].Rows[0];
if (dr)
{
var div_title = document.getElementById("title");
var div_author = document.getElementById("author");
var div_writetime = document.getElementById("writetime");
var iFrm = document.getElementById("doc");
div_title.innerHTML = dr.title;
div_author.innerHTML = dr.author;
div_writetime.innerHTML = dr.writetime;
iFrm.src = dr.url;
}
}
function ChangeStatus(iCategoryID)
{
var li_father = document.getElementById("li_" + iCategoryID);
if (li_father.className == "Closed")
{
li_father.className = "Opened";
}
else
{
li_father.className = "Closed";
}
}
function switchNote(iCategoryID, show)
{
var li_father = document.getElementById("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 = "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 = document.getElementById("ul_note_" + iCategoryID);
if (ul)
{
li_father.removeChild(ul);
}
}
}
function displayDocList(iCategoryID)
{
var div_docContent = document.getElementById("docContent");
var div_docList = document.getElementById("docList");
div_docContent.style.display = "none";
div_docList.style.display = "";
div_docList.style.padding = 20;
while (div_docList.childNodes.length > 0)
{
div_docList.removeChild(div_docList.childNodes[0]);
}
var dt = _Default.GetDocInfoInCategory(iCategoryID).value.Tables[0];
if (dt)
{
for (var i = 0;i < dt.Rows.length;i++)
{
var a = document.createElement("a");
a.href = "javascript:OpenDocument(" + dt.Rows[i].CategoryID + ");";
a.innerHTML = "<font color=#1122aa size=2>" + dt.Rows[i].CategoryName + "</font>";
var li = document.createElement("li");
li.appendChild(a);
var div = document.createElement("div");
div.appendChild(li);
div_docList.appendChild(div);
}
}
}
// 加载根节点
var tree = document.getElementById("CategoryTree");
var root = document.createElement("li");
root.id = "li_0";
tree.appendChild(root);
// 加载页面时显示第一级分类
ExpandSubCategory(0);
代码无法成功实现但是当我把AjaxPro.dll(不是AjaxPro.2.dll)换成5.11.4.2时,成功实现!超级郁闷,其他简单的功能用AjaxPro.2.dll都可以实现。谁有关于AjaxPro.2.dll做的无刷新树的代码,发来看下好么[email protected]
谢过!
楼主是.net2.0开发平台?