jQWidgets Forums
jQuery UI Widgets › Forums › DataTable › on('rowClick'): why is args.index == -1
Tagged: addrow, deleterow, jqxdatatable
This topic contains 2 replies, has 2 voices, and was last updated by Tony Soprano 9 years, 10 months ago.
-
Author
-
Hello jqWidgets community
I have a datatable with a ‘delete’ link.
The delete of the row works in some cases, but in some cases args.index is -1,
I cannot figure out what the problem is.Does anybody have an idea what I’m doing wrong?
Any help is appreciated.
Thanks a lot!
TonyHere’s my source:
$( “#AddPriceButton” ).click(function() {
var row = {};
row[“price”] = $(“#Price”).val() + ” USD”;
$(“#PriceTable”).jqxDataTable(‘addRow’, null, row, ‘first’);
$(“#PriceTable”).show();
$(“#PriceTable”).jqxDataTable(‘refresh’);
});
var priceTableSource =
{
datatype: “array”,
datafields:
[
{ name: ‘price’, type: ‘string’ }
]
};var priceDataAdapter = new $.jqx.dataAdapter(priceTableSource);
$(“#PriceTable”).jqxDataTable({
width:”100%”,
source: priceDataAdapter,
altRows: false,
pageable: false,
pagerButtonsCount: 3,
pageSize: 3,
columnsResize: true,
sortable: false,
theme: “mik-custom”,
pagerHeight: 55,
filterable: false,
filterMode: ‘simple’,
filterHeight: 50,
columns: [
{ text: ‘Price’, dataField: ‘price’, width: “30%” },
{ text: ”, width: “20%”,
cellsRenderer: function (row, column, value, rowData) {var html = “<div align=’center’>Delete</div>”;
return html;
}
},
]
});$(“#PriceTable”).on(‘rowClick’, function (event) {
// event args.
var args = event.args;
// row data.
var row = args.row;
// row index.
var index = args.index;
// row’s data bound index.
var boundIndex = args.boundIndex;
// row key.
var key = args.key;
// data field
var dataField = args.dataField;
// original click event.
var clickEvent = args.originalEvent;switch(clickEvent.target.id){
case “DeletePriceButton”:
$(“#PriceTable”).jqxDataTable(‘deleteRow’, index);
var rows = $(“#PriceTable”).jqxDataTable(‘getRows’);
if( rows.length == 0) {
$(“#PriceTable”).jqxDataTable(‘refresh’);
$(“#PriceTable”).hide();
}break;
}
});
Hi Tony,
You don’t have set DeletePriceButton as id and your case block will never be executed.
If we remove the check about target.id everything looks to work normal.Here is an example javascript code.
Best Regards,
Ivailo IvanovjQWidgets Team
http://www.jqwidgets.comHello Ivailo
Thanks so much for helping me, you led me to a solution.
It’s true the block would never been executed that way,
however after trying your solution which actually works perfectly,
but did not work on in my project, I downloaded the new jqwidgets version,
which corrected this bug (my version is about 3 months old)
In the future I will first download a new version before posting here.
have a great weekend
tony -
AuthorPosts
You must be logged in to reply to this topic.