easyui

后台二进制文件 在前台下载方法总结

こ雲淡風輕ζ 提交于 2020-02-27 01:50:35
总结下实际开发过程中使用过的文件下载方法: 刚开始接触$.ajax()时 欣喜若狂,以为所有的异步交互都可以用它来操作,直到流文件。具体的场景是: 后台操作文件 ,以二进制流的形式,返回到前台(我实际的场景是导出Excel文件) context.Response.BinaryWrite(二进制数组); 首先想到的是通过$.ajax来进行操作,因为和后台交互的参数很多,它的参数形式可以用键值对对象的形式,很方便, 但是怎么操作都不行,不报错,但是文件就是不能下载,又想到设置dataType的形式,发现没文件流的形式,心中 一万个……. 废话少说,总结方法: (1)通过a标签的形式,应该可以满足大多的需求。 就是通过设置href属性,点击a标签,就可以下载成功。PS:a的html5中download的属性,可以直接重命名文件。 固定的:<br><a download="data.xls" href="file.ashx?paramone=canshuyi"> </a><br>动态的: <button type="button" onclick="download()">导出</button> function download() { var a = document.createElement('a'); var url = 'download/?filename=aaa.txt';

目前国内最好用快速开发平台,能帮助你减少90%的重复工作

谁说我不能喝 提交于 2019-12-28 18:27:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ​快速开发平台 是指一个二次开发软件框架,用户可以在这个框架以不写代码或少些代码的方式进行业务系统的开发工作。快速开发平台不同于一般的开发工具,它不只是提供一些基础的功能模块,而且抽象和封装了用户开发一个业务系统所需要的全部功能,使得用户能够不编写代码就能开发出完整的系统。它提供的常用功能包括:页面交互设计、数据管理、用户管理、权限控制、工作流等。 一、减少90%的重复工作 力软是一款基于代码生成器的智能 快速开发平台 ,可以帮助解决项目中90%的重复工作,让开发者更多关注业务逻辑。 既能快速提高开发效率,帮助公司节省人力成本,同时不失灵活性。 二、主体架构 1.主架构为基于ASP.netMVC的B/S架构 力软开发平台 使用了当前最为流行的架构组合,该组合对于大部分开发人员来说都非常熟悉,使用时基本不需要二次学习,可以直接着手开发。 1. 前端UI 基于Jquery +Bootstrap,界面简洁大气,UI 底层库提供了大量UI 组件开发者轻松就能完成各种炫丽的界面。不像 EXT,EasyUI 那样外观千篇一律,另外也省去了 UI 的授权费用,毕竟EXT,EasyUI 都需要收费的。 3.采用 Ajax 技术,页面无刷新,具有 C/S 系统一样的良好的用户体验。此外采用 Ajax

Java全栈开发

元气小坏坏 提交于 2019-12-25 15:27:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我刚开始接触Java的时候主要web端框架是Struts,那时还没有什么前后端分离,还不太流行MVVM框架。 作为一个Java程序员,懂得最多的还是如何用jsp+jquery+easyui来写一个OA系统,需要知道如何一些tomcat的配置,还有对于服务器的一些操作等等。那时的全栈工程师,就是Java+jsp+配置工程师,配置主要是Spring+Struts+ibatis的大量xml配置。套模板,写脚本,复制粘贴easy-ui上的组件代码等。以Java为主的后台系统开发体系中,基本没有专门的前端岗位,都是后端开发全包的这样一个状态。 那时候中小型公司都不会招专门的前端,如果真的需要一些比较复杂美观度要求比较高的页面,可能会将这部分开发工作外包出去,后端程序员再将写好的前端页面复制到项目中改成jsp,其中一些内容替换成jsp标签,在调整一下Javascript交互等等操作,一个项目就可以进入测试上线了。在当时,这就是大多数Java程序员的开发模式。 对于Struts中的一个Action成员变量多如牛毛,引用的地方不计其数,改一处动全身,再加上爆出一些严重的漏洞情况下。SpringMVC开始异军突起,注解式的路径映射,以方法为单位的请求处理,简洁明了的请求定义,开发易上手,易操作,很快的让人开始慢慢抛弃Struts

jquery easyui datagrid 的选中、选择

别说谁变了你拦得住时间么 提交于 2019-12-17 21:27:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录。 getSelections:取得所有选中行数据,返回元素记录的数组数据。 getChecked:取得checkbox选择行的数据,返回元素记录的数组数据。 getSelected跟getSelections是选中行,而getChecked是选择行。 选中行的意思就是,我们单击到某一个行,这行的背景色为改变,即选中行。 而选择行的意思就是,在行首放置了一个checkbox按钮,勾选了这个按钮,也可以将选择行称为勾选行 var data = $('#storeLocList').datagrid('getSelected'); 来源: oschina 链接: https://my.oschina.net/u/2556911/blog/692850

easyui datagrid deleteRow(删除行)的BUG!

↘锁芯ラ 提交于 2019-12-09 22:25:48
项目中又用到easyui 的datagrid做数据展示。功能很强大,很实用,但bug也很多。今天这个就够让人头疼。 如图,现在有个删除功能,选中一行,点击就可以删除。 easyui datagrid 提供了deleteRow方法。可以实现删除。 但还是出问题了。 第一次删除后,就会出现,点击一行,但是界面上选择的却是他上面那一行。百思不得其解。 google,baidu,各种搜索,得到的答案都是删除后,然后reload。重新加载数据。 我不想这样做也不可能用户一删除就要重新加载。并且第二次删除的话,行号也跟着乱的一塌糊涂。 这明显又是easyui的bug,于是开始一步步跟踪调试easyui所谓的开源代码(被混淆过)。 一下午的调试发现,easyui是根据datagrid-row-index和datagrid-row-r1-x-x来定位行的。 但在deleteRow方法中,删掉当前行后,作者只把当前行后面的行的datagrid-row-index更新了。也就是往前提1,弥补被删除行的空缺,但对datagrid-row-r1-x-x却没做任何改动。 这样就会造成下次执行 opts.finder.getTr的时候,获得的row错误,不是自己点击的row。造成上面所提的错误。 于是: deleteRow: function(target, index) { var opts = $

easyui combogrid分页加载默认值时无法自动跳转到相应页的解决方案

℡╲_俬逩灬. 提交于 2019-12-09 21:53:32
当如果easyui combogrid分布加载时,有默认值,且默认值不在第一页时,此时combogrid里的显示值为idField取到的对就值,如下图: “xiaoxiao”是默认值,但是并没有到相应的页面中被选择,而停留在了第一页。问题现在很清楚。下面提供解决方案前先分析一下: 此时显示的xiaoxiao是后台传回的或页面固定的默认值。grid表格中显示的中查询出来的数据。然后xiaoxiao不在第一页 第一页没有的情况下,如何触发到分布功能按钮,如上一页,下一页等等。 分析完,上代码: 在combogrid数据加载完成后,有个onLoadSuccess方法。在这个方法中实现此功能,如下: ..... <input id="list_data" style="width:250px" value="xiaoxiao"> // xiaoxiao为设置的默认值 ..... $(function() { var find = false; // 为下面进行自动翻页时使用,必须有 $("#list_data").combogrid({ idField: 'id', textField: 'name', //一系列的combogrid设置项就不再说明了 //......... fitColumns: true, onLoadSuccess: function(data) { //

EasyUI中datagrid控件的使用总结

允我心安 提交于 2019-12-09 21:50:57
概述 上一篇文章EasyUI的使用总结主要介绍了首次使用EasyUI 如何操作,介绍了EasyUI控件的整体结构以及实践中的一些注意事项。 这篇文章主要介绍一些EasyUI中datagrid控件实际使用过程中的一些问题及技巧。在项目中最开始就是需要使用datagrid表格才引入EasyUI的。 Datagrid数据表格简介 数据表格以表格形式展示数据,并提供了丰富的选择、排序、分组和编辑数据的功能支持。数据表格的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识。 效果图: 通过<table>标签创建数据表格控件。 < table class = "easyui-datagrid" id = "queryResultList" data-options = " striped:true,fit:true,singleSelect:false,pagination:true,pagePosition:'top',pageSize:50,pageList:[ 15,50,100 ],rownumbers:true,sortName:'id',url:' <%= actionUrl %> ?method=ajaxList /> ' " /> < thead >< tr > < th data-options = "field:'id',checkbox:true" align =

datagrid 后台传到页面的数据不显示

孤街浪徒 提交于 2019-12-07 16:26:55
问题:在 oracle 数据库直接使用 sql 语句 查询能查出数据,但是程序运行后,页面数据却不显示,且 eclipse 控制台日志不报错。 排查:通过 firefox 的 F12 进行页面调试时:网络 --> 响应 追寻出错误: SyntaxError:JSON.parse:bad escaped character at line 1 column 568 of the JSON data 如下图所示: 在仔细查看和对比后,发现数据库中某条数据值中含有反斜杠“ \ ”(如:测试 \ 数据) 实验: 1 、 去掉数据库中该数据值中的“ \ ”后,页面显示正常,进行页面调试结果如下: 2 、 数据值中添加“ \\ ”的情况下,页面显示就成了“测试 \ 数据 ”,即转义成“ \ ”显示。 3 、 而用“ / ”或者“ // ”测试,页面显示为“测试 / 数据 ”和“测试 // 数据”。 总结:“ \ ”代表转义,数据库的值中尽量不要使用反斜杠“ \ ”,不然当数据从后台传送到页面的过程中需要转化成 JSON 格式时,就会出现转换失败的错误。如果真需要在页面显示出反斜杠的话,可以使用“ \\ ”。 来源: oschina 链接: https://my.oschina.net/u/2634462/blog/628539

解决easyui combobox赋值boolean类型的值时,经常出现的内容显示的value而不是text的bug。

我与影子孤独终老i 提交于 2019-12-07 12:24:55
版本:EasyUI 1.7.0 在用easyui写项目时,碰到一个combobox的奇葩bug。代码如下: <div> <select class="easyui-combobox" id="edit_sex" name="sex" data-options="label:'性别:', width:300, required:true"> <option value="true">男</option> <option value="false">女</option> </select> </div> 赋值语句如下: $('#edit_sex').combobox('setValue', row.sex); 本来这是一个很简单的combobox赋值,但是当我真正赋值时却出现了问题,经常出现一个bug,就是赋值完,combobox显示的内容是true或者false,而不是男或女,而且重现率极高。 我在测试了其他赋值情况后,发现是row.sex的值存在问题。该值是boolean类型,combobox赋值boolean类型的值的时候,会经常出现显示内容为value而不是text的bug。 那么问题解决起来就简单了,把boolean类型改为字符串。修改后的赋值语句如下: $('#edit_sex').combobox('setValue', String(row.sex));

easyUI detailview 展开部分IE错位解决方案

为君一笑 提交于 2019-12-07 01:14:24
红色部分为修改部分,设定显示部分高度 忽略JQuery的兼容问题 var detailview = $.extend({}, $.fn.datagrid.defaults.view, { render: function(target, container, frozen){ var state = $.data(target, 'datagrid'); var opts = state.options; if (frozen){ if (!(opts.rownumbers || (opts.frozenColumns && opts.frozenColumns.length))){ return; } } var rows = state.data.rows; var fields = $(target).datagrid('getColumnFields', frozen); var table = []; table.push('<table class="datagrid-btable" cellspacing="0" cellpadding="0" border="0"><tbody>'); for(var i=0; i<rows.length; i++) { // get the class and style attributes for this row var