【问题标题】:Get id on delete action获取删除操作的 id
【发布时间】:2013-01-24 12:14:51
【问题描述】:

我有一个带有格式化操作的表格来编辑和删除行。

在删除操作中,我想在打开的对话框中显示一条消息,其中包含要删除的行 ID。所以在 beforeShowForm 事件中我得到了 id:

beforeShowForm: function (form) {

     var rowid= $("#lista_operaciones").jqGrid('getGridParam','selrow');
     $("td.delmsg", form[0]).html(sprintf(mensaje_borrado, rowid));
},

如果我点击所选行的删除按钮,我没有任何问题,但如果我点击其他未选择行的删除按钮,我会得到所选行的 ID。

例如,我选择了最后一行,如果我点击第二行的删除按钮,我会得到最后一行的 id。

我怎样才能得到正确的ID?

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    我建议你在删除对话框中使用隐藏字段id="DelData"。这是行 (<tr>),其中一个单元格 (<td>) 具有将被删除的行的 id。字段的使用比grid的selrow选项更安全。

    有关代码示例,请参阅the answer。如果使用 multiselect: true 选项,单元格的内容将是逗号分隔的行 ID 列表,这些行将被删除。

    【讨论】:

      【解决方案2】:

      你需要找到相对于被点击的删除按钮的行的id,并且你需要在beforeShowForm: function之前这样做。

      假设所讨论的值是 <tr> 元素的 id,则表达式为:

      $(tableSelector).on('click', 'deleteButtonSelector', function() {
          var rowid= $(this).closest('tr').attr('id');
          //do something here to make rowid available to the beforeShowForm function
      });
      

      如果 id 以某种方式存储,那么您将不得不调整表达式。

      【讨论】:

      • 如何确定 onclick 事件在 beforeShowForm 事件之前触发?
      【解决方案3】:

      您的代码正在做它应该做的事情......您正在使用

      请求选定的行
      .jqGrid('getGridParam','selrow');
      

      如果我正确阅读了您的问题,您正在寻找将数据添加到现有的删除确认对话框,在本例中为 rowid。

      可能最好的方法是添加您自己的自定义按钮,使用相同的垃圾箱图标,响应它的 onClick 事件,然后让它将数据添加到您的自定义删除确认表单中,尽管需要做更多工作。会建造。

      如果您只想要一个带有 rowid 的额外消息框/警报,您可以使用类似

      delOptions: {onclickSubmit: function(rp_ge, rowid) {alert('RowID: ' + rowid)}}
      

      【讨论】:

        【解决方案4】:
        var sr = jQuery("#list2").getGridParam('selrow');
        rowdata = jQuery("#list2").getRowData(sr);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-21
          • 2016-09-06
          • 2021-04-02
          • 1970-01-01
          相关资源
          最近更新 更多