<div data-options="region:'west',title:'管理系统练习左侧列表',split:true" href="left.jsp" style="width: 230px;">
</div>
<div data-options="region:'center',title:'管理系统练习中间主界面'" id="zhrefId" href="CenterPage.jsp" style="background: #eee; overflow: hidden;">
</div>在left.jsp页面中如何通过id="zhrefId"替换href页面
</div>
<div data-options="region:'center',title:'管理系统练习中间主界面'" id="zhrefId" href="CenterPage.jsp" style="background: #eee; overflow: hidden;">
</div>在left.jsp页面中如何通过id="zhrefId"替换href页面
解决方案 »
- jquery+ajax
- 怎样验证文本框不确定个数的表单?
- 求助:如何通过JS实现图文并茂形式调用DZ(7.2)论坛的帖子
- 关于javascript访问Webservice跨域问题
- [求助]关于网页打印,如何用程序设定打印页边距的高级问题
- 请教:怎么样得到浏览器大小改变后的宽和高呢?
- TOMCAT 5配置一连接池,测试的时候<出现??
- 数据类型转换
- javascript 有一个地方会死循环
- 萌新求助怎么将对象作为参数传递给setTimeout中的函数
- EXTjs TabPanel listeners事件如何让它加载完html后执行?实在是查不到 求助
- javascript函数和对象的问题(函数式编程)
$('#zhrefId').attr('href','http://www.baidu.com');
});
这样不知道为什么没有反应,之前这样写过,唯一的区别
jQuery(document).ready(function(){ $("#adubytreeStrengthen").AdubyTree({
dataType:"json",
checkboxes:true,
data:jsondata,
treeType:"strengthen",
onClick:function(node){
//alert(node.id);
$('#zhrefId').attr('href',‘node-0.jsp’);
}
});
});
firebug 控制台下看看报什么错了。
Uncaught TypeError: Cannot read property 'defaults' of undefined
我把代码贴出来吧?index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="jquery-easyui-1.3.2/themes/default/easyui.css" rel="stylesheet" />
<link href="jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" />
<script src="jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
<script src="js/JavaScript.js"></script><!--这个是扩展Jquery的方法-->
<script src="jquery-easyui-1.3.2/jquery.easyui.min.js"></script>
<script src="jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js"></script>
</head>
<body id="layoutbody" class="easyui-layout">
<div data-options="region:'north',title:'jquery管理系统练习',split:true" style="height: 100px;">
</div>
<div data-options="region:'west',title:'管理系统练习左侧列表',split:true" href="left.jsp" style="width: 230px;">
</div>
<div data-options="region:'center',title:'管理系统练习中间主界面'" id="zhrefId" href="CenterPage.jsp" style="background: #eee; overflow: hidden;">
</div>
<div data-options="region:'east',split:true" title="管理系统练习右侧菜单" style="width:180px;"></div>
</body>
</html>
----------------------------》left.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><script src="js/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="js/jquery.adubytree.js" type="text/javascript"></script>
<link rel="StyleSheet" href="css/adubytree.css" type="text/css" />
<script type="text/javascript">
jQuery(document).ready(function(){
var jsondata ={id : "node-0" , data: "管理系统练习",
children: [
{ id : "node-1" ,data: "管理系统练习1",
children: [
{ id : "node-1-1" ,data: "管理系统练习1.1",
children: [
{ id : "node-1-1-1" ,data: "管理系统练习1.1.1"},
{ id : "node-1-1-2" ,data: "管理系统练习1.1.2"}
]},
{id : "node-1-2" , data: "管理系统练习1.2"},
{id : "node-1-3" ,data: "管理系统练习1.3"}
]
},
{id : "node-2" ,data: "管理系统练习2"},
{id : "node-3", data: "管理系统练习3",
children: [
{ id : "node-3-1" ,data: "管理系统练习3.1",
children: [
{id : "node-3-1-1" , data: "管理系统练习3.1.1",
children: [
{ id : "node-3-1-1-1" , data: "管理系统练习3.1.1-1"},
{ id : "node-3-1-1-2" , data: "管理系统练习3.1.1-2"}
]
}
]
}
]
}
]
};
$("#adubytreeStrengthen").AdubyTree({
dataType:"json",
checkboxes:true,
data:jsondata,
treeType:"strengthen",
onClick:function(node){
//alert(node.id);
$('#zhrefId').attr('href','http://www.baidu.com');
}
}); });</script>
<div align="left">
<table border="0">
<tr>
<td valign ="top"><div id="adubytreeStrengthen"></div></td>
</tr>
</table>
<%--<ul id="myMenu" class="contextMenu">
<li class="edit"><a href="#edit">Edit</a></li>
<li class="cut separator"><a href="#cut">Cut</a></li>
<li class="copy"><a href="#copy">Copy</a></li>
<li class="paste"><a href="#paste">Paste</a></li>
<li class="delete"><a href="#delete">Delete</a></li>
<li class="quit separator"><a href="#quit">Quit</a></li>
</ul>--%>
</div>
-------------------------------------------------------》CenterPage.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<script type="text/javascript" charst="utf-8">
$(function () {
/*扩展Editors的datetimebox方法*/
$.extend($.fn.datagrid.defaults.editors, {
datetimebox: {//为方法取名
init: function (container, options) {
var editor = $('<input />').appendTo(container);
options.editable = false;//设置其不能手动输入
editor.datetimebox(options);
return editor;
},
getValue: function (target) {//取值
return $(target).datetimebox('getValue');
},
setValue: function (target, value) {//设置值
$(target).datetimebox('setValue', value);
},
resize: function (target, width) {
$(target).datetimebox('resize', width);
},
destroy: function (target) {
$(target).datetimebox('destroy');//销毁生成的panel
}
}
});
});
var editFlag = undefined;//设置一个编辑标记
//因为layout框架指向href时,只取html页面body中间的部分,所以该页面这样写即可
//有datagrid包含属性较多,所以尽量使用js的方式初始化datagrid框架
$(function () {
$("#dg").datagrid({
rowStyler: function (index, row) {//与列样式用法相同
if (row.code == 001) {
return 'background-color:#6293BB;color:#fff;';
}
},
url: "", //指向一个一般处理程序或者一个控制器,返回数据要求是Json格式,直接赋值Json格式数据也可,我以demo中自带的Json数据为例,就不写后台代码了,但是我会说下后台返回的注意事项
iconCls: "icon-add",
fitColumns: false, //设置为true将自动使列适应表格宽度以防止出现水平滚动,false则自动匹配大小
//toolbar设置表格顶部的工具栏,以数组形式设置
idField: 'id', //标识列,一般设为id,可能会区分大小写,大家注意一下
loadMsg: "正在努力为您加载数据", //加载数据时向用户展示的语句
pagination: true, //显示最下端的分页工具栏
rownumbers: true, //显示行数 1,2,3,4...
pageSize: 10, //读取分页条数,即向后台读取数据时传过去的值
pageList: [10, 20, 30], //可以调整每页显示的数据,即调整pageSize每次向后台请求数据时的数据
//由于datagrid的属性过多,我就不每个都介绍了,如有需要,可以看它的API
sortName: "name", //初始化表格时依据的排序 字段 必须和数据库中的字段名称相同
sortOrder: "asc", //正序
frozenColumns: [[
//冻结列 就是指定显示参照列 使其不会出现滚动条
{
field: 'name',
title: 'Name',
width: 100,
sortable: true,
editor: {
//设置其为可编辑
type: 'validatebox',//设置编辑格式
options: {
required: true//设置编辑规则属性
}
}, formatter: function (value, rowData, index) {//value:字段的值。rowData:行数据。rowIndex:行索引。
return "<span title='" + value + "'>" + value + "<span>";//实现鼠标放到单元格上时的提示
//return "*****";//实现显示星号样式
}
}//sortable:true点击该列的时候可以改变升降序
]],
columns: [[
{
field: 'code',
title: '操作列',
width: 100, formatter: function (value, rowData, index) {//value:字段的值。rowData:行数据。rowIndex:行索引。
return "<button onclick='clickFunc(" + index + ");'>操作</button>";//将索引传给方法,可以选中该行
}
//editor: {
// //设置其为可编辑
// type: 'validatebox',//设置编辑样式 自带样式有:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree 可自行扩展
// options: {}
//} }, {
field: 'addr',
title: 'addr',
width: 100,
editor: {
//设置其为可编辑
type: 'datetimebox',//这里我们将进行一个datetimebox的扩展
options: {
required: true//设置编辑规则属性
}
},
styler: function (value, rowData, index) {//设置列样式(列属性API),value列的值,index列索引,rowData行数据
if (index < 3) {
return 'background-color:#ffee00;color:red;';
}
}
}
]],//这里之所以有两个方括号,是因为可以做成水晶报表形式,具体可看demo
toolbar: [{
//在dategrid表单的头部添加按钮
text: "添加",
iconCls: "icon-add",
handler: function () {
if (editFlag != undefined) {
$("#dg").datagrid('endEdit', editFlag); //结束编辑,传入之前编辑的行
}
if (editFlag == undefined) { //防止同时打开过多添加行
$("#dg").datagrid('insertRow', {
//在指定行添加数据,appendRow是在最后一行添加数据
index: 0, // 行数从0开始计算
row: {
code: '',
name: '请输入姓名',
addr: ''
}
});
$("#dg").datagrid('beginEdit', 0); //开启编辑并传入要编辑的行
editFlag = 0;
}
}
}, '-', {
//'-'就是在两个按钮的中间加一个竖线分割,看着舒服
text: "删除",
iconCls: "icon-remove",
handler: function () {
//选中要删除的行
var rows = $("#dg").datagrid('getSelections');
if (rows.length > 0) { //选中几行的话触发事件
$.message.confirm("提示", "您确定要删除这些数据吗?", function (res) { //提示是否删除
if (res) {
var codes = {};
for (var i = 0; i < rows.length; i++) {
codes.push(rows[i].code);
}
console.info(codes.join(',')); //拼接字符串并传递到后台处理数据,循环删除,成功后刷新datagrid
}
});
}
}
}, '-', {
text: "修改",
iconCls: "icon-edit",
handler: function () {
//选中一行进行编辑
var rows = $("#dg").datagrid('getSelections');
if (rows.length == 1) { //选中一行的话触发事件
if (editFlag != undefined) {
$("#dg").datagrid('endEdit', editFlag); //结束编辑,传入之前编辑的行
}
if (editFlag == undefined) {
var index = $("#dg").datagrid('getRowIndex', rows[0]); //获取选定行的索引
$("#dg").datagrid('beginEdit', index); //开启编辑并传入要编辑的行
editFlag = index;
}
}
}
}, '-', {
text: "保存",
iconCls: "icon-save",
handler: function () {
$("#dg").datagrid('endEdit', editFlag);
}
}, '-', {
text: "撤销",
iconCls: "icon-redo",
handler: function () {
editFlag = undefined;
$("#dg").datagrid('rejectChanges');
}
}, '-'],
onAfterEdit: function (rowIndex, rowData, changes) { //在添加完毕endEdit,保存时触发
console.info(rowData); //在火狐浏览器的控制台下可看到传递到后台的数据,这里我们就可以利用这些数据异步到后台添加,添加完成后,刷新datagrid
//如何去判断是修改还是添加
var insertRows = $("#dg").datagrid("getChanges", "insert"); //获取添加的行
var updateRows = $("#dg").datagrid("getChanges", "update"); //获取更新的行
//这样我们就能去判断是添加数据还是修改数据了,怎样跟后台交互我就不写了
//当然 如果我们更细或者修改成功失败与否我们都应该去告诉一下dategrid
$("#dg").datagrid("acceptChanges"); //成功时确认下
$("#dg").datagrid("rejectChanges"); //失败时回滚下
editFlag = undefined; //重置
},
onDblClickCell: function (rowIndex, field, value) { //双击该行修改内容
if (editFlag != undefined) {
$("#dg").datagrid('endEdit', editFlag); //结束编辑,传入之前编辑的行
}
if (editFlag == undefined) {
$("#dg").datagrid('beginEdit', rowIndex); //开启编辑并传入要编辑的行
editFlag = rowIndex;
}
},
onRowContextMenu: function (e, rowIndex, rowData) { //右键时触发事件
//三个参数:e里面的内容很多,真心不明白,rowIndex就是当前点击时所在行的索引,rowData当前行的数据
e.preventDefault(); //阻止浏览器捕获右键事件
$(this).datagrid("clearSelections"); //取消所有选中项
$(this).datagrid("selectRow", rowIndex); //根据索引选中该行
$('#menu').menu('show', {
//显示右键菜单
left: e.pageX,//在鼠标点击处显示菜单
top: e.pageY
});
}
});
});