Javascript JqGrid在按下按钮时给出ID

Javascript JqGrid在按下按钮时给出ID,javascript,jquery,asp.net,jqgrid,Javascript,Jquery,Asp.net,Jqgrid,我无法在JqGrid中选择任何行,因此遇到了错误。这说明我每行都需要一个ID。每次按下按钮时,我都会将数据添加到网格中。我试着用一个简单的点击计数器函数给每一行一个id。但当我尝试从网格中对所有ID的不相似项进行排序时,我会 有什么建议可以解决这个问题吗 网格 $(document).ready(function () { // Configuration for jqGrid Example 1 $("#table_list_1").jqGrid({ data

我无法在JqGrid中选择任何行,因此遇到了错误。这说明我每行都需要一个ID。每次按下按钮时,我都会将数据添加到网格中。我试着用一个简单的点击计数器函数给每一行一个id。但当我尝试从网格中对所有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,

        });

    }

}

rowid不是
id
属性中的值,而是与相同的
值一起使用的第一个参数。我认为这是你代码中的主要错误。电话

jQuery("#table_list_1").addRowData("", { id: id, time: wavesurfer.getCurrentTime() });
应至少固定到

jQuery("#table_list_1").addRowData(undefined, { id: id, time: wavesurfer.getCurrentTime() });
这样解决:

jQuery("#table_list_1").addRowData(id, { id: id, time:  wavesurfer.getCurrentTime() });
所以我给它的不是“未定义”而是“id”
这也解决了我的选择问题。

请在每个问题中写下有关您使用的jqGrid版本的信息,以及版本4.6中的fork(、商业版或旧jqGrid。doKeyDown在用户每次按“1”键时添加一行数据。在这种情况下,它从播放歌曲和添加“id”中获得时间每次按下按钮时。对不起,我不理解代码的含义。无论如何,如果希望jqGrid为您生成唯一的id,最好为
id
使用
undefined
值。为什么要向用户显示如此奇怪的id(请参阅
id
列)?此外,rowid不是
id
属性中的值,而是与相同的
值一起使用的第一个参数。我认为这是代码中的主要错误。
navbuttonad
的调用看起来也很奇怪。在方法中总是使用
onClickButton
回调。我只想让它计算每一行。“RowNumber:true”基本上完成了我想要的工作,但我希望能够对其进行排序。这就是为什么我尝试实现我自己的“RowNumber”我希望它能消除很多困惑。至少id不再消失,但现在它用jqg1和“2”替换了“1”"使用jqg2等。如果我能得到1、2、3、4、5等,我都很好。@Dolle:我让你描述一下你想用网格做什么。如果
id
列应该是插入行的顺序,那就可以了。我仍然不明白
jqg1
为什么对你不好?如果你想使用其他参数或在第页上有两个网格en值将更高。用户将看不到id。为什么要更改它?例如,HTML4规范不允许使用以数字开头的id值,但所有web浏览器在使用数字id等id时都不会出现问题。因此jqGrid会按默认文本前缀+数字生成id。默认前缀为
jqg
@Do一个人可以改变前缀,一个人可以改变很多其他的东西,但是为什么呢?