/// <summary>
/// 目录树
/// </summary>
/// <param name="categoryid">目录ID,传0时,删除目录</param>
/// <param name="questionid">问题ID,传0时,删除问题</param>
/// <param name="gameID">游戏ID</param>
/// <param name="ishavequestion">是不有问题存在</param>
/// <param name="issuance">是否发布</param>
/// <returns></returns>
[AjaxPro.AjaxMethod]
public static string MenuAndQuestionTree(int categoryid,int questionid,int gameID,int ishavequestion,int issuance)
{
//当category==0时,不删除
if (categoryid != 0)
{
BllAccess.GetKbsCategory.DeleteCategory(categoryid);
}
//当questionid==0时,不删除
if (questionid != 0)
{
BllAccess.GetKbsQuestion.DeleteQuestion(questionid);
}
DataTable dtTable = null;
DataTable dtTable1 = null;
DataTable dtTable2 = null;
DataTable dtQuestion = null;
if (-1 == issuance)//知识库,所有的
{
dtTable = BllAccess.GetKbsCategory.GetCategorys(gameID, ENUM_KBS_CategoryIssuance.All);//目录中所有项,
dtTable1 = BllAccess.GetKbsCategory.GetCategorys(gameID, 1, ENUM_KBS_CategoryIssuance.All);//一级目录
dtTable2 = BllAccess.GetKbsCategory.GetCategorys(gameID, 2, ENUM_KBS_CategoryIssuance.All);//二级目录
dtQuestion = BllAccess.GetKbsQuestion.GetQuestions(0, ENUM_KBS_CategoryIssuance.All);//所有问题
}
else //系统自助后台,所有没有发布的
{
dtTable = BllAccess.GetKbsCategory.GetCategorys(gameID, ENUM_KBS_CategoryIssuance.Yes);
dtTable1 = BllAccess.GetKbsCategory.GetCategorys(gameID, 1, ENUM_KBS_CategoryIssuance.Yes);
dtTable2 = BllAccess.GetKbsCategory.GetCategorys(gameID, 2, ENUM_KBS_CategoryIssuance.Yes);
dtQuestion = BllAccess.GetKbsQuestion.GetQuestions(0, ENUM_KBS_CategoryIssuance.All);
}
if (dtTable != null)
{
StringBuilder sb = new StringBuilder();
sb.Append("<div style=\"border:solid 1px red;width:300px;float:left;\">");
sb.Append("<div style=\"text-align:left;margin-left:0px;\"><img src=\"/Images/folder1.gif\" alt=\"menubutton\"><a href=\"#\" onclick=\"$('#bigdiv').toggle();\">" + BllAccess.ConfigService.GetGame(gameID).Game_Name + "</a></div>");
sb.Append("<div id=\"bigdiv\">");
if (dtTable != null)
{
for (int intIndex = 0; intIndex < dtTable1.Rows.Count; intIndex++)
{
string strText = dtTable1.Rows[intIndex][KBS_Category.n_.CategoryName].ToString();
string strValue = dtTable1.Rows[intIndex][KBS_Category.n_.CategoryID].ToString();
sb.Append("<div style=\"text-align:left;margin-left:10px;\"><img src=\"/Images/folder1.gif\" alt=\"menubutton\"><a href=\"#\" onclick=\"GetMenuTreeID(1" + strValue + ",menu1div" + intIndex + ");\">" + strText + "</a></div>");
int tree1CategoryID = int.Parse(dtTable1.Rows[intIndex]["CategoryID"].ToString());
if (dtTable2 != null)
{
sb.Append("<div id=\"menu1div"+intIndex+"\">");
for (int intIndex2 = 0; intIndex2 < dtTable2.Rows.Count; intIndex2++)
{
if (tree1CategoryID == int.Parse(dtTable2.Rows[intIndex2]["ParentCategoryID"].ToString()))
{
string strText2 = dtTable2.Rows[intIndex2][KBS_Category.n_.CategoryName].ToString();
string strValue2 = dtTable2.Rows[intIndex2][KBS_Category.n_.CategoryID].ToString();
//在下面替换
string strSecondMenuTemp = string.Empty;
string strQuestion = string.Empty;
strSecondMenuTemp = "<div style=\"text-align:left;margin-left:20px;\"><img src=\"/Images/folder1.gif\" alt=\"menubutton\"><a href=\"#\" onclick=\"GetMenuTreeID(2" + strValue2 + ",0);\">" + strText2 + "</a></div>";
if (1 == ishavequestion && dtQuestion!=null)//有问题,且dtQuestion不为null时
{
for (int intQuestion = 0; intQuestion < dtQuestion.Rows.Count; intQuestion++)
{
int intLeve2CategoryID = int.Parse(dtTable2.Rows[intIndex2][KBS_Category .n_ .CategoryID].ToString());
if (intLeve2CategoryID == int.Parse(dtQuestion.Rows[intQuestion][KBS_Question.n_.CategoryID].ToString()))
{
//有问题,且dtQuestion不为null时,
strSecondMenuTemp = "<div style=\"text-align:left;margin-left:20px;\"><img src=\"/Images/folder1.gif\" alt=\"menubutton\"><a href=\"#\" onclick=\"GetMenuTreeID(2" + strValue2 + ",divQuestion" + intQuestion + ");\">" + strText2 + "</a></div>";
strQuestion+="<div id=\"divQuestion" + intQuestion + "\" >";
string strTextQuestion = dtQuestion.Rows[intQuestion][KBS_Question.n_.Question].ToString();
string strValueQuestion = dtQuestion.Rows[intQuestion][KBS_Question.n_.QuestionID].ToString();
strQuestion += "<div style=\"text-align:left;margin-left:30px;\"><img src=\"/Images/folder2.gif\" alt=\"menubutton\"><a href=\"#\" onclick=\"GetMenuTreeID(3" + strValueQuestion + ",0);\">" + strTextQuestion + "</a></div>";
strQuestion+="</div>";
}
}
}
sb.Append(strSecondMenuTemp);
sb.Append(strQuestion);
}
}
sb.Append("</div>");
}
}
}
sb.Append("</div>");
sb.Append("</div>");
return sb.ToString();
}
return "";
}
分享到:
相关推荐
开发者可能使用了AjaxControlToolkit,这是一个包含许多预构建AJAX控件的库,可以简化AJAX功能的实现,比如TreeView控件可能就被用来构建目录树。 总之,这个项目展示了如何结合AJAX、Visual Studio 2008和SQL ...
它在Web应用中扮演着目录树控件的角色,允许用户以树形结构展示数据,极大地提高了用户体验。jsTree支持多种操作,如节点的展开、折叠、添加、删除以及拖放功能,使其成为网页开发中的一个强大工具。 ### 主要特点 ...
在IT行业中,构建用户友好的界面是至关重要的,而目录树控件是组织大量信息、提供层次结构导航的常见方式。本项目名为“仿百度百科目录树控件”,旨在为开发者提供一个可自定义的解决方案,使其能够创建类似于百度...
这个“ajax获取嵌套JSON,树形控件显示”的示例主要涉及如何通过Ajax获取嵌套的JSON数据,并将其适配到ZTree的格式,以便在页面上以树形结构展示。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻...
在ASP(Active Server Pages)中,树控件常用于构建导航菜单、目录结构或者层级关系的数据展示。下面我们将深入探讨树控件的概念、ASP中的实现方式以及相关知识点。 树控件,顾名思义,是以树形结构来显示数据的一...
**AjaxTree:无刷新树形控件详解** AjaxTree是一款基于AJAX技术实现的无刷新树形控件,它能够实现在用户交互时无需整个页面刷新,仅更新部分区域的功能,提高了网页应用的用户体验和效率。这个控件通常用于展现层次...
在提供的文件列表中,`nav.ascx`可能是导航栏用户控件,包含目录树的HTML和JavaScript;`copyright.ascx`可能是版权信息;`default.aspx`是网站的首页;`readme.aspx`可能是说明页面;`paging.aspx`涉及分页功能;`...
这个控件允许用户以树状结构浏览数据,通常用于菜单系统、目录结构或组织层次结构的显示。在ASP.NET AJAX中,TreeView控件结合了AJAX技术,提供异步更新功能,提升了用户体验,因为用户无需等待整个页面刷新即可与...
AJAXTool是一款集成了一系列常用AJAX控件的安装程序,旨在简化开发人员在Web应用程序中集成AJAX功能的过程。这个工具通常包含多个JavaScript库、组件和插件,以提升用户体验和交互性。以下是对AJAXTool及其控件的...
在本例中,我们关注的是如何利用Ajax实现一个动态加载的tree树结构,这种结构通常用于展示层级关系的数据,如组织结构、文件目录或者数据库的分类等。 首先,"tree"和"树"在这里指的是用户界面中的树形控件,它以...
XTREE简介: XTREE是一个基于AJAX实现的树形菜单。它的原理就是每次都只加载当前结点下的所有结点,而对开发人员来说,就是只需要按一定的格式,生成一段XML代码。XTREE可以自己定制每个结点的ICON和链接。XTREE是...
ASP.NET提供了多种控件来实现目录树功能,如TreeView控件。TreeView控件可以动态加载数据,并允许自定义节点样式和行为。 2. **数据源**: 生成目录树的第一步是获取文件系统中的目录和文件信息。这通常通过`...
总之,这个实例展示了如何在ASP.NET环境中手工创建一个具有无刷新效果的目录树,涉及到的技术包括:自定义控件开发、Ajax异步通信、JSON或XML数据交换以及C#后端处理。这样的技术组合可以为用户提供更高效、更直观的...
4. **AJAX技术**:为了提高用户体验,树控件通常使用AJAX异步加载数据。当用户展开一个节点时,只请求必要的子节点数据,而不是一次性加载整个树,这降低了页面加载时间。 5. **服务器端编程**:在服务器端,开发者...
**jstree:jQuery的强力目录树插件** 在网页开发中,为了更好地展示层级结构的数据,目录树组件是不可或缺的工具。jstree是一款基于jQuery的开源插件,它提供了一种简单、灵活的方式来创建交互式的目录树结构。这款...
在众多的前端框架和技术中,基于AJAX技术的JavaScript树形控件因其强大的数据展示能力而被广泛应用。这类控件能够有效地展示具有层级结构的数据,并且可以方便地集成到各种Web应用中。 #### 二、无限级树形菜单的...
在Web开发中,树形控件是一种常见的UI元素,用于展示层次结构的数据,如目录结构、组织架构等。DhtmlTreea是一款基于Ajax技术的树形控件,它能够实现实时异步加载数据,提供用户友好的交互体验,无需页面刷新就能...
2. 树形结构构建:使用ASP和HTML,配合treeview控件生成目录树。控件可以通过循环遍历数据库中的目录结构来动态生成节点。每个节点的数据包括其ID、名称和是否可选中等属性。 3. 权限绑定:将用户角色与目录树的...
在IT领域,树形控件是一种常见的用户界面元素,它以层次结构展示数据,使得用户可以轻松地浏览和操作复杂的目录或数据结构。本项目聚焦于利用C#后端技术和jQuery前端库,构建一个功能丰富的、可扩展的、高效的树形...
2. 数据源:EasyUI 树形控件的数据可以通过 JSON 对象或远程数据(如 AJAX)提供。基本的 JSON 数据格式如下: ```json [ { "text": "父节点1", "children": [ { "text": "子节点1.1" }, { "text": "子节点1.2...