dataGrid的combobox改變,輸入框值隨之變化
阿新 • • 發佈:2019-01-29
在datagrid初始載入後,點選雙擊編輯,根據一個輸入框的下拉選擇,改變另一個輸入框的值。有關的頁面展示如下
下面是有關的程式碼:
var line;//定義一個全域性變數,在雙擊編輯的時候,將編輯行的索引賦值給該變數
var pipingLevel = [{"value":"0","text":"體育用品"},{"value":"1","text":"生活用品"},{"value":"2","text":"食品"}];
//json格式,下拉框的格式內容,可以通過後臺查詢,也可以在前臺直接定義
grid = $("#hg").datagrid({//分配儲位的右邊的關聯庫位的展示
url : 'manager.do?method=getStoragelocation&id=' + id,
fit : true,
rownumbers : true,
singleSelect : false,
selectOnCheck : true,
checkOnSelect : true,
toolbar : '#tb',
columns : [ [ {
field : 'id',
checkbox : true
}, {
field : 'goodsName' ,
title : '商品明細',
width : 150,
align : 'center',
editor : {
type : 'combobox',
options : {
precision : 2,
validType : 'number',
editable : false //將輸入框變成不能編輯的狀態
}
}
}, {
field : 'goodsType',
title : '商品型別',
width : 80,
align : 'center',
formatter : function(val, row, index) {
if (val == 0) {
return "體育用品";
} else if (val == 1) {
return "生活用品";
} else if (val == 2) {
return "食品";
}
},
editor:{
type: 'combobox',
options: {
data: pipingLevel,
valueField: "value",
textField: "text",
editable: false,
panelHeight:70,
required: true,
onChange:function(k,v){
//k是新的值,v是初始值
var lineInfo = $('#hg').datagrid('getData').rows[line];
var productName = lineInfo.goodsnumber;
var editors = $('#hg').datagrid('getEditors', line);//取當前的編輯器
var row = $('#hg').datagrid('getRows')[line];
var smEditor = editors[1];
$(smEditor.target).combobox('clear');
//根據下拉選擇的值傳送ajax查詢有關的資料,將資料載入到變化的輸入框中
$.ajax({
type : "POST",
url : 'manager.do?method=changeKw',
data : {
goodsnumber :productName,
type:k
},
success : function(data) {
var str=[];
var s = "";
if(data.length != 0){
for ( var i = 0; i < data.length; i++) {
s = {"value":data[i].librarynum,"text":data[i].librarynum};
str.join(",");
str.push(s);
}
}
//var str = [{"value":data[0].librarynum,"text":data[0].librarynum}];
var editors = $('#hg').datagrid('getEditors', line);//取當前的編輯器
var row = $('#hg').datagrid('getRows')[line];
var smEditor = editors[0];//獲得datagrid的第一個編輯框(庫位程式碼)
$(smEditor.target).combobox("loadData", str);
$(smEditor.target).combobox('select', data[0].librarynum);//選項框預設顯示第一條
}
});
}
}
}
}
] ],
//雙擊編輯事件
onDblClickRow : function(rowIndex, rowData) {
var data = $('#hg').datagrid('getData');
//最後一行取消編輯
//雙擊開啟編輯行
if (editval != rowIndex) {
line=rowIndex;
$("#hg").datagrid('refreshRow',rowIndex);
$('#hg').datagrid("endEdit", editval);
$('#hg').datagrid("beginEdit", rowIndex);
editval = rowIndex;
//在雙擊事件中,將改變方法重新載入一下,當雙擊編輯時,資料就能直接載入
$.ajax({
type : "POST",
url : 'manager.do?method=changeKw',
data : {
goodsnumber :rowData.goodsnumber,
type:rowData.kuweitype
},
success : function(data) {
console.info(data);
var str=[];
var s = "";
if(data.length != 0){
for ( var i = 0; i < data.length; i++) {
s = {"value":data[i].librarynum,"text":data[i].librarynum};
str.join(",");
str.push(s);
}
}
//var str = [{"value":data[0].librarynum,"text":data[0].librarynum}];
var editors = $('#hg').datagrid('getEditors', line);//取當前的編輯器
var row = $('#hg').datagrid('getRows')[line];
var smEditor = editors[0];//獲得datagrid的第一個編輯框(庫位程式碼)
$(smEditor.target).combobox("loadData", str);
$(smEditor.target).combobox('select', data[0].librarynum);//選項框預設顯示第一條
}
});
} else {
editval = undefined;
$('#hg').datagrid("endEdit", rowIndex);
}
},
});