easyUI datagrid 怎么动态添加一行数据?

API里是这么写的

 // 在第二行的位置插入一个新行
$('#dg').datagrid('insertRow',{
    index: 1,   // 索引从0开始
    row: {
        name: '新名称',
        age: 30,
        note: '新消息'
    }
});

但如果数据是动态获取的怎么添加到一行里面,比如是通过ajax动态获取的数据

 success:function(result){
    $('#dg').datagrid('insertRow',{
    index: 1,   // 索引从0开始
    row: {
        name: result.name,
        age: result.age,
        note: result.note
    }
});
}

这样的话行是能出来,但是里面一片空白,数据无法显示,这个要怎么弄才能显示数据?

6个回答

没记错的话,result需要解析吧。var obj = eval('(' + result + ')');
alert( obj.name);

qq_23126581
渊渟无迹静涛君 回复yaqiukasi: 不客气,能对你有帮助就行
一年多之前 回复
yaqiukasi
yaqiukasi 十分感谢你的回答,问题已解决
一年多之前 回复

ajax指定dataType为json,你应该没有指定所以success中result为字符串而不是json对象

 dataType:'json',///////
success:function(result){
qq554251986
qq554251986 var obj = eval('(' + result + ')'); alert( obj.name);
一年多之前 回复
showbo
支付宝加好友偷能量挖 dataType打错了 https://ask.csdn.net/questions/688947
一年多之前 回复
//新增行数据  
function addRow(target){  
    var parentIndex = getRowIndex(target);  
    //保存父行数据,用于新增数据。  
    $j('#car_base_rule_table').datagrid('endEdit', parentIndex);  
    $j('#car_base_rule_table').datagrid('updateRow',{index: parentIndex,row:{}});  
    //获取父行数据,进行新增操作。  
    var newIndex = parentIndex+1;  
    $j('#car_base_rule_table').datagrid('selectRow',parentIndex);  
    var rowParent = $j('#car_base_rule_table').datagrid('getSelected');  
    var newRow = jQuery.extend(true, {}, rowParent);  
    $j('#car_base_rule_table').datagrid('insertRow',{  
        index:newIndex,  
      row:newRow  
    });  
}  

首先确定你的返回数据是json格式(dataType:'json') 然后就是确保你的返回数据的内容和你需要显示的内容要保持一致,只能多不能少。

两种方法:
1:调完insertRow之后调用 refreshRow方法
2:使用getData方法获取grid的数据data,然后将ajax请求的数据push到data中,最后在进行loadData

先添加进集合里,从集合作为数据源,这样页面内就可以保证显示了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
easyui datagrid用 insertRow 添加一行数据 数据不显示
``` <body class="easyui-layout"> <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div> <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div> <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div> <div data-options="region:'west',title:'West',split:true" style="width:100px;"> <div id="userlist" class="left"> 用户列表 </div> <div id="policylist" class="left"> 保单列表 </div> <div id="adduser" class="left"> 添加用户 </div> <div id="addpolicy" class="left"> 添加表单 </div> <div id="userManage" class="left"> 用户管理 </div> <div id="policyManage" class="left"> 表单管理 </div> </div> <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"> <div id="tt" class="easyui-tabs" style="width:100%;height:100%;"> </div> </div> </body> $('#userManage').on("click",function(){ if(flog3==0){ flog3+=1; $('#tt').tabs('add',{ title:'用户管理', content:'<div>用户名:<input id="text1" type="text"><input id="cha" onclick="chaxun()" type="button" value="查询"><span id="m3"></span><div></br><table id="dg3"></table></br><div><input id="btn" type="button" value="添加"></div>', closable:true, tools:[{ iconCls:'icon-mini-refresh', handler:function(){ alert('refresh'); } }] }); $('#dg3').datagrid({width:'100%',height:'100px', columns:[[ {field:'id',title:'ID',width:100}, {field:'loginId',title:'用户名',width:100}, {field:'name',title:'姓名',width:100}, {field:'a',title:'操作',width:100,formatter:function(value,row,index){ return '<a href="#" onclick="editUser('+row.id+','+index+')">修改</a >/<a href="#" onclick="delUser('+row.id+','+index+')">删除</a>'; },align:'right'} ]] }); }else{ $('#dg3').datagrid("reload"); } }); function chaxun(){ var loginId = $("#text1").val(); //把loginId传到后台 $.ajax({ url:"${basePath}/dba/checkLoginId", type:"post", data:{"loginId":loginId}, dataTypt:"json", success:function(result){ if(result==0){ $("#m3").css({"color":"#00ff00"}).text("用户名不存在"); }else{ console.log(result); $('#dg3').datagrid("insertRow",{ index:0, row:{ id:result.id, loginId:result.loginId, name:result.name } }); } } }); } ``` 数据能获取,但添加的行里没有数据 ![图片说明](https://img-ask.csdn.net/upload/201805/13/1526223042_426471.jpg) 点“用户管理”的时候会生成一个选项卡,这个选项卡输入用户名再点查询按钮如果用户名存在可以添加一行数据在datagrid里,现在用户信息可以查到,但是现在数据无法写入到datagrid中
easyui datagrid用 insertRow 添加的一行数据怎么取出?
![图片说明](https://img-ask.csdn.net/upload/201805/14/1526287869_846582.jpg) datagrid的信息是这样的 ``` $('#dg3').datagrid({width:'100%',height:'100px', columns:[[ {field:'id',title:'ID',width:100}, {field:'loginId',title:'用户名',width:100}, {field:'name',title:'姓名',width:100}, {field:'a',title:'操作',width:100,formatter:function(value,row,index){ return '<a href="#" onclick="editUser('+row.loginId+')">修改</a >/<a href="#" onclick="delUser('+row.id+','+index+')">删除</a>'; },align:'right'} ]] }); ``` editUser函数是这样的 ``` function editUser(loginId){ alert(loginId); } ``` 那一行的数据是通过文本框查询出来的 ``` function chaxun(){ var loginId = $("#text1").val(); //把loginId传到后台 $.ajax({ url:"${basePath}/dba/checkLoginId", type:"post", data:{"loginId":loginId}, dataTypt:"json", success:function(result){ if(result==0){ $("#m3").css({"color":"#00ff00"}).text("用户名不存在"); }else{ console.log(result); var obj = eval('(' + result + ')'); $('#dg3').datagrid('insertRow',{ index: 0, // 索引从0开始 row: { id: obj.id, loginId: obj.loginId, name: obj.name } }); } } }); ``` 我的想法是点击“修改”标签可以调用editUser函数,把loginId显示出来,就是用户名那一列的内容显示出来,现在报的错是editUser(user),user找不到。user就是用户名是通过row.loginId找到的,已经接收到editUser函数里了,为什么会无法输出
easyui datagrid 获取选中行数据
我在easyui的datagrid中添加了一个chackbox 现在每行数据的前面都有一个复选框 而每行数据的后面有一个文本框 ``` <th fit="true" data-options="field:'yuanyin',formatter: rowformater">退回原因</th> ``` 我在js 中如何判断复选框是否选中 如果选中获得选中行的字段为ID的值 如果不选中获得不选中行字段为PID的值
easyui datagrid 编辑行后如何保存
<script type="text/javascript"> $(function () { var datagrid; //定义全局变量datagrid var editRow = undefined; //定义全局变量:当前编辑的行 datagrid = $("#dd").datagrid({ url: 'UserCenter.aspx', //请求的数据源 iconCls: 'icon-save', //图标 pagination: true, //显示分页 pageSize: 15, //页大小 pageList: [15, 30, 45, 60], //页大小下拉选项此项各value是pageSize的倍数 fit: true, //datagrid自适应宽度 fitColumn: false, //列自适应宽度 striped: true, //行背景交换 nowap: true, //列内容多时自动折至第二行 border: false, idField: 'ID', //主键 columns: [[//显示的列 {field: 'ID', title: '编号', width: 100, sortable: true, checkbox: true }, { field: 'UserName', title: '用户名', width: 100, sortable: true, editor: { type: 'validatebox', options: { required: true} } }, { field: 'RealName', title: '性别', width: 100, editor: { type: 'combobox', options: { data: [{ id: 0, text: '请选择' }, { id: 1, text: '男' }, { id: 2, text: '女' }], valueField: 'id', textField: 'text', } } }, { field: 'Email', title: '邮箱', width: 100, editor: { type: 'validatebox', options: { required: true} } } ]], queryParams: { action: 'query' }, //查询参数 toolbar: [{ text: '添加', iconCls: 'icon-add', handler: function () {//添加列表的操作按钮添加,修改,删除等 //添加时先判断是否有开启编辑的行,如果有则把开户编辑的那行结束编辑 if (editRow != undefined) { datagrid.datagrid("endEdit", editRow); } //添加时如果没有正在编辑的行,则在datagrid的第一行插入一行 if (editRow == undefined) { datagrid.datagrid("insertRow", { index: 0, // index start with 0 row: { } }); //将新插入的那一行开户编辑状态 datagrid.datagrid("beginEdit", 0); //给当前编辑的行赋值 editRow = 0; } } }, '-', { text: '删除', iconCls: 'icon-remove', handler: function () { //删除时先获取选择行 var rows = datagrid.datagrid("getSelections"); //选择要删除的行 if (rows.length > 0) { $.messager.confirm("提示", "你确定要删除吗?", function (r) { if (r) { var ids = []; for (var i = 0; i < rows.length; i++) { ids.push(rows[i].ID); } //将选择到的行存入数组并用,分隔转换成字符串, //本例只是前台操作没有与数据库进行交互所以此处只是弹出要传入后台的id alert(ids.join(',')); } }); } else { $.messager.alert("提示", "请选择要删除的行", "error"); } } }, '-', { text: '修改', iconCls: 'icon-edit', handler: function () { //修改时要获取选择到的行 var rows = datagrid.datagrid("getSelections"); //如果只选择了一行则可以进行修改,否则不操作 if (rows.length == 1) { //修改之前先关闭已经开启的编辑行,当调用endEdit该方法时会触发onAfterEdit事件 if (editRow != undefined) { datagrid.datagrid("endEdit", editRow); } //当无编辑行时 if (editRow == undefined) { //获取到当前选择行的下标 var index = datagrid.datagrid("getRowIndex", rows[0]); //开启编辑 datagrid.datagrid("beginEdit", index); //把当前开启编辑的行赋值给全局变量editRow editRow = index; //当开启了当前选择行的编辑状态之后, //应该取消当前列表的所有选择行,要不然双击之后无法再选择其他行进行编辑 datagrid.datagrid("unselectAll"); } } } }, '-', { text: '保存', iconCls: 'icon-save', handler: function () { //保存时结束当前编辑的行,自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台 datagrid.datagrid("endEdit", editRow); } }, '-', { text: '取消编辑', iconCls: 'icon-redo', handler: function () { //取消当前编辑行把当前编辑行罢undefined回滚改变的数据,取消选择的行 editRow = undefined; datagrid.datagrid("rejectChanges"); datagrid.datagrid("unselectAll"); } }, '-'], onAfterEdit: function (rowIndex, rowData, changes) { //endEdit该方法触发此事件,保存代码是否这里写??? //还需要判断combobox是否选中性别,而不是默认值 console.info(rowData); editRow = undefined; }, onDblClickRow: function (rowIndex, rowData) { //双击开启编辑行 if (editRow != undefined) { datagrid.datagrid("endEdit", editRow); } if (editRow == undefined) { datagrid.datagrid("beginEdit", rowIndex); editRow = rowIndex; } } }); }); </script> 1、怎么提交保存? 2、怎么在保存提交的时候判断combobox选中的不是“请选择”
easyui datagrid 上传文件
在easyui datagrid 第一列添加一个上传控件,第一行只限上传一个文件,但是上传的多个文件要在最后一起与多行数据一起保存的。
easyui datagrid渲染~
代码如下:在initGrid() 方法后。我用 $.parser.parse(grid); 渲染datagrid,依旧不行 但是我loadData的时候第一行加载不了数据。导致我20行记录只显示19行。最后一行不显示。 ``` //添加tab function addTabs(tabArr){ if(tabArr&&(Object.prototype.toString.call(tabArr) === '[object Array]')){ for(var i=0;i<tabArr.length;i++){ $('#tabs').tabs('add',{ title:tabArr[i], selected:false, content:"<table id='grid"+i+"' name='gn' data-options='border:false,fit:true '></table>",// }); } $('#tabs').tabs('select',0); } } ``` <div id='tabs' class="easyui-tabs" data-options="region:'center',fit:true,border:false"></div> ``` /** * [initGrid 初始化datagrid] */ function initGrid() { grid = $("[name='gn']").datagrid({ // data: data, idField : 'columnNo', sortName: 'type,seq', checkOnSelect:false, selectOnCheck:false, pagination:false, frozenColumns: [[{//columns width: '50', field: 'checkbox', checkbox: true }, { width: '70', title: '编号', field: 'ptdNo', hidden: true }, { width: '80', title: '模版编号', field: 'ptNo', hidden: true }, { width: '110', title: '列编码', field: 'columnNo', hidden: true }, { width: '125', title: '列名', field: 'name', }]] //省略 }); } ```
easyui datagrid如何自动跳到刚刚添加成功后的数据的行
如题,当数据分页后,往往新增一条数据,需要翻到最后一页才能看到新增的数据。 我想,当我点击保存按钮后,页面自动跳到我刚刚添加的那条数据的行,并选中它。 大神们,js代码该如何实现-----
easyui点击树节点添加选项卡,且选项卡内加载数据表格为什么我的代码只能实现一个?
$("#tr1").tree({ url:'tree_data.json' }); //双击树的节点添加面板 $("#tr").tree({ onDblClick:function(node){ addTab(node); } }); //添加面板 function addTab(node){ $("#ta").tabs('add',{ title:node.text, content:'<table id="tb"></table>', closable:true }); } //添加选项卡的时候添加数据表格 $(function(){ $("#ta").tabs({ onAdd:function(title,index){ addGrid(); } }); }); //添加数据表格的方法 function addGrid(){ $("#tb").datagrid({ url:'datagrid_data.json', iconCls:'icon-ok', columns:[[ {field:'code',title:'Code',width:100}, {field:'name',title:'Name',width:100}, {field:'price',title:'Price',width:100,align:'right'} ]], fitColumns:true,//允许表格自动缩放,以适应父容器 pagination : true//分页 //rownumbers:true//显示行数 }); }
EasyUI中DataGird 最后一行添加总计
``` ${config_iframe} <script type="text/javascript"> $(function(){$('#${config_id}List').datagrid( { idField: 'id', title: '${config_name}', url:'cgReportController.do?datagrid&configId=${config_id}${config_params}', fit:true, fitColumns:false, pageSize: 10, pagination:true, pageList:[10,30,50,100], singleSelect:true, checkbox:false, sortOrder:'asc', rownumbers:true, showFooter:true, frozenColumns:[[]], columns:[ [ <#if (config_fieldList?size>0)> <#list config_fieldList as x> <#if x_has_next> {field:'${x['field_name']}', title:'${x['field_txt']}', <#if x['field_href']?? && x['field_href']!=""> formatter:function(value,rec,index){ var href=''; href+=applyHref(value,'${x['field_href']}',value,rec,index); return href; }, </#if> <#if x['is_show'] == "N" >hidden:true,</#if> width:80}, <#else> {field:'${x['field_name']}',title:'${x['field_txt']}',width:80} </#if> </#list> </#if> ] ], onLoadSuccess:function(data){$("#${config_id}List").datagrid("clearSelections");}, onClickRow:function(rowIndex,rowData) {rowid=rowData.id;gridname='${config_id}List';} }); $('#${config_id}List').datagrid('getPager').pagination({beforePageText:'',afterPageText:'/{pages}',displayMsg:'{from}-{to}共{total}条',showPageList:true,showRefresh:true}); $('#${config_id}List').datagrid('getPager').pagination({onBeforeRefresh:function(pageNumber, pageSize){ $(this).pagination('loading');$(this).pagination('loaded'); }});}); function reloadTable(){ try{ $('#'+gridname).datagrid('reload'); $('#'+gridname).treegrid('reload'); }catch(ex){ //donothing } } function reload${config_id}List(){$('#${config_id}List').datagrid('reload');} function get${config_id}ListSelected(field){return getSelected(field);} function getSelected(field){var row = $('#'+gridname).datagrid('getSelected');if(row!=null){value= row[field];}else{value='';}return value;} function get${config_id}ListSelections(field){var ids = [];var rows = $('#${config_id}List').datagrid('getSelections');for(var i=0;i<rows.length;i++){ids.push(rows[i][field]);}ids.join(',');return ids}; function ${config_id}Listsearch(){var queryParams=$('#${config_id}List').datagrid('options').queryParams;$('#${config_id}Listtb').find('*').each(function(){queryParams[$(this).attr('name')]=$(this).val();});$('#${config_id}List').datagrid({url:'cgReportController.do?datagrid&configId=${config_id}',pageNumber:1});} function dosearch(params){var jsonparams=$.parseJSON(params);$('#${config_id}List').datagrid({url:'cgReportController.do?datagrid&configId=${config_id},',queryParams:jsonparams});} function ${config_id}Listsearchbox(value,name){var queryParams=$('#${config_id}List').datagrid('options').queryParams;queryParams[name]=value;queryParams.searchfield=name;$('#${config_id}List').datagrid('reload');}$('#${config_id}Listsearchbox').searchbox({searcher:function(value,name){${config_id}Listsearchbox(value,name);},menu:'#${config_id}Listmm',prompt:'请输入查询关键字'}); function searchReset_${config_id}(name){ $("#"+name+"tb").find(":input").val("");${config_id}Listsearch();} //导出 function exportXls() { $.ajax({ type: 'POST', dataType: "text", url: 'cgReportController.do?getSize', async: false, success: function (data) { var num = data.replace(/\"/g, ""); if (null != num && num != '') { if (parseInt(num) > 60000) { $.dialog.confirm("数据大于6万条,可能下载不完全,是否继续下载?", function (r) { if (!r) {return;} downXls(); }); } else { downXls(); } } } }); } function downXls() { var submitUrl = "cgExportExcelController.do?exportXls&configId=${config_id}"; var queryParams = ""; $('#${config_id}Listtb').find('*').each(function () { queryParams += "&" + $(this).attr('name') + "=" + $(this).val(); } ); submitUrl += queryParams; submitUrl = encodeURI(submitUrl); window.location.href = submitUrl; } //将字段href中的变量替换掉 function applyHref(tabname,href,value,rec,index){ //addOneTab(tabname,href); //alert("href: "+href); var hrefnew = href; var re = ""; var p1 = /\#\{(\w+)\}/g; try{ var vars =hrefnew.match(p1); for(var i=0;i<vars.length;i++){ var keyt = vars[i]; var p2 = /\#\{(\w+)\}/g; var key = p2.exec(keyt); hrefnew = hrefnew.replace(keyt,rec[key[1]]); } }catch(ex){ } re += "<a href = '#' onclick=\"addOneTab('"+tabname+"','"+ hrefnew + value +"')\" ><u>"+value+"</u></a>"; //alert("newHref: "+re); return re; } </script> <table width="100%" id="${config_id}List" toolbar="#${config_id}Listtb"></table> <div id="${config_id}Listtb" style="padding:3px; height: auto"> <div name="searchColums"> <#list config_queryList as x> <span style="display:-moz-inline-box;display:inline-block;"> <span style="display:-moz-inline-box;display:inline-block;width: 100px;text-align:right;text-align:right;text-overflow:ellipsis;-o-text-overflow:ellipsis; overflow: hidden;white-space:nowrap;" title="${x['field_txt']}">${x['field_txt']}:</span> <#if x['search_mode']=="group"> <input type="text" name="${x['field_name']}_begin" style="width: 94px" <#if x['field_type']=="Date">class="easyui-datebox"</#if> /> <span style="display:-moz-inline-box;display:inline-block;width: 8px;text-align:right;">~</span> <input type="text" name="${x['field_name']}_end" style="width: 94px" <#if x['field_type']=="Date">class="easyui-datebox"</#if> /> </#if> <#if x['search_mode']=="single"> <#if (x['field_dictlist']?size >0)> <select name = "${x['field_name']}" WIDTH="100" style="width: 104px"> <option value = "">---请选择---</option> <#list x['field_dictlist'] as xd> <option value = "${xd['typecode']}">${xd['typename']}</option> </#list> </select> </#if> <#if (x['field_dictlist']?size <= 0)> <input type="text" name="${x['field_name']}" style="width: 100px" <#if x['field_type']=="Date">class="easyui-datebox"</#if> /> </#if> </#if> </span> </#list> </div> <div style="height:60px;" class="datagrid-toolbar"> <span style="float:left;" > <a href="#" class="easyui-linkbutton" plain="true" icon="icon-putout" onclick="exportXls();">导出excel</a> <form action="/jeecg/cgReportController.do?list2&id=${config_id}" method="post"> 起始时间:<input type="date" id="st" name="st" value="${st!}"/> 结束时间:<input type="date" id="et" name="et" value="${et!}"/> 选择院区:<select id="yq" name="yq"> <option value="">全部</option> <option value="01" <#if yq??> <#if yq=='01'>selected</#if></#if>>城中院区</option> <option value="02" <#if yq??> <#if yq=='02'>selected</#if></#if>>阳湖院区</option> </select> 科室名称:<input type="text" id="ks" name="ks" value="${ks!}" /> 医保类型:<select id="yb" name="yb"> <option value="" >全部</option> <option value="1" <#if yb??> <#if yb=='1'>selected</#if></#if> >常州职工</option> <option value="2" <#if yb??> <#if yb=='2'>selected</#if></#if> >常州离休</option> <option value="3" <#if yb??> <#if yb=='3'>selected</#if></#if> >常州居民</option> <option value="4" <#if yb??> <#if yb=='4'>selected</#if></#if> >常州地市级</option> <option value="5" <#if yb??> <#if yb=='5'>selected</#if></#if> >常州荣军</option> <option value="6" <#if yb??> <#if yb=='6'>selected</#if></#if> >常州生育</option> <option value="7" <#if yb??> <#if yb=='7'>selected</#if></#if> >武进职工</option> <option value="8" <#if yb??> <#if yb=='8'>selected</#if></#if> >武进离休</option> <option value="9" <#if yb??> <#if yb=='9'>selected</#if></#if> >武进居民</option> <option value="10" <#if yb??> <#if yb=='10'>selected</#if></#if> >武进生育</option> <option value="11" <#if yb??> <#if yb=='11'>selected</#if></#if> >金坛职工</option> <option value="12" <#if yb??> <#if yb=='12'>selected</#if></#if> >溧阳职工</option> </select> <input type="submit"/> </form> </span> <#if (config_queryList?size >0)> <span style="float:right"> <a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="${config_id}Listsearch()">查询</a> <a href="#" class="easyui-linkbutton" iconCls="icon-reload" onclick="searchReset_${config_id}('${config_id}List')">重置</a> </span> </#if> </div> </div> ```
Spring MVC easyui1.3.2 datagrid无法加载数据
``` jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/common/page/jqueryMaster.jsp"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text/javascript" src="<%=root%>/info/js/infoList.js" charset="utf-8"></script> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>信息列表</title> </head> <body> <!-- 列表 --> <table id="tt"> </table> <!-- 工具拦 --> <div id="tb" style="padding: 3px"> <form method="post" action="" id="myForm" name="myForm"> <br> <span>信息标题:</span> <input id="ensurname" name="ensurname" style="width:160px; border: 1px solid #ccc"> <span>创建人:</span> <input id="engivename" name="engivename" style="width:160px; border: 1px solid #ccc"> <span>创建时间:</span> <input name="asampletbl.birthday" id="abirthday" class="easyui-datebox" currentText='今天' closeText='关闭' formatter="formatDate"> <a href="#" class="easyui-linkbutton" iconAlign="right" data-options="iconCls:'icon-search'" onclick="doSearch()">查询</a> <a href="#" class="easyui-linkbutton" iconAlign="right" data-options="iconCls:'icon-undo'" onclick="Javascript:$('#tb').form('clear')">清空</a> <!-- <a href="#" class="easyui-linkbutton" iconAlign="right" data-options="iconCls:'icon-remove'" onclick="dodelete()">删除</a> <a href="#" class="easyui-linkbutton" iconAlign="right" data-options="iconCls:'icon-add'" onclick="doadd()">添加</a> --> <a href="#" class="easyui-linkbutton" iconAlign="right" data-options="iconCls:'icon-add'" onclick="window.parent.addTab('tabId_infoCreate','信息新增','<%=root%>/createInfo.do')">添加</a> <!-- <a href="#" class="easyui-linkbutton" iconAlign="right" data-options="iconCls:'icon-edit'" onclick="doedit()">修改</a> --> </form> </div> </body> </html> js $(function() { console.info($("#tt").parent().width() - 2); $('#tt').datagrid({ url : root + "/getInfoList.do", title : '信息列表',//文字提示 iconCls : 'icon-ok', fitColumns : true, width : $("#tt").parent().width() - 2,//长度 height : 20,//高度 pageSize : 10,//默认每页多少行 pageList : [ 10, 20, 30, 40, 50 ],//可以选择每页多少行 collapsible:true, nowrap : false, striped : true, collapsible : true, loadMsg : '数据装载中......',//等待页面的时候,显示的内容 toolbar : "#tb",//工具栏 调用ID为tb的div,将工具栏嵌套进去 frozenColumns : [ [ { field : 'ck', checkbox : true } ] ], columns:[[{field:'id',title:'主键',width:30,hidden:true}, {field:'title',title:'信息标题',width:30, align:'center'}, {field:'operater',title:'发送人',width:30, align:'center'}, {field:'opertime',title:'发送时间',width:30, align:'center'} ]], pagination : true,//启动分页效果 rownumbers : true, // 显示行数 singleSelect: true // 只选择一行 }); }); Controller /** * 查询发送信息列表 * * @param request * @param model * @return * @throws Exception */ @RequestMapping(value="/getInfoList.do") @ResponseBody public Map<String, Object> getInfoList(int page,int rows) throws Exception { log.info("查询发送信息开始"); int start = (page-1)*rows; List<Info> users = infoAccessService.getAll(start,rows); int total = infoAccessService.getNumber(); Map<String, Object> map = new HashMap<String, Object>(); map.put("total", total); map.put("rows", users); log.info("查询发送信息结束"); return map; } 以上是我的代码,在返回结果时总是无法加载 ```
jquery easyui 1.3.4 的datagrid无法自适应高度和宽度,
<!-- <div class="easyui-tabs" fit="true" border="false"> <div title="用户管理" border="false"> <!-- --> <div id="searchpanel" class="easyui-panel" border="false" title="查询条件" style="height: 100px;" data-options="iconCls:'icon-search', collapsible:true"> <table class="tableForm datagrid-toolbar" style="width: 100%; height: 100%;"> <tr> <th> 用户名 </th> <td> <input name="userName" style="width: 155px" /> </td> <th> 联系电话 </th> <td> <input name="phone" style="width: 155px" /> </td> <th> 所属单位 </th> <td> <input name="phone" style="width: 155px" /> </td> </tr> <tr> <th> 开始日期 </th> <td> <input name="timeStart" editable="flase" class="easyui-datetimebox" style="width: 155px" /> </td> <th> 结束日期 </th> <td> <input name="timeEnd" editable="flase" class="easyui-datetimebox" style="width: 155px" /> </td> <th></th> <td> <a href="#" class="easyui-linkbutton">查询</a> <a href="#" class="easyui-linkbutton">清空</a> </td> </tr> </table> </div> <table id="centerDateGrid"> <thead> <tr> <th field="userId" width="80" sortable="true"> userId </th> <th field="loginName" width="100" sortable="true"> loginName </th> <th field="userName" width="80" sortable="true"> userName </th> <th field="password" width="80" align="right" sortable="true"> password </th> <th field="cell" width="80" align="right" sortable="true"> cell </th> <th field="qq" width="100" align="right" sortable="true"> qq </th> <th field="mail" width="110" sortable="true"> mail </th> </tr> </thead> </table> </div> </div> --> 这是我的center里面的代码 下面是我的js代码: $(function() { alert("进来了"); //初始化查询pannel // 初始化右下角的提示框 $.messager.show({ title : '我的消息', msg : '登录成功,欢迎使用此系统', timeout : 3000, showType : 'slide' }); // 初始化datagrid $("#centerDateGrid").datagrid({ url : 'login/users!findList.action', height:"200px;", iconCls : 'icon-save',// 图标 rownumbers : true,// 如果为true,则显示一个行号列。 singleSelect : true,// 如果为true,则只允许选择一行。 // autoRowHeight:false,//定义设置行的高度,根据该行的内容。设置为false可以提高负载性能。 nowrap : false,// 如果为true,则在同一行中显示数据。设置为true可以提高加载性能。 pagination : true,// 显示分页工具条 pageSize : 20,// 每页条数 fit : true,// datagrid自适应宽高 fitColumns : true,// 使列自动展开/收缩到合适的数据表格宽度。 idField : 'userId', sortName : 'userId',// 定义哪些列可以进行排序 sortOrder : 'asc',// 定义列的排序顺序,只能是'asc'或'desc' border : false, pageList : [ 20, 30, 40, 50 ],// 分页条数选择 toolbar : [ { text : '添加', iconCls : 'icon-add', hander : function() { } },'-', { text : '修改', iconCls : 'icon-edit', hander : function() { } },'-', { text : '删除', iconCls : 'icon-remove', hander : function() { } } ] //toolbar:"#toolbar" }); }); //查询条件 function search(){ $("#centerDateGrid").datagrid("load",{ userName("#userName").val() }); } //清空查询条件 function clear(){ }
Jquery easyui的翻页无效,一直都是第一页的数据
下面是我用easyui做的一个表格,初次加载10行数据正常,但是我点下一页的时候,后台ashx返回的result数据集是正确的,但是前台的数据就是不变,还是第一页的数据,这是为什么 这是ashx文件返回的result; case "GetList": ``` string KeyWord = context.Request["KeyWord"]; string SearchType = context.Request["SearchType"]; if (SearchType == "全部") { SearchType = null; } int PageSize = Convert.ToInt32(context.Request["rows"]); int PageNumber = Convert.ToInt32(context.Request["page"]) - 1; string result = BLL.GetNongQiList(KeyWord, SearchType, PageSize, PageNumber); context.Response.Write(result); break; ``` ``` <script type="text/javascript"> $('#tt').datagrid({ title: "友情链接列表", url: '../../../Handler/getData.ashx', pagination: true, idField: "ID", queryParams: { method: "GetLink" }, pageNumber: 1, onLoadSuccess: function (data) { if (data == "登录超时!") { top.window.location = "../../SysAdmin/Login.aspx"; } }, pageSize: 10, singleSelect: true, columns: [[ { field: 'rowIndex', title: '自动编号', width: 100 }, { field: 'linkname', title: '链接名', width: 100 }, { field: 'linkurl', title: '链接URL', width: 100 }, { field: 'type', title: '链接类型', width: 100 }, { field: 'linkImg', title: '链接图片', width: 100, formatter: function (value, rowData, rowIndex) { if (rowData.linkImg != "") { return '<a href="../../' + rowData.linkImg + '" target="_blank" style="color:black;text-decoration:none;">点击查看</a>'; } else { return "暂未上传"; } } } ]], toolbar: [ { id: 'btnadd', text: '添加', iconCls: 'icon-add', handler: function () { window.location = 'AddLink.aspx'; return false; } }, { id: 'btnUpdate', text: '修改', iconCls: 'icon-edit', handler: function () { var selectItem = $('#tt').datagrid('getSelected'); if (selectItem == null) { $.messager.alert("提示", "请选择要修改的记录!"); } else { window.location = "UpdateLink.aspx?id=" + selectItem.id } } }, { id: 'btnDelete', text: '删除', iconCls: 'icon-cut', handler: function () { var selectItem = $('#tt').datagrid('getSelections'); var ID = ""; $.each(selectItem, function (key, value) { ID += value.id; }); if (ID == "") { $.messager.alert("提示", "请选择要删除的记录!"); } else { $.messager.confirm("提示", "您确定删除选中的数据吗?", function (r) { if (r) { $.post("../../../Handler/getData.ashx", { ID: ID, method: "DeleteLink" }, function (data) { $.messager.alert("提示", data); $('#tt').datagrid('reload', { method: "GetLink" }); //更新列表 }, "html"); } }); } } }] }); </script> ```
easyui dialog添加和修改时中文出现乱码,怎么解决
$(function() { $("#dg").datagrid({ url : "stations.do", method : 'post', columns : [ [ { field : 'stationId', title : '站点编号', width : 290, align : 'center', hidden : 'true' }, { field : 'stationName', title : '企业名称', width : 350, align : 'center' }, { field : 'stationPosition', title : '企业地址', width : 380, align : 'center' }, { field : 'stationTypeId', title : '企业类型', width : 300, align : 'center', formatter : function(value, row, index) { if (value == '0') { return '民营' } else if (value == '1') { return '国企' } } }, { field : 'absoluteno', title : 'absoluteno', width : 260, align : 'center' } ] ], toolbar : '#toolbar', //表格菜单 loadMsg : '嗖 ----正在火速加载中 -------------', //加载提示 pagination : true, //显示分页工具栏 rownumbers : true, //显示行号列 //singleSelect:true,//是允许选择一行 queryParams : { //在请求数据是发送的额外参数,如果没有则不用谢 name : 'easyui', },
datagrid 表中的 怎么去限制俩个datetimebox 的大小
表结构<br/>![图片说明](https://img-ask.csdn.net/upload/201610/07/1475825320_194509.png) 我想让datetimebox A 如果选择了 2016-8-8 那么 datetimebox B就不能进行选 8-8之前的日期了 只能比它大,反之亦然,A不能比B大! 表格代码是这样的 <br/> html部分 ``` <table id="dg" rownumbers="true" class="easyui-datagrid" style="width:100%;height:auto;" data-options="onEndEdit:onEndEdit,onLoadSuccess:compute"> <thead> <tr> <th data-options="field:'ck',width:100,checkbox:true"></th> <th data-options="field:'dept_id',width:100,formatter:function(value,row){return row.dept_name; },editor:{ type:'combobox',options:{ valueField:'dept_id', textField:'dept_name',method:'get',url:'{$json}', } }">开单部门</th> <th data-options="field:'to_dept',width:100, formatter:function(value,row){ return row.todeptname;},editor:{ type:'combobox',options:{ valueField:'dept_id', textField:'todeptname',url:'{$json2}', editable:false }}">目标分店</th> <th data-options="field:'so_date',width:160,editor:{type:'datetimebox',options:{editable:false,}}">发生日期</th> <th data-options="field:'income',width:100,editor:{type:'numberbox',options:{}},formatter:function(value,row,index){ return formatNumber(value,2); }">借</th> <th data-options="field:'pay',width:100,editor:{type:'numberbox',options:{}}, formatter:function(value,row,index){ return formatNumber(value,2);}">贷</th> <th data-options="field:'record_date',width:160,editor:{type:'datetimebox',options:{editable:false}}">审核日期</th> </tr> </thead> </table> ``` JS部分 ``` <script> $(document).ready(function(){ var datagrid; //定义全局变量datagrid var editRow1 = undefined; //定义全局变量:当前编辑的行 datagrid1 = $("#dg").datagrid({ url:'{$recURL}', //请求的数据源 iconCls: 'icon-save', //图标 fit: false, //datagrid自适应宽度 fitColumn: false, //列自适应宽度 striped: true, //行背景交换 nowrap: true, //列内容多时自动折至第二行 border: false, idField: 'dept_id', //主键 //queryParams: { action: 'query' }, //查询参数 toolbar: [{ text: '添加一行', iconCls: 'icon-add', handler: function () { if (editRow1 != undefined) { datagrid1.datagrid("endEdit", editRow1); } if (editRow1 == undefined) { datagrid1.datagrid("insertRow", { index: 0, // index start with 0 row: { } }); //将新插入的那一行开户编辑状态 datagrid1.datagrid("beginEdit", 0); var insert_c= $('#dg').datagrid("getChanges",'updated'); var dg = $('#dg').datagrid('getEditor', { index: 0, field: 'dept_id' }); $(dg.target).combobox('select',"001"); //给当前编辑的行赋值 editRow1 = 0; } } }, '-', { text: '删除选中', iconCls: 'icon-remove', handler: function () { //删除时先获取选择行 var rows = datagrid1.datagrid("getSelections"); //选择要删除的行 if (rows.length > 0) { $.messager.confirm("提示", "你确定要删除吗?", function (r) { if (r) { var ids = []; var row = []; for (var i = 0; i < rows.length; i++) { var rowIndex = $('#dg').datagrid('getRowIndex', rows[i]);//获取指定行 row[i]=rowIndex; ids.push(rows[i].dept_id); } if($('#dg').datagrid('getRows').length==row.length){ editRow1 = undefined; datagrid1.datagrid("rejectChanges"); $.messager.alert("提示","删除成功","info"); }else{ for(var i=0;i<row.length;i++){ $('#dg').datagrid('deleteRow', row[i]); //删除指定行 } }//将选择到的行存入数组并用,分隔转换成字符串, } }); } else { $.messager.alert("提示", "请选择要删除的行","error"); } } }, '-', { text: '修改选中', iconCls: 'icon-edit', handler: function () { //修改时要获取选择到的行 var rows = datagrid1.datagrid("getSelections"); //如果只选择了一行则可以进行修改,否则不操作 if (rows.length == 1) { //修改之前先关闭已经开启的编辑行,当调用endEdit该方法时会触发onAfterEdit事件 if (editRow1 != undefined) { datagrid1.datagrid("endEdit", editRow1); } //当无编辑行时 if (editRow1 == undefined) { //获取到当前选择行的下标 var index = datagrid.datagrid("getRowIndex", rows[0]); //开启编辑 datagrid1.datagrid("beginEdit", index); //把当前开启编辑的行赋值给全局变量editRow1 editRow1 = index; datagrid1.datagrid("unselectAll"); } }else { $.messager.alert('警告', '修改必须或只能选择一行!', 'warning'); } } }, '-', { text: '保存', iconCls: 'icon-save', handler: function () { //保存时结束当前编辑的行,自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台 datagrid1.datagrid("endEdit", editRow1); } }, '-' , {text: '设置视图', handler: function (){ var s=$(this).parents("fieldset").find(".datagrid-header"); set_view(s); } },'-'], onAfterEdit: function (rowIndex, rowData, changes) { //endEdit该方法触发此事件 //console.info(rowData); editRow1 = undefined; compute(); }, onDblClickRow: function (rowIndex, rowData) { //双击开启编辑行 var cx; var insert_c= $('#dg').datagrid("getChanges",'inserted'); for(var i=0;i<insert_c.length;i++){ var row_l=$('#dg').datagrid("getRowIndex",insert_c[i]); if(rowIndex==row_l){ cx=true; } } if (editRow1 != undefined) { datagrid1.datagrid("endEdit", editRow1); } if (editRow1 == undefined) { var rows = $('#dg').datagrid('getRows'); if(cx){ datagrid1.datagrid("beginEdit", rowIndex); editRow1 = rowIndex; cx=false; }else{ datagrid1.datagrid("beginEdit", rowIndex); editRow1 = rowIndex; var dd = $('#dg').datagrid('getEditor', { index: rowIndex, field: 'dept_id' }); $(dd.target).combobox('disable'); } } } }); //编辑状态 function endEditing1() { if (editRow1 == undefined) { return true } if ($('#dg').datagrid('validateRow', editRow1)) { var ed = $('#dg').datagrid('getEditor', { index: editRow1, field: 'dept_id' }); $('#dg').datagrid('endEdit', editRow1); editRow = undefined; return true; } else { return false; } } }); function onEndEdit(index, row){ var ed = $('#dg').datagrid('getEditor', { index: index, field: 'dept_id' }); row.dept_name = $(ed.target).combobox('getText'); var ed1 = $('#dg').datagrid('getEditor', { index: index, field: 'to_dept' }); row.todeptname = $(ed1.target).combobox('getText'); } function compute(){ var rows = $('#dg').datagrid('getRows')//获取当前的数据行 var ptotal = 0//计算listprice的总和 ,utotal = 0//统计unitcost的总和 ,table = 0; for (var i = 0; i < rows.length; i++) { ptotal += parseFloat(rows[i]['income']) || 0 ; utotal += parseFloat(rows[i]['pay']) || 0 ; } table = ptotal - utotal; document.getElementById('payin').innerText=ptotal.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');//输出位置 document.getElementById("payout").innerText=utotal.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); document.getElementById('payincome').innerText=table.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); } function formatNumber(value, fixed) { var number = Number(value); return number.toFixed(2).replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,'); }</script> ``` 因为他的是easyui组件,我不知道怎么去实现 这个需求
使用easyui做的表格,在选完每页显示行数后,再点击提交,接收到的rows为NAN怎么解决?
先上图: ![图片说明](https://img-ask.csdn.net/upload/201703/08/1488960825_290618.png) 如上图,左边是用easyui做的表格,有查询和分页。点击任一行,会把明细添加到右边供编辑。翻页没问题,选择每页显示行数也没问题。但是当我选择完每页显示的行数以后,再次修改或者新增,后台接受的rows(每页显示行数)就变成了NaN。请问各位老师怎么解决? html: ``` <body> <div style="float:left" > <table id="list_data_message" title="信息管理" style="width:600px;height:500px" ></table> </div> <div style="float:right" > <div class="easyui-panel" title="信息编辑" style="width:720px;padding:30px 60px;"> <div style="float:left" > <div id="uguid" style="display:none;"></div> <div style="margin-bottom:20px"> 标题: <input id="title" name="title" class="easyui-textbox" style="width:150px;height:32px"> </div> <div style="margin-bottom:20px"> 信息类别: <select id="typeCode" name="typeCode" class="easyui-combobox" > <option value='0F31F432-0DFE-413C-A872-429BEA9F8E26' selected="selected">流行趋势</option> <option value='586E0485-C919-4B81-963F-5A3981E2FE2A'>推广引导</option> <option value='5BC62E88-E9D5-4A08-B086-6B0F41336D87'>行业信息</option> </select> </div> <div style="margin-bottom:20px;"> <div>封面:</div> <textarea id="cover" id="cover" name="cover" cols="100" rows="8" style="visibility:hidden;"> </textarea> </div> <div> <button id="isok" name="isok" class="easyui-linkbutton" iconCls="icon-ok" style="width:150px;height:32px" onclick="messageManager.submit(1)" >发布信息</button> </div> <div> <button id="ispre" name="ispre"class="easyui-linkbutton" iconCls="icon-save" style="width:150px;height:32px" onclick="messageManager.submit(0)" >保存草稿</button> </div> </div> <div style="float:right"> <textarea id="content" name="content" cols="100" rows="8" style="visibility:hidden;"> </textarea> </div> </div> </div> <script type="text/javascript"> messageManager.initTextarea(); messageManager.init(); </script> </body> ``` js文件: ``` //加载表格数据 loadMessage :function(){ var Searchtitle = $("#Searchtitle").val(); $('#list_data_message').datagrid({ title: '信息管理', iconCls: 'icon-save', //图标 loadMsg: "数据加载中,请稍后......", striped: true,//设置为true交替显示行背景 autoRowHeight: false,//设置为false锁定行高 nowap: true, //列内容多时自动折至第二行 striped: true,//行背景交换 border: true, collapsible: false, //是否可折叠 fit: false, //自动大小 datagrid自适应宽度 fitColumn: false, //列自适应宽度 url: '/api/message/index?Searchtitle='+Searchtitle, remoteSort: false, singleSelect: true, //是否单选 pagination: true, //分页控件 rownumbers: true, //行号 loading: true, showPageList: true,//定义是否显示页面导航列表。 showRefresh: true,//定义是否显示刷新按钮, idField: 'uGUID', //主键 selectOnCheck:false, checkOnSelect:false, pageNumber: 1, //默认显示第几页 pageSize: 10, pageList: [5, 10, 15],//用户可以改变页面大小。pageList属性定义了页面导航展示的页码。 //可编辑单元格 //onClickCell: onClickCell, columns: [[//显示的列 //{ field: 'ck', title: '编号', checkbox: true, align: 'left', sortable: true }, { field: 'uGUID',title: '编号',hidden:true }, { field: 'informationTypeGUID',title: '类型编号',hidden:true }, { field: 'title', title: '标题', align: 'left',width:200}, { field: 'coverPhoto', title: '封面', align: 'left',width:200,hidden:true}, { field: 'informationTypeName', title: '信息类型', align: 'left',width:200}, { field: 'status', title: '状态', align: 'left',width:60}, { field: 'content', title: '内容', align: 'left',width:200,hidden:true}, ]], onClickRow : function(index, row){ //你要写的逻辑 var row = $('#list_data_message').datagrid('getSelected'); if (row){ $('#title').textbox('setValue',row.title); $('#uguid').val(row.uGUID); if(row.informationTypeGUID!=''||row.informationTypeGUID!=null){ $("#typeCode").combobox('select',row.informationTypeGUID); } //$("#typeCode").val(row.informationTypeGUID); kcover.html(row.coverPhoto); kcontent.html(row.content); } }, toolbar: [{ id: 'BtnAddUserInfo', text: '新增', iconCls: 'icon-add', handler: function () { messageManager.refresh(); } }, '-', { id: '', text: '删除', iconCls: 'icon-remove', handler: function () { var guid = $('#list_data_message').datagrid('getSelected').uGUID; var data={}; data.guid=guid; $.ajax({ type : 'POST', url : '/api/message/delete', dataType:"json", contentType:'application/json;charset=UTF-8', data : JSON.stringify(data), success : function(){ messageManager.loadMessage(); }, error: function(XMLHttpRequest){ alert( "删除失败: " + XMLHttpRequest.responseText); } }); } }, '-', { //查询输入框 text: '<input type="text" id="Searchtitle" placeholder="输入信息标题"/>', }, '-', { id: '', text: '查询', iconCls: 'icon-search', handler: function () { messageManager.loadMessage(); } }, ], }); //分页控件 var p = $('#list_data_message').datagrid('getPager'); $(p).pagination({ //pageNumber: 1, //默认显示第几页 //pageSize: 10, //pageList: [5, 10, 15],//用户可以改变页面大小。pageList属性定义了页面导航展示的页码。 beforePageText: '第', afterPageText: '页 共{pages}页', displayMsg: '当前显示{from}-{to}条记录 共{total}条记录', /*onBeforeRefresh:function(){ alert('before refresh'); //刷新 },*/ /*onSelectPage:function(pageNumber,pageSize){ alert(pageNumber);//翻页 a*/ buttons: [{ iconCls: 'icon-add', handler: function () { alert('add') } }, '-', { iconCls: 'icon-save', handler: function () { alert('save') } }, '-', { iconCls: 'icon-cut', handler: function () { alert('AAAA') } } ] }); }, ``` java代码(springboot) ``` /** * 显示所有信息管理的信息 * @param req * @param model * @return */ @RequestMapping(value="/index") public Map<String, Object> findAllMessage(HttpServletRequest req){ String Searchtitle = req.getParameter("Searchtitle"); if(Searchtitle==null||Searchtitle.equals("undefined")){ Searchtitle=""; } Searchtitle = "%"+Searchtitle+"%"; Integer page = Integer.parseInt(req.getParameter("page")); Integer rows = Integer.parseInt(req.getParameter("rows")); List<Map<String, String>> informations = messageService.findAllInformationRelease(Searchtitle,page,rows); int total = messageService.findCountInformationRelease(Searchtitle); Map<String, Object> json = new HashMap<>(); json.put("total", total); json.put("rows", informations); String jsonarray = JSONArray.toJSONString(informations); return json; } /** * 添加或修改一条信息 * @param informationRelease * @return */ @RequestMapping(value="/save") public FerryInfo saveMessage(@RequestBody InformationRelease informationRelease){ FerryInfo ferryInfo = new FerryInfo(); if(informationRelease.getuGUID()==null||"".equals(informationRelease.getuGUID())){ informationRelease.setuGUID(UUID.randomUUID().toString()); informationRelease.setCreator("test");//TODO informationRelease.setCreateTime(new Date()); }else{ InformationRelease info = informationReleaseDao.findOne(informationRelease.getuGUID()); informationRelease.setCreator(info.getCreator()); informationRelease.setCreateTime(info.getCreateTime()); } informationRelease.setUpdateMan("test");//TODO informationRelease.setUdpateTime(new Date()); informationRelease.setUsable(1); if(informationRelease.getStatus()==1){ informationRelease.setLssueMan("test");//TODO informationRelease.setLssueTime(new Date()); } informationReleaseDao.save(informationRelease); return ferryInfo; } ```
页面内容显示不出来 ,看不懂哪里出错了。
``` main.jsp: <%@ page contentType="text/html;charset=UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>title</title> <%@ include file="../../include/common.jsp"%> <script type="text/javascript"> //定义了一个命名空间,ExpertsMntn.main.xxxx可以直接调用 $.namespace("ExpertsMntn.main"); ExpertsMntn.main.add=function() { $("#ExpertsMntnDetailWin").dialog({ href:'add', title:'添加', draggable:false, //设置dialog自由尺寸 onResize:function(){ $('#ExpertsMntnGrid').datagrid('resize'); } }).dialog('open'); }; ExpertsMntn.main.edit=function() { var row = $('#ExpertsMntnGrid').datagrid('getSelections'); //getSelections:可以多行选中操作; getSelected:只能单行操作; if(row.length==1){ $("#ExpertsMntnDetailWin").dialog({ href:'edit/'+row[0].id, title:'编辑', draggable:false, onResize:function(){ $('#ExpertsMntnGrid').datagrid('resize'); } }).dialog('open'); }else{ $.message.alert("Please select a record only!"); } }; ExpertsMntn.main.del=function() { //获取datagrid选中的数据行 var row = $("#ExpertMntnGrid").datagrid('getSelections'); if(row.length>=1){ //调用easyui的确认框 $.message.comfirm('确认','确认删除?',function(r) { if(r){ var ids = [ ]; //将选中的数据库的id压入ids[]数组; for (var i = 0; i < row.length; i++) { ids.push(row[i].id); } //调用jquery的post方法请求delete地址 $.post('del',{ ids:ids.join(',') },function(result){ //动态页200状态post成功回调并且服务器返回标准json数据执行回调函数 if(result){ // reload data $('#ExpertsMntnGrid').datagrid('clearSelections'); $('#ExpertsMntnGrid').datagrid('reload'); } },"json"); //指定将服务器返回的内容处理成json类型(此外,还可以返回 html、text之类) } }); }else{ $.message.alert('Please select a record only!'); } }; ExpertsMntn.main.listSearch=function() { $('#ExpertsMntnGrid').datagrid('load', { }); }; ExpertsMntn.main.init = function() { $('#ExpertsMntnGrid').datagrid({ //建表?建表插件用法 url:'search', method:'get', pageSize:20, toolbar:'#', fit : true, pagination : true, idField : "id", //支持分页选择记录 pagePosition : "bottom", rownumbers : true, border : false, singleSelect : false, striped : true, fitColumns : true, selectOnCheck : true, checkOnSelect : true, columns:[[{ field:'check', title : '', checkbox : true },{ field : 'id', title : '', width : 22, align : 'center', halign : 'center', sortable : true },{ field:'name', title:'姓名', width:22, align : 'center', halign : 'center', sortable : false },{ field:'sex', title:'性别', width:22, align : 'center', halign : 'center', sortable : false },{ field:'birthday', title:'出生日期', width:22, align : 'center', halign : 'center', sortable : false },{ field:'partymember', title:'政治状态', width:22, align : 'center', halign : 'center', sortable : false },{ field:'itemid', title:'专业', width:22, align : 'center', halign : 'center', sortable : false },{ field:'orgid', title:'所属组织', width:22, align : 'center', halign : 'center', sortable : false },{ field:'telephone', title:'联系方式', width:22, align : 'center', halign : 'center', sortable : false },{ field:'experience', title:'经历', width:22, align : 'center', halign : 'center', sortable : false },{ field:'remarks', title:'备注', width:22, align : 'center', halign : 'center', sortable : false },{ field:'content', title:'照片附件', width:22, align : 'center', halign : 'center', sortable : false },{ field:'photo-suffix', title:'照片文件后缀名', width:22, align : 'center', halign : 'center', sortable : false }]], //查看操作,onDblClickRow onDblClickRow : function(index, row) { $('#ExpertsMntnGrid').datagrid("clearSelections"); $('#ExpertsMntnGrid').datagrid("selectRow", index); $('#ExpertsMntnDetailWin').dialog({ href : 'view/' + row.id, title : "查看", draggable : false, onResize : function() { $('#ExpertsMntnGrid').datagrid('resize'); } }).dialog('open'); } }); }; $(document).ready(function() { ExpertsMntn.main.init(); }); </script> </head> <body> <div class="easyui-layout" fit="true" border="false" > <div region="north" border="false" > <div id="toolbar" border="false" class="dialog-toolbar" style="border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #DDDDDD"> <a href="#" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-add'" onclick="ExpertsMntn.main.add()">添加</a> <a href="#" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-edit'" onclick="ExpertsMntn.main.edit()">编辑</a> <a href="#" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-remove'" onclick="ExpertsMntn.main.del()">删除</a> </div> </div> <div region="center" border="false" style="width: 100%; height: 100%"> <table id="ExpertsMntnGrid"></table> </div> <div id="ExpertsMntnDetailWin" class="easyui-dialog" title="" style="width: 450px; height: 750px;" data-options="modal:true,closed:true"></div> </div> </body> </html> detail.jsp: <%@ page contentType="text/html;charset=UTF-8"%> <%@ include file="../../include/header.jsp"%> <script type="text/javascript"> $.namespace("ExpertsMntn.detail"); ExpertsMntn.id="${(ExpertsMntnEntity.id)==null?0:(ExpertsMntnEntity.id)}"; ExpertsMntn.detail.mode = "${mode}"; ExpertsMntn.detail.save = function(){ var url = $.ctx+'/zjkwh/save/'+ ExpertsMntn.id; $('#ExpertsMntnForm').form('submit', { url: url, onSubmit: function(param) { if(ExpertsMntn.detail.mode=='edit'){ return $(this).form('validate'); } var flag = false; $.ajax({ type : "post", url : 'check', dataType : "json", data : { id : $('#id').val() }, async : false, success : function(result) { if (result == true) { flag = true; } } }); if(!flag){ return $(this).form('validate'); } else { $.messager.alert('数据已存在'); $('#ExpertsMntnGrid').datagrid('load'); return !flag; } }, success: function(result) { var data = (new Function("","return "+ result))(); $('#ExpertsMntnGrid').datagrid('reload'); if (data.id) { ExpertsMntn.id = data.id; $.messager.alert('提示', '保存成功!','',function(){ $('#ExpertsMntnDetailWin').dialog('close'); }); } else { $.messager.show({ title: 'Error', msg: result }); } } }); } $(document).ready(function() { }); </script> <div class="easyui-layout" region="center" style="height:700px;border:1px dashed #FFFFFF"> <c:if test="${(mode=='edit') || (mode=='add')}"> <div class="editform" style="border:1px dashed #FFFFFF"> <form id="ExpertsMntnForm" method="post" novalidate style="margin-bottom: 0"> <input id="id" name="id" type="hidden" value="${ExpertsMntnEntity.id }" /> <ul style="list-style-type: none; height: 5px"></ul> "validType:'length[1,50]'" value="${ExpertsMntnEntity.wonawardz}" size="20" style="width: 140px;height:30px;line-height:30px;border-style:none;margin-right:3px;float: left;background: url('${ctx}/static/images/inputbg.png') ;background-size: 100% 100%; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${ctx}/static/images/inputbg.png', sizingMethod='scale')\9;" /> </li> </ul>--> </div> </c:if> <c:if test="${mode=='view'}"> <div class="editform"> <table border=1> <tbody> <tr> <td class="label"><label>&nbps;ID:</label></td> <td>${expertsMntnEntity.id}</td> </tr> <tr> <td class="label"><label>姓名:</label></td> <td>${expertsMntnEntity.name}</td> </tr> <tr> <td class="label"><label>性别:</label></td> <td>${expertsMntnEntity.sex}</td> </tr> <tr> <td class="label"><label>出生日期:</label></td> <td>${expertsMntnEntity.birthday}</td> </tr> <tr> <td class="label"><label>专业:</label></td> <td>${expertsMntnEntity.itemid}</td> </tr> <tr> <td class="label"><label>获得奖项:</label></td> <td>${expertsMntnEntity.wonawardz}</td> </tr> <tr> <td class="label"><label>经历:</label></td> <td>${expertsMntnEntity.experience}</td> </tr> <tr> <td class="label"><label>备注:</label></td> <td>${expertsMntnEntity.remarks }</td> </tr> </tbody> </table> </div> </c:if> </div> 只有添加才能显示出内容,编辑和查看操作在对话框中显示不出来,就连div框都显示不了!对话框能打开,但是里面什么东西都没有! ```
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
小白如何学习java?
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
【C++】C++11的std::array的详细剖析
当学习C++的时候,数组是最基本的结构之一,通常通过以下的方式来定义: int a[5]; int *b = new int[5]; 上面一句是在栈上定义了一个长度为5的数组,下面一句是在堆上定义了一个长度为5的数组,并用一个指针指向它。 在C++11中,引入了一种新的数组定义方式std::array。 std::array的特性 std::array是具有固定大小的数组。因此,它并不支持添加...
Python 基础(一):入门必备知识
Python 入门必备知识,你都掌握了吗?
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。 但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇 普普通通,我的三年大学 之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢? 就在昨天,一位叫小菜的读者微信我说了上面这段话。 我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload   这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风......) 不要去某站买付费的......   PanDownload下载地址   2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了     bejson网站   3.二维码美化 这个网站的二维码美化很好看,网站界面
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的段子
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问