博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后台管理的第一个页面,实现了一个多级菜单的下拉列表控件
阅读量:5102 次
发布时间:2019-06-13

本文共 1217 字,大约阅读时间需要 4 分钟。

今天下午算是写了第一个自定义控件。

因为部门表存在无限级的可能。因此如何在页面中较好的呈现就出现了很大的问题。

下面是部门表

---部门,可以无限级别嵌套--

Create Table Departments

(

    DepartmentId int identity primary key,

    DepartmentName nvarchar(50) not null,

    DepartmentNumber nvarchar(50) not null default '',

    UpDepartmentId int not null default 0,

    DepartmentDepth    int not null default 1    ,

    --0-超管 1-院系,2-行政,3-实训中心.

    DepartmentType tinyint not null default 1,

        --激活状态, 0-false ,1-yes

    Status tinyint default 1,

    

    --权限字符串,值为SPMRight表中的id用,隔开

    RightValue nvarchar(max)

)

 

我希望在一页能够尽可能多的显示有效信息。因此如下设计界面

上面的添加部门是用的FormView,下面的部门列表是GridView

GridView的数据源来自ObjectDataSource,其方法为GetAll(),没有经过投影.

(或许我应该为这里单独写一个BLL的方法,否则太增加表现层负担)

 

  • 部门列表

由于上级部门的字段是int型的。可是页面中显然应该显示的是部门名称。于是考虑上级部门改成TemplateField,代码隐藏页中编写RowDataBound事件的处理方法

 

同样的办法处理部门状态列和操作列, aspx页面代码如下

(晕死,word写的Blog,实在不好弄代码)

代码页的代码如下

这里的73行以后都是为了实现操作列中的命令。

78行:寻找自定义控件

79行:给该控件的Type赋值,99表示选择所有的部门。

80,行:赋值,在赋值中,实现了下拉列表中对应项被Seleted的效果

79和80行的语句顺序不能颠倒。

  • 增加部门

 

这个实际上是用的Ajax。上级部门默认的死一级部门。

我希望在列表中,如果点击添加子部门的话,这里的上级部门会自动变成对应的部门。

这个逻辑在73行到84行实现。那个DepartmentDropDownList是自定义控件。

这里的添加部门使用的是FormView,本来想不用FormView,但是由于在UpdatePanel中,Button的Click事件被消除了。

所以只好用FormView的ItemInserting事件。

代码隐藏页代码:

 

  • 自定义控件代码(续)

转载于:https://www.cnblogs.com/willstier/archive/2013/06/05/3118194.html

你可能感兴趣的文章
秒杀9种排序算法(JavaScript版)
查看>>
素数判断BFS之“Prime Path”
查看>>
Activiti入门 -- 环境搭建和核心API简介
查看>>
struts.convention.classes.reload配置为true,tomcat启动报错
查看>>
MySQL的并行复制多线程复制MTS(Multi-Threaded Slaves)
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
MySQL更改默认的数据文档存储目录
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
Java 多态 虚方法
查看>>
Unity之fragment shader中如何获得视口空间中的坐标
查看>>
万能的SQLHelper帮助类
查看>>
uboot分析:uboot的启动过程分析
查看>>
tmux的简单快捷键
查看>>
springboot笔记04——读取配置文件+使用slf4j日志
查看>>
[Swift]LeetCode653. 两数之和 IV - 输入 BST | Two Sum IV - Input is a BST
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
Html5 离线页面缓存
查看>>
[php]在PHP中读取和写入WORD文档的代码
查看>>
WCF傻瓜模式写程序
查看>>