我当前正在使用jQgrid
绘制列表,并且正在通过Ajax
检索数据。我可以正常返回列表,并且没有任何问题。
我的问题是我必须根据获得的状态值动态填充选项列表。
呼叫数据的地方:
$(function(){
search_provider();
// grid resize
$(window).on('resize.jqGrid', function() {
$("#requestList").jqGrid('setGridWidth', $(".grid-cover").width());
})
});
function search_provider() {
var queryData = $("#searchList").serialize();
$.ajax({
url : "/v1/point/admin/provider/game_provider_list",
type : "GET",
dataType : "json",
data: queryData,
success : function(result) {
$("#resultLength").text(result.jqgrid_data.length);
if(result.jqgrid_data.length == 0){
noData();
}else{
$('#grid-cover').show();
$('#no-data').hide();
setRequestList(result.jqgrid_data)
}
}
})
}
动态填充的地方:
{
name : 'approval_status',
index : 'approval_status',
align : 'center',
editable : true,
edittype : 'select',
formatter : 'select',
editoptions : {
value : "0:Unauthorized;1:Approval;2:Hold;3:Denial of approval;4:Reclamation",
dataEvents : [{
type : 'change',
fn : function(e) {
...
}
}]
}
}
它现在显示所有列表。
当approval_status
的值为'0'时,返回"0:Unauthorized;1:Approval;2:Hold;3:Denial of approval"
当approval_status
的值为'1'时,返回"1:Approval;4:Reclamation"
当approval_status
的值为'2'时,返回"1:Approval;2:Hold;3:Denial of approval"
当approval_status
的值为'3'时,返回"1:Approval;2:Hold;3:Denial of approval"
我想像上面一样被改变。您如何解决这个问题?
预先感谢
答案 0 :(得分:0)
指定从数据库导入的数据变量的相同名称,并通过状态值注册条件语句以获得与条件匹配的数据库数据。并绘制 JQgrid 以适合数据。
MyBatis.xml
select id="list" parameterType="hashmap" resultType="hashmap">
<choose>
<when test='approval_status == "0"'>
SELECT
seq_no AS col1,
nick_name AS col2,
...
FROM DB_DB
<when test='approval_status == "1"'>
SELECT
seq_no AS col1,
............
</choose>
JQgrid.js
function setRequestList(jqgrid_data,status){
var title = [];
if(status == '0'){
title = ['No', 'nick',... ];
}else if(status == '1'){
title = ['No', 'name', ... ];
}
var colmodel = [];
$("#requestList").jqGrid("GridUnload");
jQuery("#requestList").jqGrid({
data : jqgrid_data,
datatype : "local",
height : 'auto',
colNames : title,
colModel : [{
name : 'col1',
index : 'seq',
align : 'center',
sortable : false
}
...