要想实现如下效果,点击堆号,下边的物料框自动对应显示,实现简单的联动,一对一,一对多的效果。
首先两个下拉框分别对应两个表数据,两表通过堆号字段关联
为堆号下拉框进行url赋值,
添加onChange方法,用来解决切换时动态改变物料下拉框,
添加onLoadSuccess方法,当堆号下拉框加载数据,并赋值成功后,默认选择对应多条物料的第一条。(在编辑和新增时,极易出现问题。)
var data = $mater.combobox(“getData”);
$mater.combobox(“setValue”, data[0].MaterialID);
注意写法,不然编辑时存入到数据库的 主键和描述 出现错误。
另外编辑和添加的dialog都用的是一个,所以字段名要和datagrid的名称对应。点击编辑某一行时,弹出dialog,数据依次赋值并显示,点击新增时,弹出dialog,数据清空。
//堆号和物料关联
function Heapnumber_MaterialID() {
var $heap = $("#Heapnumber"); //堆号下拉列表
var $mater = $("#MaterialID"); //物料下拉列表
var cc = '';
$heap.combobox({
url: '../ashx/EasyUiAshx/SPBalloutplanHandler.ashx?action=select&&option=HeapnumberIDcombox',
valueField: 'Heapnumber',
textField: 'Heapnumber',
panelHeight: 'auto',
editable: false,
onChange: function (newValue, oldValue) {
if (newValue != "") {
cc = newValue;
$mater.combobox({
disabled: false,
url: '../ashx/EasyUiAshx/SPBalloutplanHandler.ashx?action=select_Material&&option2=' + newValue,
method: 'GET',
valueField: 'MaterialID',
textField: 'MaterialDes',
panelHeight: 'auto',
editable: false,
onLoadSuccess: function () {
var data = $mater.combobox("getData");
$mater.combobox("setValue", data[0].MaterialID);
//注意赋值的方法,很重要。
}
});
}
},
onLoadSuccess: function () {
var AA = $("#Heapnumber").combobox('getValue');
//编辑的时候有值,新增的时候无值。
if (AA != "") {
$mater.combobox({
disabled: false,
url: '../ashx/EasyUiAshx/SPBalloutplanHandler.ashx?action=select_Material&&option2=' + AA,
method: 'GET',
valueField: 'MaterialID',
textField: 'MaterialDes',
panelHeight: 'auto',
editable: false,
onLoadSuccess: function () {
var data = $mater.combobox("getData");
$mater.combobox("setValue", data[0].MaterialID);
}
});
}
}
});
}