각 행을 삭제할 수는있는 jqGrid 행 ID로 다른 우리의 DB에 ID가 있습니다. 어떻게 행을 저장할 때이 lineid를 보낼 수 있습니까?있는 jqGrid inlinenav - 사용자 정의 행 ID와
또한, 행을 삭제하는 방법은 무엇입니까?
이 내 코드는 지금까지 있습니다 :
var mydata = [
{
lineItemId: "785",
productSku:"n123",
productName:"hello there",
pieces:"123",
value:"23.00",
line:"123"
}
,
{
lineItemId: "803",
productSku:"n1234",
productName:"hello there",
pieces:"123",
value:"23.00",
line:"123"
}
];
var colNames = ['SKU','Product Name', 'Pieces','Total Value','Line Number'];
var colModel = [
{name:'productSku', index:'productSku', width:10, sorttype: 'text', editable:true},
{name:'productName', index:'productName', width:60, editable:true},
{name:'pieces', index:'pieces', width:10, sorttype: 'int', editable:true, formatter: 'integer'},
{name:'value', index:'value', width:10, sorttype: 'int', editable:true, formatter: 'number'},
{name:'line', index:'line', width:10, sorttype: 'int', editable:true, formatter: 'integer', formatoptions:{thousandsSeparator: ""}}
];
initOrdersJqGrid("orderContent", mydata, '<xsl:value-of select="$datapath/OrderId"/>', colNames, colModel, "sku", "desc");
var orderLineOptions = {
keys: true,
aftersavefunc: function (rowid, response, options) {
// only update page if orderis is nil i.e. a new order
if($('#orderidlabel').text() == "") {
log('saving order line item from order with no id yet.');
var dummy = $('<div />').html(response.responseText);
var id = dummy.find('#orderId').val();
$('#orderidlabel').text(id);
$('#orderId').val(id);
$('button[value="Save Order"]').trigger('click');
}
}
}
function initOrdersJqGrid(id, data, orderid, colNames, colModel, defaultSortColumn, defaultSortOrder) {
$("#" + id + "Table")
.jqGrid({
datatype: "local",
data: data,
colNames: colNames,
colModel: colModel,
localReader: { id: "lineItemId"},
pager: '#' + id + 'Pager',
autowidth: true,
gridview: true,
autoencode: true,
height: "auto",
forceFit: true,
shrinkToFit: true, //Width of columns should be expressed in integers which add to 100
sortname: defaultSortColumn,
sortorder: defaultSortOrder,
url: "fs/servlet/CS",
editurl: "CS?action=com.agistix.webinterface.controllers.OrderIC,saveLineItems&orderId=" + orderid
})
.jqGrid('navGrid',"#" + id + "Pager",{edit:false,add:false,del:false,search: false, refresh: false})
.jqGrid('inlineNav',"#" + id + "Pager", { addParams: { addRowParams: orderLineOptions }, editParams: orderLineOptions});
}
rowid 문제의 원인은 대개 그리드의 데이터 채우기가 잘못되었습니다. 원시 데이터베이스 ID 인 열의 설명과 함께 사용하는'colModel'을 포함시킬 수 있습니까? 당신이 사용하는'data' 예제 (한 줄이면 충분합니다)를 포함시킬 수 있습니까? 데이터베이스에서 반환 된 데이터와 함께'datatype : "local"'을 사용하는 것은 이상합니다. – Oleg
안녕하세요 @Oleg, 더 많은 코드로 질문을 업데이트했습니다. 각 행에 사용할 ID는 xml로 돌아옵니다. –
죄송합니다.하지만 'mydata'에 대해 잘못된 데이터를 게시했습니다.자바 스크립트 조각의 구문조차도 잘못되었습니다. XSL을 사용하여 데이터를 생성하는 경우 * 결과 데이터를 게시해야합니다. 게다가'colModel'은 어떤 열에 대해서도'key : true'를 포함하지 않습니다. 따라서 데이터'id' 속성에 데이터베이스의 id 값을 포함시켜야합니다 (예 :'LineItemId'의 값). – Oleg