easyui datagrid 定义列的方式通常是:
[javascript] view plaincopy
$('#grid').datagrid({columns:[[
{field:'f1',title:'字段1',width:160},
{field:'f2',title:'字段2',width:160}
]]});
但在实际项目中,我们会经常需要datagrid能动态生成列。
在网上搜了一篇文章:再次谈谈easyui datagrid 的数据加载
很佩服这个作者,他居然能在easyui那一堆满是数字和字母组合的变量的被混淆的源码中,找到自己想要扩展的功能。。。强!
但是我不喜欢这种方式。毕竟修改源码有很多副作用,还是喜欢原生态。
动态生成列,这个很常见的需求,easyui不太可能不支持。
只是官方文档没有提到而已,可能作者是想靠这些高级功能赚咨询费。。。
说了很多废话,现在贴出我费了不少周折搞定的方法:
var options={};
$(function(){
var myNj = 9;
//初始化
$("#disgrid").datagrid({
type: 'POST',
nowrap: false,
striped: true,
fit:true,
width:1024,
height:500,
url:'',
pageSize:30,
remoteSort: false,
pagination:true,
rownumbers:true,
singleSelect:true,
queryParams:{
nj:myNj,
unitType:1
}
});
fetchData(myNj);
});
function fetchData(nj) {
var s = "";
s = "[[";
s = s + "{field:'unitname',title:'单元',width:160},{field:'practicetime',title:'测试时间',width:160},{field:'userid',title:'userid',width:120,hidden:'true'},{field:'serial',title:'serial',width:120,hidden:'true'},{field:'unitid',title:'unitid',width:100,hidden:'true'},";
//lu todo 列的定义可从服务器获得
if (nj==9) {
s = s + "{field:'aipanel_text_exam',title:'短文朗读',width:80},{field:'aipanel_scene_exam',title:'情景对话',width:80},{field:'aipanel_oral_exam',title:'简短说话',width:80}";
//lu 加一个计算列
s = s + ",{field:'tatal_score',title:'总分',width:60,formatter:function(value,rec){return paraseIntValue(rec.aipanel_text_exam)+paraseIntValue(rec.aipanel_scene_exam)+paraseIntValue(rec.aipanel_oral_exam);}}";
}else if (nj==7||nj==8){
//....
}
s = s + "]]";
options={};
options.url = '/app/search.do';
options.queryParams = {
nj:nj,
unitType:1
};
options.columns = eval(s);
//lu 增加一列
options.columns[0].push(
{
field:'desc',title:'查看详情',width:60,
formatter:function(value,rec){
return "<a href=\"javascript:showDescInfo(\'"+rec.serial+"\',\'"+rec.scene_score+"\',\'"+rec.total_score+"\');\">详情</a>";
}
}
);
$('#disgrid').datagrid(options);
$('#disgrid').datagrid('reload');
}
分享到:
相关推荐
easyUI页面datagrid动态列和form字段动态添加;项目开发时用到的,废了不少事,大概总了一下,现在发出来共享给想我一样的要用到的菜鸟们,谢谢
在IT领域,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如数据分页、排序、筛选等。当我们需要将Datagrid中的数据进行打印时,可能会遇到一些挑战,因为通常默认的浏览器打印功能...
在描述中提到的"easyui的datagrid生成合并行,合计计算价格",指的是如何使用EasyUI的DataGrid组件来实现表格数据的行合并以及总价的计算功能。以下是对这个知识点的详细解释: 1. EasyUI DataGrid组件: EasyUI的...
本文的目标是通过一个具体的案例来展示如何使用JQuery EasyUI的datagrid组件来实现多表头和根据数据库动态生成列的需求。 #### 解决方案 ##### 1. 后端逻辑准备 为了实现前端表格能够根据数据库内容动态变化,...
在IT领域,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如排序、分页、过滤等。"EasyUI Datagrid 导出到Excel"这一主题涉及的是如何将EasyUI Datagrid中的数据显示在Excel表格中,...
在Easyui的1.3.3版本中,作者新增了tooltip组件,尽管样式看起来也...之前我写过一篇《扩展:datagrid鼠标经过提示单元格内容》那就是用纯编码生成的tip,更为丑陋,有了Easyui 1.3.3的tooltip,我们实现起来就很容易了
**1.1 DataGrid 自动生成列与用户自定义列** EasyUI 的 DataGrid 控件支持两种方式的数据绑定:自动列生成和用户自定义列。 - **自动列生成**:当 `AutoGenerateColumns` 属性被设置为 `true` 时,DataGrid 会根据...
1. **分析源码**:首先,我们需要查看EasyUI Datagrid的源代码,找到与序号列生成和定位相关的部分。这部分代码可能涉及DOM操作和事件绑定。 2. **创建新功能**:然后,我们需要添加新的函数或方法,用于创建可滚动...
可以使用JavaScript触发异步请求,将当前Datagrid的数据显示范围发送到服务器,然后服务器端生成Excel文件并返回给客户端。 5. **搜索**: Datagrid内置了搜索功能,可以通过配置`fitlers`属性为每列添加过滤条件...
### easyui的datagrid数据excel导出 #### 一、知识点概览 1. **EasyUI框架简介** 2. **DataGrid组件概述** 3. **DataGrid的列配置** 4. **将DataGrid转换为表格(Table)结构** 5. **导出至Excel的具体实现** 6. *...
4. **初始化表格**:使用EasyUI的`datagrid`方法初始化表格,并传入动态生成的列配置。 ```javascript $('#datagrid').datagrid({ columns: [columns], data: dataSource.data // 数据源中的数据行 }); ``` 5. *...
"使用easyui表格数据动态生成饼图"的主题涉及到前端开发中的几个关键点:EasyUI框架、数据处理以及JavaScript图表库ECharts。下面我们将深入探讨这些知识点。 首先,EasyUI是一个基于jQuery的UI库,它提供了一系列...
1. **定义列模板**:在DataGrid的columns配置中,为需要添加拾色器的列设置一个特殊的模板。模板中可以包含一个ComboBox,用于显示颜色选择的下拉框。 2. **创建ComboBox**:ComboBox是EasyUI中的一个下拉选择框...
可以使用AutoGenerateColumns属性自动生成列,或者手动定义每列的Width属性。 3. **编程实现合并**:在后台代码中,需要对DataGrid的ItemsSource进行处理,识别出哪些行或列需要合并,并设置相应的HeaderSpan属性。...
本教程将深入讲解如何在.NET环境中利用EasyUI的DataGrid实现分页功能,同时也会涉及列的操作。 首先,我们需要理解什么是分页。分页是当数据量过大时,为了提高用户界面的响应速度和用户体验,将数据分成若干页进行...
标题 "easyui datagird增删改分页例子" 提示我们这个压缩包包含一个使用EasyUI DataGrid实现数据操作和分页功能的示例。EasyUI是一个基于jQuery的前端框架,DataGrid是其组件之一,常用于展示表格数据并支持用户交互...
在某些情况下,我们需要根据用户的权限或特定需求动态地调整DataGrid显示的列,这可以通过动态生成列来实现。以下是对EasyUI DataGrid动态生成列的详细说明。 首先,我们要理解DataGrid的`columns`属性。`columns`...
1. **查询**:EasyUI的datagrid支持动态查询,用户可以通过输入关键字或选择条件来过滤数据,实时更新显示结果。 2. **分页**:为了提高用户体验和页面性能,通常会将大量数据分成多个页进行显示。EasyUI datagrid...
5. 该示例代码还涉及了如何通过JavaScript循环将Json数据集中的数据绑定到DataGrid中,即通过循环将数据集中的每一行数据绑定到表格的对应列上。 文章中还提到了EasyUI的DataGrid组件的两种绑定数据的方法。第一种...
在EasyUI中,数据导出通常与表格组件(datagrid)紧密关联,因为表格通常承载着大量的数据。以下是一些关于EasyUI导出功能的关键知识点: 1. **导出类型**:EasyUI支持多种导出格式,如CSV(逗号分隔值)、Excel、...