easyUI datagarid 编辑状态下的combobox动态赋值 10
editor:{type:'combobox',options:{editor:{type:'combobox',options:{valueField:"categor...
editor: {
type: 'combobox',
options: {
editor: {
type: 'combobox',
options: {
valueField: "categoryid'",
textField: "categoryname",
panelHeight: 'auto',
required:true,
url:'selectSmall?categoryid=' + 'categoryid' ,
}
}
看上面,我想知道问号部分的参数值怎么根据 当前行 的 categoryid 获取
又或者 下面 jqData有数据,而且是json,但显示是空白,浏览器里面看全是undefined
var ed = $('#showcourseinfo').datagrid( 'getEditor',{index : rowIndex, field : 'categoryid' } );
$.ajax({ url: 'selectSmall', type : 'POST', async : false,data: { categoryid: rowData.categoryid },success: function (data){ jqData = JSON.stringify(data);alert(jqData);$(ed.target).combobox( 'loadData' , jqData); }
});
求大神解决,分数只有这么多了 展开
type: 'combobox',
options: {
editor: {
type: 'combobox',
options: {
valueField: "categoryid'",
textField: "categoryname",
panelHeight: 'auto',
required:true,
url:'selectSmall?categoryid=' + 'categoryid' ,
}
}
看上面,我想知道问号部分的参数值怎么根据 当前行 的 categoryid 获取
又或者 下面 jqData有数据,而且是json,但显示是空白,浏览器里面看全是undefined
var ed = $('#showcourseinfo').datagrid( 'getEditor',{index : rowIndex, field : 'categoryid' } );
$.ajax({ url: 'selectSmall', type : 'POST', async : false,data: { categoryid: rowData.categoryid },success: function (data){ jqData = JSON.stringify(data);alert(jqData);$(ed.target).combobox( 'loadData' , jqData); }
});
求大神解决,分数只有这么多了 展开
展开全部
当你网格加载完全部数据以后,你肯定要点击某一行,然后根据某一行的categoryid 传给后台请求回数据塞到下拉框里面。
所以你要在onClickRow里面写个函数:
//网格申明方式
nonNetStorage.drugVarGrid0 = $('#medicalGrid0').datagrid({
url : '',
idField : 'categoryid',
fitColumns :true,
rownumbers:true,
nowrap:false,
checkOnSelect : false,
rowStyler:function(index,row) {
return 'background-color:#fff;color:black';
},
height : document.body.clientHeight-223,
columns:[[
{field:'drugName',title:'名称',width:'20%'},
{field:'manufactorId',title:'生产厂商id',width:'20%',hidden:true,
editor : {type : 'textbox', options:{}},
},
{
field : 'manufacturerName',
title : '生产厂商名称',
width : '20%',
editor:{
type:'combobox',
width:'80px',
options:{
valueField: 'manufactorName',
textField: 'manufactorName',
editable : false,
panelHeight : '81',
required:true,
onSelect:function(record) {
//根据选择哪个,然后将id设置到 manufactorId 列里面。
var ed = nonNetStorage.drugVarGrid0.datagrid('getEditor', {index:editIndex,field:'manufactorId'});
$(ed.target).textbox('setValue',record.manufactorId);
}
}
}
}
]],
onClickCell : function(index,field,value) {
//点击一行,动态获取下拉框值,然后将数据塞入下拉框
onClickRow(index,nonNetStorage.drugVarGrid0);
}
});
//这里跟你说个点,下拉框最好用两个编辑列,一个隐藏,
一个用来显示下拉字段。如上两个列:
生产厂商id
生产厂商名称
之所以这么做,是因为你在点击保存的时候,下拉框里面的汉字保存过程会变成id
所以显得不好看。
function onClickRow(index,datagrid){
//这里代码就是重点,网格加载好一行一行数据以后,当你点击某一行
//他就传进editIndex
if (editIndex != index){
if (endEditing(datagrid)){
//判断上一行是否把必填填写完毕。
datagrid.datagrid('selectRow', index).datagrid('beginEdit', index);
//生产企业要根据id获取对应生产企业
var rowDatas = datagrid.datagrid('getRows'); //获取网格全部数据
var ed = datagrid.datagrid('getEditor', {index:index,field:'manufacturerName'});
//加上面if判断,结果回来的时候,看不到原先的值,所以只能点击一次请求一次后台
$.post("drugVarietyInfoAction/queryDrugManufactor?categoryid=" + rowDatas[index].categoryid, [],
function(data) {
$(ed.target).combobox('loadData',data);
}, 'json');
editIndex = index;
} else {
//上一行必填没填写完,强制让其填写。
datagrid.datagrid('selectRow', editIndex);
}
}
}
上面代码大体跟你说下思路:
1.点击某一行,传入某一行index。
2.获取网格全部数据:var rowDatas = datagrid.datagrid('getRows');
3.根据当前行,获取当前行的id。rowDatas[index].categoryid
4.请求后台,得到数据塞入combobox里面。
以上个人以往项目代码以及经验见解,代码临时改造,自己再根据此思路做。如果哪里错误就不用跟我说,我懒得知道。这类东西自己动动脑子,久了就知道。我还有可编辑网格二级联动的你一块参考吧:
TableDI
2024-07-18 广告
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询