有三个方面的内容,一个是远程获取数据,一个是页面跳转回来FORM表单值保留,一个是自动选中复选框,这是在工作中经常用到的,看完保证不会在遇到这类问题了。 附件是工程截图
<form action="<%=basePath%>/app/step2kettle_new.jsp" method="post" id="kettle" name="kettle">
<input type="hidden" id="folder1" name="folder1"></input>
<input type="hidden" id="wfName" name="wfName"></input>
<input type="hidden" id="folder1Id" name="folder1Id"></input>
</form>
<table align="center">
<tr>
<td>
<div id="grid"></div>
</td>
</tr>
</table>
<div id="subform"></div>
<div id="add-win" class="x-hidden">
<div class="x-window-header">
节点维护
</div>
<div id="add">
</div>
</div>
<SCRIPT LANGUAGE="JavaScript">
var flag = '1';//标志位,第一次进页面可以选中默认项,第二次加载数据不再选中默认行
var folderValue = "<%=v.getFolderId()%>";
var sysID = '<%=v.getSysID()%>';
var modID = '<%=v.getModID()%>';
var typeID = '<%=v.getJobTypeID()%>';
var nodeID = '<%=v.getNodeID()%>';
var policyID = '<%=v.getPolicyID()%>';
var typeName = '<%=v.getJobTypeName()%>';
function jsonDecode(data){
return new Function("return"+data)();
}
function mes(){
Ext.MessageBox.alert("信息","该节点配置的数据源无任务,请查看数据源配置并修改调度节点信息");
}
var folderStore = new Ext.data.JsonStore({
url: '<%=basePath%>/getFolder.di?nodeID='+nodeID+'&typeID='+typeID,
fields: ['folderID', 'folderName']
});
folderStore.on("loadexception",mes);
//-2011.11.8,add by zxg
folderStore.on("load",function(store,record,opts){
if(folderValue!='null'){
Ext.getCmp("folder").setValue(folderValue);//回显
getWorkFlows();//复选框内容显示
}
});
//
folderStore.load();
var folder = new Ext.form.ComboBox({
fieldLabel: 'KETTLE任务类型<span style="color: red">*</span>',
store: folderStore,
id:'folder',
name:'folder',
displayField:'folderName',
valueField:'folderID',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
forceSelection :true,
selectOnFocus:true,
width : 200
});
function getWorkFlows(){
ds.load({params:{kettleType:folder.getValue()},callback: setBackValue});
}
folder.on('select',getWorkFlows);
var Plant = Ext.data.Record.create([{name:'wf',mapping:'wf'}]);
var ds = new Ext.data.GroupingStore({
proxy: new Ext.data.HttpProxy({url:'<%=basePath%>/getWokflowByFolderAndNode.di?nodeID='+nodeID+'&typeID='+typeID}),
reader: new Ext.data.JsonReader({}, Plant)
});
/*
var bar = new Ext.PagingToolbar({
pageSize: 20,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录",
firstText:"首页",
prevText:"上一页",
nextText:"下一页",
lastText:"尾页",
refreshText:"刷新",
beforePageText :"当前页",
afterPageText:"共{0}页"
});
*/
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
sm,
{header:'Kettle任务名称',dataIndex:'wf',sortable:true}
]);
//设置选中的复选框内容
function setBackValue(){
var baV="<%=v.getWfName()%>".split(",");//要回显的所有主键
var records=[];//存放选中记录
for(var i=0;i<baV.length;i++){
ds.each(function(record){
if(baV[i]==record.get("wf")){//根据后台数据判断那些记录默认选中
records.push(record);
}
});
}
sm.selectRecords(records);//执行选中记录
}
function nextStep(){
var tt =sm.getSelections();
if (tt.length<1)
{
Ext.MessageBox.alert("信息","请选择一条记录");
}else{
document.all.item("folder1Id").value=folder.getValue();
//getRawValue();文本值
for(var i=0;i<tt.length;i++){
document.all.item("wfName").value += tt[i].data.wf+",";
}
document.forms["kettle"].submit();
}
}
function back(){
location.href = '<%=basePath%>/app/step1.jsp?sysID='+sysID+'&modID='+modID+'&policyID='+policyID+'&nodeID='+nodeID+'&jobTypeName='+typeName+'&jobTypeID='+typeID;
}
Ext.onReady(function() {
Ext.QuickTips.init();
Ext.MessageBox.buttonText.ok = "确定";
var modField = new Ext.form.TextField({name:'id',value:''});
var processform=new Ext.FormPanel({applyTo:'subform',items:[modField]});
processform.hide();
var grid = new Ext.grid.GridPanel({
id: 'nodegrid',
loadMask: {msg:'正在加载数据,请稍侯…'},
store:ds,
cm:cm,
sm:sm,
viewConfig: { forceFit:true},
tbar:[
{text:'上一步',iconCls:'edit',handler:back},'-',
{text:'下一步', iconCls:'add',iconAlign: 'right' ,handler:nextStep},'-'
],
//bbar: bar,
width:730,
height:340,
frame:false,
collapsible: false,
animCollapse: false,
iconCls:'icon-grid'
});
var ct = new Ext.Panel({
applyTo: 'grid',
frame: true,
title: 'Kettle任务列表',
defaultType: 'textfield',
tbar: ['KETTLE任务类型 :', folder],
items: [grid]
});
});
</SCRIPT>
- 大小: 11.5 KB
分享到:
相关推荐
实现`EditGrid`中`ComboBox`的值回显至网格的关键在于正确配置`ComboBox`的`valueField`和`displayField`属性,以及在`ColumnModel`中设置适当的`renderer`函数来处理数据展示。 - **`valueField`与`displayField`*...
CheckboxSelectionModel是ExtJS中表格组件的一个重要部分,它允许用户通过复选框选择表格行。然而,原生的CheckboxSelectionModel并不支持级联选择,即选中父级复选框时,其子级复选框不会自动被选中。这在处理层级...
8. **浏览器兼容性**:虽然ExtJS是一个跨浏览器的库,但不同的浏览器可能对某些功能支持程度不同,这可能影响到回显效果。 9. **版本兼容性**:如果你在使用旧版本的ExtJS,有些特性可能不稳定或已被废弃。升级到...
在EXTJS4中,ComboBox是一个常用的组件,它用于创建下拉选择框,通常用于输入框的辅助选择。这个组件提供了一种用户友好的方式来从一组预定义的选项中进行选择。然而,根据你的标题和描述,你似乎遇到了一个特别的...
资源名称:获取ExtjS表格的值_ ExtJS_3.4 cellSelectModel资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
在EXTJS中,ColumnModel是用来定义GridPanel列结构和行为的关键部分。这篇博客"EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化"探讨了如何使GridPanel的列宽根据数据内容自动调整,以确保最佳的用户界面体验...
extjs 树形下拉列表框,可以进行数据选择,数据回显。
在本篇文章中,我们将深入探讨如何在ExtJs框架中有效地获取表单元素的值,并结合提供的代码示例进行详细解析。对于前端开发者来说,掌握如何高效地操作表单元素是必不可少的一项技能,尤其是在使用像ExtJs这样的强大...
### ExtJs Grid 多选及获取选中值详解 #### 一、背景介绍 在Web应用开发中,ExtJs 是一款非常强大的JavaScript框架,它能够帮助开发者快速构建复杂的用户界面。其中,Grid Panel(简称 Grid)是ExtJs中最常用的一个...
struts spring hibernate jquery extJs简单教程超值
本篇文章将详细讲解如何在EXTJS中操作下拉框,以及如何获取用户选定的值。 首先,创建一个基本的EXTJS下拉框需要定义`Ext.form.field.ComboBox`对象。以下是一个简单的示例: ```javascript Ext.application({ ...
在IT领域,特别是前端开发中,ExtJS是一个广泛使用的JavaScript框架,用于构建复杂的企业级Web应用程序。本文将深入探讨如何在ExtJS中实现复选下拉框(Multiselect ComboBox),并提供一个具体示例,帮助开发者更好...
Extjs如何获取文本框的值Extjs如何获取文本框的值Extjs如何获取文本框的值Extjs如何获取文本框的值Extjs如何获取文本框的值Extjs如何获取文本框的值
### ExtJs表格点击超链接获取行的值:深入解析与应用 #### 一、ExtJs表格超链接渲染 在ExtJs框架中,我们经常需要在表格(`Ext.grid.Panel`)中显示超链接,并且当用户点击这些超链接时,能够获取到当前行的数据。...
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...
ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...
GridPanel由Store(数据存储)、ColumnModel(列模型)和View(视图)等主要部分组成。在GridPanel中添加“合计”行,主要涉及到View的自定义和数据处理。 1. **创建自定义View**: - 首先,我们需要创建一个继承...
GridPanel由Store(数据存储)和ColumnModel(列模型)组成,它们定义了数据源和显示样式。在创建GridPanel时,我们需要配置这两个部分,例如: ```javascript var store = Ext.create('Ext.data.Store', { fields...
动态表头的核心在于理解ExtJS的GridPanel组件和ColumnModel类。GridPanel用于显示数据,而ColumnModel则定义了GridPanel的列结构和属性,如宽度、对齐方式、可排序性等。 描述中的“csdn里有个兄弟类似的东西要10分...
本书作为Extjs的中文教程,旨在帮助读者快速上手Extjs,其内容涉及Extjs的基础知识和实际应用。 #### 2. JavaScript基础知识 - **类的定义**: Extjs中的类继承于JavaScript原生类,通过Ext.extend来定义。这是...