herefree 发布的文章

实现修改操作是教职工号不可编辑,添加时教职工号可编辑功能
通过设置

var tt=$('#teachertb').datagrid('getColumnOption', 'tid');//得到此列
            tt.editor={};//设置此列不可编辑

新添一行

function appendtea(){//添加
    if (teaendEditing()){
        $('#teachertb').datagrid('appendRow'
        		,{});
        var tt=$('#teachertb').datagrid('getColumnOption','tid');// 得到此列,tid指的是列的field
        tt.editor={type:'validatebox', options: { required: true}};//设置此列可编辑
        
        teaeditIndex=$('#teachertb').datagrid('getRows').length-1;
        
        $('#teachertb').datagrid('selectRow', teaeditIndex)
        .datagrid('beginEdit', teaeditIndex);
       
    }
}

修改

function teaonClickRow(index){
    if (teaeditIndex != index){
        if (teaendEditing()){
        	var tt=$('#teachertb').datagrid('getColumnOption', 'tid');//得到此列
            tt.editor={};//设置此列不可编辑
            $('#teachertb').datagrid('selectRow', index)
                    .datagrid('beginEdit', index);
            teaeditIndex = index;
        } else {
            $('#teachertb').datagrid('selectRow', teaeditIndex);
        }
    }
}

效果2018011216075720180112160819

20180111211433
easyui有个可编辑下拉框,官网demo是只给了一个html的代码它是直接从url里获取json数据

产品编号 产品 市场价 成本价 描述 状态

但是在这里我们在这里使用不行,没法直接获取通过路径直接从后台获取(ps:此处我也不知为什么从后台获取的json,还需要eval下然后加载..)
然后我就想用在定义每行数据是用js写,然后一开始预加载先将下拉框数据加载进来,然后编辑是直接设置加载进来的数据。
html

得到初始化数据

var tdeptna;
	var tpostna;
	var tdegreena;
	$.ajaxSetup({async:false}); 
	//初始化时动态加载教研室列表
	$.getJSON("../SyscodeServlet?mode=getcodeByno&&codeno=jxdw",null,function call(data){   
       	if(data.errmsg!=""){
       		alert(data.errmsg);
       		return;
       	}
       	var tdept=eval(data.result);
       	
       
       	tdeptna=tdept;
       	
       	$("#tdeptid").combobox('loadData', tdept);//直接加载数据
       	
     });
	//加载职称
	$.getJSON("../SyscodeServlet?mode=getcodeByno&&codeno=zhch",null,function call(data){   
       	if(data.errmsg!=""){
       		alert(data.errmsg);
       		return;
       	}
       	var zhch=eval(data.result);
       	tpostna=zhch
       	
     });
	//加载学位
	$.getJSON("../SyscodeServlet?mode=getcodeByno&&codeno=xw",null,function call(data){   
       	if(data.errmsg!=""){
       		alert(data.errmsg);
       		return;
       	}
       	var xw=eval(data.result);
       	tdegreena=xw;
     });
	initTable(tdeptna,tpostna,tdegreena);

定义可编辑表单

function initTable(tdept,tpost,tdegree){
	$('#teachertb').datagrid({
		columns:[[
		          {title:'教职工编号',field:'tid',width:85},
		          {title:'姓名',field:'tname',width:80},
		          {
		        	  title:'教研室',
		        	  field:'tdeptname',
		        	  width:200,
		        	  formatter:function(value,row){
                          return row.tdeptname;
                      },
                      editor:{
                          type:'combobox',
                          options:{
                              valueField:'codeid',
                              textField:'codecontent',
                          
                              data:tdept,
                              required:true
                          }
                      }   
		          },
		          {
		        	  title:'职称',
		        	  field:'tpostname',
		        	  width:100,
		        	  formatter:function(value,row){
                          return row.tpostname;
                      },
                      editor:{
                          type:'combobox',
                          options:{
                              valueField:'codeid',
                              textField:'codecontent',
                          		heigh:100,
                              data:tpost,
                              required:true
                          }
                      }         
		          },
		          {
		        	  title:'学位',
		        	  field:'tdegreename',
		        	  width:100,
		        	  formatter:function(value,row){
                          return row.tdegreename;
                      },
                      editor:{
                          type:'combobox',
                          options:{
                              valueField:'codeid',
                              textField:'codecontent',
                          
                              data:tdegree,
                              required:true
                          }
                      }
		          }
		          ]]
	})
}

结束

使用$.getJSON函数时,想往全局域传值发现传不过去

var tdeptna;
	var tpostna; 
	$.getJSON("../SyscodeServlet?mode=getcodeByno&&codeno=jxdw",null,function call(data){   
       	if(data.errmsg!=""){
       		alert(data.errmsg);
       		return;
       	}
       	var tdept=eval(data.result);
       	tdeptna=tdept;      	
       	$("#tdeptid").combobox('loadData', tdept);//直接加载数据
       	
     });
console.log(tdeptna)

无法将tdept的值传给tdeptna,在网上查了一下,发现ajax默认是异步执行的,也就是说$.getJSON还没有执行完的情况下,console.log已经打印了。
解决:在$.getJSON前面加上$.ajaxSetup({async:false});就好了

var tdeptna;
	var tpostna;
	$.ajaxSetup({async:false}); 
	$.getJSON("../SyscodeServlet?mode=getcodeByno&&codeno=jxdw",null,function call(data){   
       	if(data.errmsg!=""){
       		alert(data.errmsg);
       		return;
       	}
       	var tdept=eval(data.result);
       	
       
       	tdeptna=tdept;
       	
       	$("#tdeptid").combobox('loadData', tdept);//直接加载数据
       	
     });

html

教研室

姓名

导入教师  

js

function searchTeacher(){
	/*绑定教师列表tealistform  查询*/
	var options={
		dataType: 'json',
		success:      teaResponse//获取返回数据的函数
	};
	$('#tealistform').form(options);//使用Ajax提交表单

}
function teaResponse(data){
	var resultdata=$.parseJSON(data) //如果无法解析也可用eval,解析。
	var tealist=resultdata.result;
	$('#teachertb').datagrid('loadData', tealist);//向table加载数据
}

捣鼓了好久终于弄好了。

一、连接池配置

  1. 在tomcat下Tomcat/conf/context.xml添加如下代码

......


2.在项目web.xml下添加如下代码

 

 ...
  
    DB Connection 
    jdbc/mysql_5_1_52_0 
    javax.sql.DataSource 
    Container 
   

注意(敲黑板):web.xml里面 <res-auth> 与context.xml里面auth 一致,<res-ref-name>与name一致。

3.java代码

...
private static DataSource ds = null;
 static {
 try {
 Context ctx = new InitialContext();
 ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mysql_5_1_52_0");
 } catch (NamingException e) {
 e.printStackTrace();
 }
 }
 public static Connection getConnection() throws SQLException {
 return ds.getConnection();
 }

注意:java:/comp/env/jdbc/mysql_5_1_52_0 最后的jdbc/mysql_5_1_52_0与context.xml内的name一致

二、虚拟路径配置

解决了以上问题之后如果出现Cannot create JDBC driver of class '' for connect URL 'null'错误需要以下做法

在eclipse中配置项目发布路径,具体如下:在eclipse下部的Servers窗口中右键点击Tomcat v8.0 Server at localhost然后点击open,找到图中所示,将Server Locations选为第二项Use Tomcat……

20180105162719

Server path:为tomcat所在目录
Deploy path:设为webapps
已经配置好的无法修改,因此你需要点击右键新建一个server
18.1.5.1
然后新建的server可以修改,修改为如图所示:
18.1.5.2
参考网址:http://blog.sina.com.cn/s/blog_70d4900f01018k8d.html