Я не знаю, почему всегда есть это:
Во время процесса отладки в java выдается ошибка, и я больше не могу запускать jqgrid. Например, я намеренно неправильно написал синтаксис sql в java, было сгенерировано исключение, а затем я снова запросил, после того как хорошее изменение больше не может быть выполнено в java-программе. Отображаемая на экране «загрузка» вспышки по горизонтали, jqgrid не сделали ни одной. Затем я должен перезапустить Tomcat, чтобы снова отладить. Пока на фоне каких-либо исключений, вызвавших эту ситуацию.
Извините за мой плохой английский.
Есть ли способ улучшить ситуацию? спасибо
Вот мой код:
$.ajaxSetup({ cache: false });
var colspan = 5;
//the last modified cell's iRow and iCol
var lastedit = [];
//color array
var colorarray = new Array(['invalid_normal', 'invalid_manual','invalid_swap','invalid_business'],['valid_normal','valid_manual','valid_swap','valid_business']);
$.ajax(
{
type: "GET",
url: "/cbill/routenew/routequerydata.do",
data: "",
dataType: "json",
success: function(result){
var colModel = createcolModel(result.colModel);
var grid = jQuery("#gridTable");
grid.jqGrid({
jsonReader: {
root: "gridModel", // (2)
records: "record", // (3)
repeatitems : false // (4)
},
url: '/cbill/routenew/freshgriddata.do',
datatype: 'json',
mtype: "GET",
colModel :colModel,
pager: "#gridPager",
rowNum: 50,
rowList: [50,100],
height: 500,
loadonce:false,
//width: 1500,
//autowidth: true,
//colNames: colModelData,
viewrecords: true,
prmNames: {search: 'search'}, //(1)
caption: "Route",
position:"last",
multiselect: true,
multiboxonly:true,
toppager: true,
rownumbers:true,
shrinkToFit:true,
hidegrid: false
});
grid.jqGrid('navGrid','#gridPager',{del:false,add:false,edit:false},{},{},{},
{
caption: "Search",
Find: "Go!",
Reset: "Reset",
//refresh: true,
closeAfterSearch: true,
multipleSearch: true,
groupOps: [{ op: "AND", text: "All" }],
cloneToTop: true
}
).navButtonAdd('#gridPager_left',{
caption:"RT Modify",
buttonicon:"ui-icon-newwin",
onClickButton: function(){
$("#rowdata").jqGrid('GridUnload');
var ids = grid.jqGrid('getGridParam','selarrrow');
if (ids.length == 1) {
var entirerow;
for (var i=0, il=ids.length; i < il; i++) {
var entirerow = grid.jqGrid ('getRowData',ids[i]);
}
//alert(entirerow.vc2routeno);
lastedit = loadComparisonRowData(entirerow, colModel);
}else{
alert("Please select one route!");
return false;
}
},
position:"last"
}).navSeparatorAdd("#gridPager_left",{sepclass : 'ui-separator',sepcontent: ''}).navButtonAdd('#gridPager_left',{
caption:"State Modify",
buttonicon:"ui-icon-newwin",
onClickButton: function(){
$("#rowdata").jqGrid('GridUnload');
var ids = grid.jqGrid('getGridParam','selarrrow');
if (ids.length != 0) {
if($("#gridPager_left").find("#vc2subroutecode").val()=='' && $("#pg_gridPager").find("#vc2subroutecode").val()==''){
alert("Please enter the sub-route code!");
return false;
}
var rowcells=new Array();
var vc2updrouteno=new Array();
for (var i=0, il=ids.length; i < il; i++) {
var entirerow = grid.jqGrid ('getRowData',ids[i]);
rowcells.push(entirerow);
vc2updrouteno.push(entirerow.vc2routeno);
}
loadSelectedRowData(rowcells, vc2updrouteno, colModel);
}else{
alert("Please select route!");
return false;
}
},
position:"last"
});
$('#gridPager_left').clone(true).insertBefore('#gridTable_toppager_left')
$('#gridTable_toppager_left').remove();
$("#resetSearch").click(function() {
var grid = $("#gridTable");
grid.jqGrid('setGridParam',{search:false});
var postData = grid.jqGrid('getGridParam','postData');
$.extend(postData,{filters:""});
// for singe search you should replace the line with
// $.extend(postData,{searchField:"",searchString:"",searchOper:""});
grid.trigger("reloadGrid",[{page:1}]);
});
//$('.ui-jqgrid-hdiv').hide();
$("#consoleDlg").dialog({
autoOpen: false,
modal: false,
resizable: true,
height: 620,
width: 1200,
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); },
buttons: { //
"Cancel": function() {$("#consoleDlg").dialog("close");},
"Update" : function(){updateRouteInfo(colModel)},
"Confirm": updateRouteFlag,
"I Know": copyToClipboard
}
});
},
error : function(textStatus, errorThrown) {
alert("route list error: " + textStatus);
}
});
Привет, Олег, спасибо за совет.
На самом деле, я путаюсь с тем, что на стороне сервера Java вызывает ошибку, которая привела к тому, что клиент jqgrid не запускается. Я не знаю, если я вызову grid.jqGrid ('GridUnload', '# gridTable')
, чтобы решить эту проблему, потому что теперь я даже не знаю, где поместить этот метод, потому что на стороне сервера возникает исключение, я не знаю, какие события захватить его, а затем вызвать Этот метод. Я не знаю, где обрабатываются исключения в grid.jqGrid ({/ * parameters */})
, когда url '/ cbill / routenew / freshgriddata.do' привел к ошибке;
Когда возникает ошибка Java, и я обновляю страницу, ниже выдается исключение клиента:
error: function (textStatus, errorThrown) {
alert ("route list error:" + textStatus);
}
Ни '/ cbill / routenew / routequerydata.do'
, ни '/ cbill / routenew / freshgriddata.do'
не выполняется на стороне сервера.
У меня есть два всплывающих окна для изменения некоторых данных:
"Update" : function(){updateRouteInfo(colModel)},
"Confirm": updateRouteFlag,
Так же, как я сказал выше, всякий раз, когда в этих кодах возникает исключение, я не могу выполнить запрос, и клиентское исключение выше появляется, когда я обновляю страницу. (У меня есть несколько функций ошибок во всем коде, исключение java всегда будет вызывать ошибку на стороне клиента в приведенной выше функции ошибок frist, я думаю, что состояние ошибки сохраняется в jqgrid)
Конечно, я пытаюсь улучшить код на стороне сервера, чтобы избежать ошибки, но не могу избежать всех ошибок. если исключение происходит в фоновом режиме, программный модуль jqgrid не будет работать.
Я не знаю, правильно ли выразить то, что я имею в виду. Я хочу, чтобы ты больше помог. спасибо