模拟树的下拉列表

很多时候,我们希望在下拉列表中显示简单树状的层次结构,在菜单设置、机构设置等场景下这个需求尤为突出。也是基于项目需求的考虑,FineUI增加了模拟树的下拉列表的功能,显示效果如下所示:

注意,这里不仅包含了树状的层次结构,而且包含了可选择项和不可选择项。下面就来看看如何实现这个示例:

   1:  <ext:DropDownList Label="DropDownList" AutoPostBack="false" Required="true" EnableSimulateTree="true"
   2:          ShowRedStar="true" runat="server" ID="ddlBox">
   3:  </ext:DropDownList>

   1:  public class JQueryFeature
   2:  {
   3:      private string _id;
   4:      public string Id
   5:      {
   6:          get { return _id; }
   7:          set { _id = value; }
   8:      }
   9:      
  10:      private string _name;
  11:      public string Name
  12:      {
  13:          get { return _name; }
  14:          set { _name = value; }
  15:      }
  16:   
  17:      private int _level;
  18:      public int Level
  19:      {
  20:          get { return _level; }
  21:          set { _level = value; }
  22:      }
  23:   
  24:      private bool _enableSelect;
  25:      public bool EnableSelect
  26:      {
  27:          get { return _enableSelect; }
  28:          set { _enableSelect = value; }
  29:      }
  30:   
  31:      public JQueryFeature(string id, string name, int level, bool enableSelect)
  32:      {
  33:          _id = id;
  34:          _name = name;
  35:          _level = level;
  36:          _enableSelect = enableSelect;
  37:      }
  38:  }
  39:   
  40:  protected void Page_Load(object sender, EventArgs e)
  41:  {
  42:      if (!IsPostBack)
  43:      {
  44:          List<JQueryFeature> myList = new List<JQueryFeature>();
  45:          myList.Add(new JQueryFeature("0", "jQuery", 0, false));
  46:          myList.Add(new JQueryFeature("1", "核心", 1, false));
  47:          myList.Add(new JQueryFeature("2", "选择符", 1, false));
  48:          myList.Add(new JQueryFeature("3", "基本选择符", 2, true));
  49:          myList.Add(new JQueryFeature("4", "内容选择符", 2, true));
  50:          myList.Add(new JQueryFeature("5", "属性选择符", 2, true));
  51:          myList.Add(new JQueryFeature("6", "筛选", 1, false));
  52:          myList.Add(new JQueryFeature("7", "过滤", 2, true));
  53:          myList.Add(new JQueryFeature("8", "查找", 2, true));
  54:          myList.Add(new JQueryFeature("9", "事件", 1, false));
  55:          myList.Add(new JQueryFeature("10", "页面载入", 2, true));
  56:          myList.Add(new JQueryFeature("11", "事件处理", 2, true));
  57:          myList.Add(new JQueryFeature("12", "事件委托", 2, true));
  58:   
  59:          ddlBox.DataTextField = "Name";
  60:          ddlBox.DataValueField = "Id";
  61:          ddlBox.DataSimulateTreeLevelField = "Level";
  62:          ddlBox.DataEnableSelectField = "EnableSelect";
  63:          ddlBox.DataSource = myList;
  64:          ddlBox.DataBind();
  65:   
  66:          ddlBox.SelectedValue = "3";
  67:      }
  68:  }

除了正常数据绑定中常见的DataTextField、DataValueField、DataSource、DataEnableSelectField属性外,还多了另外一个属性:

  1. DataSimulateTreeLevelField:模拟树显示时指示所在层次的数据字段。

开发人员只需要简单地多计算一个字段,剩下页面上的渲染工作就全部交给FineUI完成了,是不是很方便。

FineUI模拟树下拉列表的更多相关文章

  1. FineUI第八天----下拉列表控件

    下拉列表控件 3.模拟树的下拉列表: 其他的控件都跟Asp.net的差不多.

  2. hdoj--1556--Color the ball(模拟&&树状数组)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  3. [BZOJ2164]采矿【模拟+树链剖分+线段树】

    Online Judge:Bzoj2164 Label:模拟,树链剖分,线段树 题目描述 浩浩荡荡的cg大军发现了一座矿产资源极其丰富的城市,他们打算在这座城市实施新的采矿战略.这个城市可以看成一棵有 ...

  4. Java实现蓝桥杯模拟树的叶结点数量

    问题描述 一棵包含有2019个结点的树,最多包含多少个叶结点? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. ...

  5. 2018.11.03 NOIP模拟 树(长链剖分优化dp)

    传送门 考虑直接推式子不用优化怎么做. 显然每一个二进制位分开计算贡献就行. 即记录fi,jf_{i,j}fi,j​表示距离iii这个点不超过jjj的点的每个二进制位的0/10/10/1个数. 但直接 ...

  6. 「CodePlus 2017 12 月赛」火锅盛宴(模拟+树状数组)

    1A,拿来练手的好题 用一个优先队列按煮熟时间从小到大排序,被煮熟了就弹出来. 用n个vector维护每种食物的煮熟时间,显然是有序的. 用树状数组维护每种煮熟食物的数量. 每次操作前把优先队列里煮熟 ...

  7. [CSP-S模拟测试]:Rectangle(模拟+树状数组)

    题目描述 平面上有$n$个点,第$i$个点的坐标为$X_i,Y_i$.对于其中的一个非空点集$S$,定义$f(S)$为一个最小矩形,满足:$\bullet$覆盖$S$中所有的点(在边界上也算覆盖):$ ...

  8. NOIP模拟 - 树

    题目描述 给出一张n个点,m条边的无向图,摧毁每条边都需要一定的体力,并且花费的体力值各不相同,给定图中两个点x,y(x≠y),每当(x,y)之间存在路径,就需要不断摧毁当前图中花费体力最少的一条边, ...

  9. fineui 模拟右下角弹窗

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

随机推荐

  1. 学习okhttp wiki--HTTPS

    HTTPS OkHttp尝试平衡两个相互竞争的要素: 连通性(Connectivity):连接到尽可能多的服务器.这包括运行最新版本 boringssl 的服务器和不太过时的老版本 OpenSSL 的 ...

  2. iOS调节系统音量

    目录[-] 使用MPVolumeView 编程实现系统音量调节2 通过MPVolumeSlider的实例来操作系统音量 有问题!我不喜欢系统弹出音量提示 还有问题,我修改了系统音量但是不是通过我的UI ...

  3. Struts2 的国际化实现

    以前一直看见 i18N ,现在才知道原来 i18N 就是 Internationalization,因为以 i 开头,以 N 结尾,共18个字母,也就是国际化的意思.在百度搜索主页上没有看见中英文的切 ...

  4. Oracle—用户管理的备份(一)

    用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...

  5. jQuery实现的全选、反选和不选功能

    适用于网页多选后需要进行批量操作的场景(如批量删除等).如有问题希望大家可以指正.谢谢~~ HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮 ...

  6. unexpected problem

    一个比较有趣的字符串问题,问题描述如下 大体意思就是给定一个字符串s以及一个整数m,找出一个能满足以上三个条件的字符串t的个数对10e9 + 7 取余输出. 第二三条是关键,t.s = s.t 举个例 ...

  7. Android从相册读取图片

    Uri originalUri = data.getData();        //获得图片的uri  bm = MediaStore.Images.Media.getBitmap(resolver ...

  8. hdu Free DIY Tour

    http://acm.hdu.edu.cn/showproblem.php?pid=1224 #include <cstdio> #include <cstring> #inc ...

  9. RazorPad中的ModelProvider

    在RazorPad的右侧 我们可以提供模型的结构,Json数据结构体 当提供多个的时候 是Json中的数组 [{     Name: "NI" }, {     Name: &qu ...

  10. Android之ExpandableListView的属性(Group不展开)

    1. 设置ExpandableListView 默认是展开的:  先实例化exListView 然后 exListView.setAdapter(exlvAdapter); //遍历所有group,将 ...