ASP.NET 树结构及权限树的设计
1.树形结构的设计
在开发ASP.NET的项目中,有许多项目用到的树形结构,其中有些树形结构相对复杂,也有简单的,但无论是简单的树形结构还是复杂的树形结构,有着好的结构对于性能和稳定性都有着很大的作用。比如你的树结构的数据很大,如果是采用比较死的方式一次性加载进来那么你在加载这棵树的时候就是相当的耗时了,性能就大大的打了折扣。
我在设计这棵树时首先加载的是一级的节点,即想要显示的最外层的节点,然后通过点击展开节点的事件去加载其子节点,即可以根据用户的需要才去加载相关的子节点;可能在节点中我们可能会在节点中设计节点的右键菜单,比如“刷新”节点的菜单等,所以刷新也是重新加载节点的一个过程,下面将分别通过图示和简单的例子去讲解。
下面将以一颗商品的树来简单讲解,比如商品有着电器、文具、食品等类型。
1) 页面代码:
<asp:TreeView ID="treeView" runat="server" ShowLines="true" EnableClientScript="false" Height="100%" OnTreeNodeExpanded="treeNodeExpanded">
<Nodes>
<asp:TreeNode Text="商品" Value="sp01" Expanded="true" ImageUrl="节点图片" NavigateUrl="点击节点的连接地址"></asp:TreeNode> </Nodes>
</asp:TreeView>
2) 后台代码:
l 初始化节点
if (!IsPostBack)
{
InitTreeView();
}
private void InitTreeView()
{
AddCollectNode(treeView.Nodes[0]); //即给“商品”添加子节点
}
l 添加节点
private void AddCollectNode(TreeNode baseNode)
{
//清空父节点下的所有子节点
baseNode.ChildNodes.Clear();
//获取父节点的子节点集合
。。。。。。
//判断子节点集合数是否大于零,即是否存在子节点
。。。。。
//如果存在子节点,
相关文档:
MVC(即模型-视图-控制器)
MVC(Model-View-Controller)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),
视图(View)和控制器(Controller)
MVC的优点:
1多个视图对应一个模型的能力
......
// 按模版比例生成缩略图(以流的方式获取源文件)
//生成缩略图函数
//顺序参数:源图文件流、缩略图存放地址、模版宽、模版高
//注:缩略图大小控制在模版区域内
public static void MakeSmallImg(System.IO.Stream fromFileStream,string fileSaveUrl,System.Double templateWidth,System.Double templateHeight)
{ ......
默认情况下,ASP.NET 网站导航使用一个名为 Web.sitemap 的 XML 文件,该文件描述网站的层次结构。但是,您可能要使用多个站点地图文件或站点地图提供程序来描述整个网站的导航结构。
例如,您可以具有引用子站点地图的主站点地图。主站点地图可以是:
<?xml version="1.0" encoding ......
//2007年4月24日
this.TextBox6.Text = System.DateTime.Now.ToString("D");
//2007-4-24
this.TextBox7.Text = System.DateTime.Now.ToString("d");
//2007年4月24日 16:30:15
this. ......