2016-04-28 45 views
1

我无法选择我的JqGrid中的任何行,所以我碰到了http://www.jqgrid.com/jqgrid/forum/codemerx-jqgrid-for-asp-net/146-can-t-select-rows。其中说我需要每行的ID。每次按下按钮时,我都会将数据添加到我的网格中。我试着用简单的点击计数器函数给每行一个id。但是当我尝试从网格中排除所有ID的消失时。按下按钮时JqGrid给出ID

任何建议如何解决这个问题?

电网

$(document).ready(function() { 

    // Configuration for jqGrid Example 1 
    $("#table_list_1").jqGrid({ 
     data: currentTime, 
     datatype: "local", //if enabled id dissapear 
     height: "100%", 
     autowidth: true, 
     shrinkToFit: true, 
     loadonce: true, 
     sortable: true, 
     rowNum: 100, 
     rownumbers: true, 

     rowList: [10, 20, 30], 
     colNames: ['Id','Time', 'Note'], // 'Id' 
     colModel: [ 
      {name: 'id', index:'id', width:60, sorttype: 'number', sortable: true}, 
      { name: 'time', index: 'time', width: 60, sorttype: 'number', sortable: true, editable: true, formatter: "number" }, 
      { name: 'note', index: 'note', width: 60, cellEdit: true, editable: true } 

     ], 
     pager: "#pager_list_1", 
     viewrecords: true, 
     caption: "Example jqGrid 1", 
     add: true, 
     edit: true, 
     addtext: 'Add', 
     edittext: 'Edit', 
     hidegrid: false 
    }); 


    $('#table_list_1').navGrid('#pager_list_1', 
      { edit: false, add: false, del: false, search: true, refresh: true, view: false, position: "left", cloneToTop: true }, 
      { reloadAfterSubmit: true }); 

    $('#table_list_1').navButtonAdd('#pager_list_1', 
      { 
       buttonicon: "ui-icon-pencil", 
       title: "Edit", 
       caption: "", 
       position: "last", 

      }); 

我如何添加数据

var currentTime = []; 
var id = 0; 
function doKeyDown(e) { 

    //test document.getElementById("currentTimeText").innerHTML = currentTime; 
    if (e.keyCode == 49 & wavesurfer.isPlaying()) { 
     // KEY = " 1 " 


     id += 1; 
     currentTime.push(wavesurfer.getCurrentTime()); 
     jQuery("#table_list_1").addRowData("", { id: id, time: wavesurfer.getCurrentTime() }); 

     //test document.getElementById("currentTimeText").innerHTML = currentTime; 

     wavesurfer.addRegion({ 
      start: wavesurfer.getCurrentTime(), 
      end: wavesurfer.getCurrentTime() + 0.1, 
      color: '#19aa8d', 
      resize: false, 
      drag: false, 

     }); 

    } 

} 
+1

请在每个问题中写下关于您使用的jqGrid版本的信息,以及fork([free jqGrid](https://github.com/free-jqgrid/jqGrid),商业版[Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334)或<= 4.7版本中的旧jqGrid)。 'doKeyDown'的代码不清楚。你在哪里使用它?你写了一些按钮,但不清楚哪个关系有按钮的网格。您使用'data:currentTime',但不包含任何测试数据。 – Oleg

+0

其版本4.6。每当用户按下键“1”时,doKeyDown就会添加一行数据。在这种情况下,它会从歌曲播放中获得时间,并在每次按下该按钮时添加一个“ID”。 – Dolle

+0

对不起,但我不明白代码的含义。无论如何,如果您希望jqGrid为您生成唯一的id,最好使用'undefined'值作为'id'。为什么你想向用户展示这样奇怪的id(参见'id')?此外,rowid不是来自'id'属性的值,而是具有相同''“'值的第一个参数。我认为这是你的代码中的主要错误。 – Oleg

回答

1

的ROWID是id财产,你用相同的""使用的值,但第一个参数值。我认为这是你的代码中的主要错误。呼叫

jQuery("#table_list_1").addRowData("", { id: id, time: wavesurfer.getCurrentTime() }); 

应固定至少

jQuery("#table_list_1").addRowData(undefined, { id: id, time: wavesurfer.getCurrentTime() }); 
+0

Atleast ID不会消失,但现在它用jqg1和“2”替换“jqg2”等等。如果我能得到这个是1,2,3,4,5等等,我都很好。 – Dolle

+0

@Dolle:我问你描述你想用电网做什么。如果'id'列应该是插入行的顺序,那么就可以。我还不明白为什么'jqg1'对你不好?如果您使用其他参数或在页面上有两个网格,则值会更高。用户不会看到该ID。为什么你想改变它?例如,HTML4规范不允许使用以数字开头的id值,但是所有的web浏览器都可以在数字id等id的情况下正常工作。因此,jqGrid生成默认的文本前缀+数字作为ID。默认的前缀是'jqg'。 – Oleg

+0

@Dolle:可以改变前缀,可以改变很多其他的东西,但是为什么? – Oleg

0

解决这样的:

jQuery("#table_list_1").addRowData(id, { id: id, time: wavesurfer.getCurrentTime() }); 

所以不是“未定义”我只是把它的“身份证” 这解决我的选择问题也是。