Я играл с jqgrid, и у меня следующий вопрос.
- Чтобы получить значения идентификатора столбца, мы используем getDataIDs (). Есть ли способ получить значения других столбцов (я использую пользовательский форматер для создания ссылки на столбец и добавления ссылки удаления в каждую строку в loadComplete).
- Могу ли я использовать условные операторы при цикле по столбцу и значениям. Я имею в виду, я хочу перебрать столбец user_name ниже и в зависимости от его значений я хочу показать delete для некоторых значений и не хочу отображать для некоторых значений
ниже код.
$(document).ready(function() {
$("#list").jqGrid(
{
url:'index.cfc?method=getData', //CFC that will return the users
datatype: 'json', //We specify that the datatype we will be using will be JSON
mtype: 'POST',
colNames:['User ID', 'User Name'], //Column Names
colModel :[
{name:'user_id',index:'user_id', sorttype:"string", formatter: 'showlink', formatoptions:{baseLinkUrl:'#'}},
{name:'user_name',index:'user_name', sorttype:"string"},
{name:'act',index:'act',sortable:false}
],
pager: $('#pager'), //The div we have specified, tells jqGrid where to put the pager
toppager: true,
height: 'auto',
width: 1270,
rowNum:25, //Number of records we want to show per page
rowList:[25,50,100], //Row List, to allow user to select how many rows they want to see per page
sortorder: "asc", //Default sort order
sortname: "user_id", //Default sort column
loadComplete: function() {
var myGrid = $("#list");
var ids = myGrid.getDataIDs();
for (var i = 0, idCount = ids.length; i < idCount; i++) {
$("#"+ids[i]+" a",myGrid[0]).click(function(e) {
var hash=e.currentTarget.hash;// string like "#?id=0"
if (hash.substring(0,5) === '#?id=') {
var id = hash.substring(5,hash.length);
var text = this.textContent;
alert("clicked the row with id='"+id+"'. Link contain '"+text+"'");
location.href="http://en.wikipedia.org/wiki/"+text;
}
e.preventDefault();
});
}
for(var i=0;i<ids.length;i++){
var cl = ids[i];
vdelete = "<a href='#' onclick=\"testfn('"+cl+"')\">Delete</a></ids>";
jQuery("#list").setRowData(ids[i],{act:vdelete})
}
},
caption: '', //Grid Name
jsonReader: {
root: "ROWS", //our data
page: "PAGE", //current page
total: "TOTAL", //total pages
records:"RECORDS", //total records
cell: "",
id: "0"
}
})
$("#list").jqGrid('navGrid','#pager',
{
edit:false,
add:false,
del:false,
search:true,
refresh: true,
searchtext:"Search",
refreshtext: "Refresh",
'cloneToTop':true
});
});
Хорошо, я получил это с помощью getRowData.
var rows= jQuery("#list").jqGrid('getRowData');
alert(rows.length);
for(var i=0;i<rows.length;i++){
var row=rows[i];
alert(row['user_id']);//get the user_id column value
}
Но у меня есть другой вопрос. Я хочу иметь скрытый столбец и получить эти значения. Когда я пытаюсь использовать приведенный выше код, я получаю только пустые значения.
colModel :[
{name:'user_id',index:'user_id', sorttype:"string", formatter: 'showlink', formatoptions:{baseLinkUrl:'#'}},
{name:'user_name',index:'user_name', sorttype:"string"},
{name:'act',index:'act',sortable:false},
{name:'secretCol', hidden:true}
],