树形联动
<!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> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>树形联动</title> <link href="../demo.css" rel="stylesheet" type="text/css" /> <style type="text/css"> body{ margin:0;padding:0;border:0;width:100%;height:100%;overflow:hidden; } </style> <script src="../../scripts/boot.js" type="text/javascript"></script> <!--引入皮肤样式--> <link href="../../scripts/miniui/themes/blue/skin.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="mini-splitter" style="width:100%;height:100%;"> <div size="240" showCollapseButton="true"> <div class="mini-toolbar" style="padding:2px;border-top:0;border-left:0;border-right:0;"> <span style="padding-left:5px;">名称:</span> <input class="mini-textbox" /> <a class="mini-button" iconCls="icon-search" plain="true">查找</a> </div> <div class="mini-fit"> <ul id="tree1" class="mini-tree" url="../data/deptTree.txt" style="width:100%;" showTreeIcon="true" textField="name" idField="id" parentField="pid" resultAsTree="false" > </ul> </div> </div> <div showCollapseButton="true"> <div class="mini-toolbar" style="padding:2px;border-top:0;border-left:0;border-right:0;"> <a class="mini-button" iconCls="icon-add" plain="true" onclick="addRow()">新增</a> <a class="mini-button" iconCls="icon-remove" plain="true" onclick="removeRow()">删除</a> <span class="separator"></span> <a class="mini-button" iconCls="icon-save" plain="true" onclick="saveData()">保存</a> </div> <div class="mini-fit" > <div id="grid1" class="mini-datagrid" style="width:100%;height:100%;" borderStyle="border:0;" url="../data/AjaxService.aspx?method=GetDepartmentEmployees" showFilterRow="true" allowCellSelect="true" allowCellEdit="true" > <div property="columns"> <div field="loginname" width="120" headerAlign="center" allowSort="true">员工帐号 <input property="editor" class="mini-textbox" style="width:100%;"/> </div> <div field="name" width="120" headerAlign="center" allowSort="true">员工姓名 <input property="editor" class="mini-textbox" style="width:100%;"/> <input id="nameFilter" property="filter" class="mini-textbox" onvaluechanged="onNameFilterChanged" style="width:100%;" /> </div> <div field="gender" width="100" allowSort="true" renderer="onGenderRenderer" align="center" headerAlign="center">性别 <input property="editor" class="mini-combobox" style="width:100%;" data="Genders"/> </div> <div field="age" width="100" allowSort="true">年龄 <input property="editor" class="mini-spinner" minValue="0" maxValue="200" value="25" style="width:100%;"/> </div> <div field="birthday" width="100" allowSort="true" dateFormat="yyyy-MM-dd">出生日期 <input property="editor" class="mini-datepicker" style="width:100%;"/> </div> <div field="createtime" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" allowSort="true">创建日期</div> </div> </div> </div> </div> </div> <script type="text/javascript"> mini.parse(); var tree = mini.get("tree1"); var grid = mini.get("grid1"); tree.on("nodeselect", function (e) { if (e.isLeaf) { grid.load({ dept_id: e.node.id }); } else { grid.setData([]); grid.setTotalCount(0); } }); ////////////////////////////////////////////// var Genders = [{ id: 1, text: '男' }, { id: 2, text: '女'}]; function onGenderRenderer(e) { for (var i = 0, l = Genders.length; i < l; i++) { var g = Genders[i]; if (g.id == e.value) return g.text; } return ""; } function onNameFilterChanged(e) { var textbox = e.sender; var key = textbox.getValue(); var node = tree.getSelectedNode(); if (node) { grid.load({ dept_id: node.id, key: key }); } } function addRow() { var node = tree.getSelectedNode(); if (node) { var newRow = { name: "New Row" }; newRow.dept_id = node.id; grid.addRow(newRow, 0); } } function removeRow() { var rows = grid.getSelecteds(); if (rows.length > 0) { grid.removeRows(rows, true); } } function saveData() { var data = grid.getChanges(); var json = mini.encode(data); grid.loading("保存中,请稍后......"); $.ajax({ url: "../data/AjaxService.aspx?method=SaveEmployees", data: { data: json }, type: "post", success: function (text) { grid.reload(); }, error: function (jqXHR, textStatus, errorThrown) { alert(jqXHR.responseText); } }); } </script> </body> </html>