7,下拉菜单(带 checkbox 的多选)

-----后台

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    public string GetzNodes()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("<script>");
        sb.Append("var zNodes =[");
        //*****************************************加入遍历代码
        for (int i = 0; i < 100; i++)
        {
            if (i > 50)
            {
                sb.Append(SetParametes(i.ToString(), "1", "b"));
            }
            else
            sb.Append(SetParametes(i.ToString(), "-1", "a"));
        }
        //********************************************************
        sb.Append("];");
        sb.Append("</script>");
        return sb.ToString();
    }
    /// <summary>
    /// 设置节点
    /// </summary>
    /// <param name="id">id</param>
    /// <param name="pid">父级id</param>
    /// <param name="name">名称</param>
    /// <param name="open">是否展开?</param>
    /// <returns>返回节点</returns>
    private string SetParametes(string id, string pid, string name,bool open=false)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("{");
        sb.AppendFormat("id:{0},",id);
        sb.AppendFormat("pId:{0},",pid);
        if (open)
        {
            sb.AppendFormat("name:\"{0}\",", name);
            sb.Append("open: true");
        }
        else
        {
            sb.AppendFormat("name:\"{0}\"", name);
        }
        sb.Append("},");
        return sb.ToString();
    }
}

-----前台

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="../css/demo_new.css" rel="stylesheet" type="text/css" />
    <link href="../css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
    <script src="../js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="../js/jquery.ztree.core-3.5.js" type="text/javascript"></script>
    <script src="../js/jquery.ztree.excheck-3.5.js" type="text/javascript"></script>
    
    
</head>
<%=GetzNodes()%>
<script type="text/javascript">
    var setting = { check: { enable: true, 
    chkboxType: { "Y": "ps", "N": "ps"} }//
    //chkboxType: { "Y": "p", "N": "ps"}}//父级联动
    //chkboxType : { "Y": "s", "N": "ps" } }//子级联动
    //chkboxType : { "Y": "", "N": "ps" } }//不联动
    
    ,view: {dblClickExpand: false},data: {simpleData: {enable: true}},callback: {beforeClick: beforeClick,onCheck: onCheck}};
    $(document).ready(function () {$.fn.zTree.init($("#treeDemo"), setting, zNodes); });
    function beforeClick(treeId, treeNode) {
        var zTree = $.fn.zTree.getZTreeObj("treeDemo");
        zTree.checkNode(treeNode, !treeNode.checked, null, true);
        return false;
    }
    function showMenu() {
        var cityObj = $("#citySel");
        var cityOffset = $("#citySel").offset();
        $("#menuContent").css({ left: cityOffset.left + "px", top: cityOffset.top + cityObj.outerHeight() + "px" }).slideDown("fast");
        $("body").bind("mousedown", onBodyDown);
    }
    function hideMenu() {
        $("#menuContent").fadeOut("fast");
        $("body").unbind("mousedown", onBodyDown);
    }
    function onBodyDown(event) {
        if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length > 0)) {
            hideMenu();
        }
    }
    $(document).ready(function () {
        $.fn.zTree.init($("#treeDemo"), setting, zNodes);
    });
    //选中之后触发的事件
    function onCheck(e, treeId, treeNode) {
        //ids:存放着一组id
        //v:存放着一组值
        var ids = "";
        var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
   nodes = zTree.getCheckedNodes(true),
   v = "";
        for (var i = 0, l = nodes.length; i < l; i++) {
            v += nodes[i].name + ",";
            ids += nodes[i].id + ",";
        }
        if (v.length > 0) v = v.substring(0, v.length - 1);
        if (ids.length > 0) ids = ids.substring(0, ids.length - 1);
        var cityObj = $("#citySel");
        cityObj.attr("value", v);
    }
</script>
<body>
    <form id="form1" runat="server">
        <!------------------Treediv--------------------->
        <div class="zTreeDemoBackground left">
      <ul class="list">
       <li class="title"><asp:TextBox ID="citySel" ReadOnly="true" runat="server"></asp:TextBox>&nbsp;<a id="A1" href="#" onclick="showMenu(); return false;">选择</a></li>
      </ul>
     </div>
        <div id="menuContent" class="menuContent" style="display:none; position: absolute;">
         <ul id="treeDemo" class="ztree" style="margin-top:0; width:160px;"></ul>
        </div>
        <!------------------Treediv--------------------->
          
    </form>
</body>
</html>

整合包下载:http://down.51cto.com/data/1967063

时间: 2024-08-01 01:51:10

7,下拉菜单(带 checkbox 的多选)的相关文章

[Ext JS 4] 实战之多选下拉单 (带checkbox) 续 - 带ALL 选项

前言 在 [Ext JS 4] 实战之多选下拉单 (带checkbox) 这一篇中有介绍如何开发带有checkbox 的多选菜单. 但是实际项目开发过程中, 用户的需求也是不断精进的. 使用淘宝或是其他网站购物车功能的用户对全选就特别习惯, 所以他们也希望在下拉单中也能有  "ALL" 这样的选项. 但是Extjs 本身提供的多选下拉单,功能比较有限. 之前有扩充过带 checkbox, 现在又要多扩充一个 "ALL" 选项了. 要求是: 1. 选中"AL

dismissDropDown():如果存在关闭下拉菜单

citylistview.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientati

JS实现带复选框的下拉菜单

这段时间在做后台的时候需要一个可以复选的下拉菜单,用到的是easyUI中的combo的Demo,先看看官方easyUI:http://www.jeasyui.com/documentation/index.php# ----------------------------------------------------------------------------------------------------------------------------------------------

基于jQuery带图标的多级下拉菜单

之前为大家分享了很多导航菜单.今天我们要来分享一款很不错的jQuery左侧带小图标的多级下拉菜单,菜单是垂直的,每一个菜单项带有一个小图标,看起来非常专业.并且菜单支持无限极下拉,所以对各位Web开发者来说非常实用.菜单时基于jQuery的,所以基本可以支持所有的浏览器. 在线预览   源码下载 实现的代码. html代码: <div class="content"> <ul class="vertical-nav dark red"> &l

DevExpress:带图片的下拉菜单ImageComboBoxEdit

本文为我的.NET控件库DevExpress使用笔记,我的DevExpress版本为13.1 1.控件类型全称:DevExpress.XtraEditors.ImageComboBoxEdit 2.控件所在程序集:DevExpress.XtraEditors.v13.1.dll 3.工具箱内分类:DX.13.1: Common Controls 4.控件样式截图 5.ImageComboBoxEdit控件除了具备下拉菜单的功能外,还可以再下拉菜单中某个条目前加入图片, 6.ImageComboB

html5 + css3 带音效下拉菜单的实现

原文:scripts tutorials    (来自脚本教程网的教程,翻译可能有些不对...想要试试 音效下拉菜单 在这个教程中我们将讲述如何开发酷炫的音效下拉菜单(html5 + css3).下拉菜单有css3动画效果(菜单元素有整洁的悬浮特效)同时也使用了html5的Audio元素来添加菜单的音效,准备好了吗?那就开始吧. Musical drop down menu Our new tutorial tells about developing cool musical drop dow

bootstrap-按钮的向下向上三角形-向上弹起的下拉菜单

1.运行效果如图所示 2.实现代码如下 <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <title>按钮的向下向上三角形-向上弹起的下拉菜单</title>     <

Bootstrap入门(八)组件2:下拉菜单

先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) <link href="css/bootstrap.min.css" rel="stylesheet">  <script src="jquery-3.1.0.min.js" type="text/javascript"></script> <script

作业:------数据库下拉菜单,数据库复选框

$attr = array( array("n001","汉族"), array("n002","回族"), array("n003","苗族"), array("n004","维吾尔族"), ); 1.要求用下拉列表的样式显示在页面上 2.要求用checkbox/radio 列表 显示在页面上 1.要求用下拉列表的样式显示在页面上 1 <!

表单开发(二):获取单选按钮,多行文本框,下拉菜单,捆绑元素数据,用户注册

单选按钮:<input type="radio"> 多行文本框:<textarea rows="5" cols="30"></textarea> 下拉菜单:seclet option <select name="home" ><!--下拉列表--> <option value="北 京">北 京</option> <o