Как загрузить данные в jqgrid на основе URL
Я хочу загрузить данные в jqgrid на основе URL. В edit mode
Я получаю данные из метода ниже на основе userId.
url:'<%=request.getContextPath() %>/Admin/getAllUserOffersList/${userBean.userId }'
И в Addmode
Я получаю данные снизу URL
url:'<%=request.getContextPath() %>/Admin/getAllOffersList/'
Я проверяю условие if, основанное на userId, но невозможно разместить его, показало мне ошибку.
if (userBean.userId != null) {
url:'<%=request.getContextPath() %>/Admin/getAllOffersList/';
} else {
url:'<%=request.getContextPath() %>/Admin/getAllUserOffersList/${userBean.userId }';
}
когда я проверяю выше условие в приведенном ниже коде это показывает
Синтаксическая ошибка на токене ":",; ожидаемый
Я хочу использовать только один URL
Вот мой код:
$(document).ready(function(){
//jqGrid
$("#userOffersList").jqGrid({
url:'<%=request.getContextPath() %>/Admin/getAllOffersList/',
url:'<%=request.getContextPath() %>/Admin/getAllUserOffersList/${userBean.userId }',
datatype: "json",
colNames:['Select','Category','Offer Text','Provider Name'],
colModel:[
{name:'isSelect',index:'isSelect',formatter: "checkbox", formatoptions: {disabled : false},editable: true,edittype:"checkbox",editoptions:{value:'true:false', defaultValue: 'false'},sortable:false,width:50},
{name:'category',index:'category',width:100},
{name:'offerText',index:'offerText',width:350},
{name:'providerName',index:'providerName',width:250},
],
rowNum:20,
rowList:[10,20,30,40,50],
rownumbers: true,
pager: '#pagerDiv',
sortname: 'offerText',
viewrecords: true,
sortorder: "asc",
autowidth:'true',
});
$('#gridContainer div:not(.ui-jqgrid-titlebar)').width("100%");
$('.ui-jqgrid-bdiv').css('height', window.innerHeight * .55);
$('#load_userOffersList').width("130");
$("#userOffersList").jqGrid('navGrid','#pagerDiv',{edit:false,add:false,del:false});
$(".inline").colorbox({inline:true, width:"20%"});
});
Страница JSP:
<div id="tabs-2">
<div id="gridContainer" >
<table id="userOffersList"></table>
<div id="pagerDiv"></div>
</div>
</div>
1 ответ
Пожалуйста, скопируйте, вставьте код ниже и попробуйте, если это работает. Это должно очистить все ваши синтаксические ошибки:
$(document).ready(function () {
//jqGrid
$("#userOffersList").jqGrid({
<c:choose>
<c:when test="${not empty userBean.userId}">
url: '${pageContext.request.contextPath}/Admin/getAllOffersList/',
</c:when>
<c:otherwise>
url: '${pageContext.request.contextPath}/Admin/getAllUserOffersList/${userBean.userId}',
</c:otherwise>
</c:choose>
datatype: "json",
colNames: ['Select', 'Category', 'Offer Text', 'Provider Name'],
colModel: [
{name: 'isSelect', index: 'isSelect', formatter: "checkbox", formatoptions: {disabled: false}, editable: true, edittype: "checkbox", editoptions: {value: 'true:false', defaultValue: 'false'}, sortable: false, width: 50},
{name: 'category', index: 'category', width: 100},
{name: 'offerText', index: 'offerText', width: 350},
{name: 'providerName', index: 'providerName', width: 250}
],
rowNum: 20,
rowList: [10, 20, 30, 40, 50],
rownumbers: true,
pager: '#pagerDiv',
sortname: 'offerText',
viewrecords: true,
sortorder: "asc",
autowidth: 'true'
});
$('#gridContainer div:not(.ui-jqgrid-titlebar)').width("100%");
$('.ui-jqgrid-bdiv').css('height', window.innerHeight * .55);
$('#load_userOffersList').width("130");
$("#userOffersList").jqGrid('navGrid', '#pagerDiv', {edit: false, add: false, del: false});
$(".inline").colorbox({inline: true, width: "20%"});
});
Пожалуйста, всегда старайтесь использовать JSTL вместо скриптлетов.