jqgrid删除按钮出问题

2019-03-25 13:50|来源: 网路

jqgrid删除按钮出问题
我写的代码如下:
function getGrid(){
      // 定义标题(列)
      var c_fild = new Array();
      var colm = new Array();
      c_fild = s_fild.split(",");
      for(i=0;i<c_fild.length;i++){
        colm.push({display: c_fild[i],name : c_fild[i], width :120, sortable : true, align: 'center'});
      }
      $(function(){
jQuery("#list2").jqGrid({
   url: 'post.jsp?s_table='+s_table+'&s_id='+s_id+'&s_fild='+s_fild+'&s_where='+s_where,
datatype: "json",
mtype: 'POST',  
/*
   colNames:['id','username', 'password', 'age','address'],
   colModel:[
   {name:'id',index:'id', width:55},
   {name:'username',index:'username', width:90},
   {name:'password',index:'password', width:100},
   {name:'age',index:'age', width:80, align:"right"},
   {name:'address',index:'address', width:80, align:"right"}
   ],
   */
   colModel:colm,
   rowNum:4,
   rowList:[4,20,30],
   pager: $('#pager2'),
   sortname: 'id',
    viewrecords: true,
    sortorder: "asc",
    //height:'500px',
    //width:'800px',
jsonReader: {//jsonReader来跟服务器端返回的数据做对应  
            root: "rows",    
            page: "page",    
            total: "total",   
            repeatitems : false      
        }, 
   
    caption:"JSON Example"
}).navGrid('#pager2',{editfunc:doEdit,addfunc:doAdd,delfunc:doDel});

});
}
var doEdit=function(rowid){alert(rowid);};
var doAdd=function(){alert(126);};
var doDel=function(){alert(123);};



为什么选中行点删除的时候 没有123弹出,而是弹出默认的删除界面。
而点增加修改时没有问题。
请用过的人指点。
谢谢了!

问题补充:谢了,你这样写是可以的,后面我也是这么写的。 <br />但是我就不明白为什么其它两个方法可以那样写,删除就不可以了。<div class="quote_title">liukai 写道</div><div class="quote_div">写成<pre name="code" class="javascript">jq("#grid").navButtonAdd('#pager',
{ caption:"Delete",
buttonicon:"ui-icon-trash",
onClickButton: deleteRow,
position: "last",
title:"",
cursor: "pointer"
}
);




function deleteRow() {
// Get the currently selected row获得当前选择的选项
    var row = jq("#grid").jqGrid('getGridParam','selrow');


var len = rows.length;

if( rows != null ){

jq("#grid").jqGrid( 'delGridRow', row,
          { url: '/spring3JqGrid/crud/delete',
recreateForm: true,
            beforeShowForm: function(form) {
              //change title
              jq(".delmsg").replaceWith('&lt;span style="white-space: pre;"&gt;' +
              'Delete selected record?' + '&lt;/span&gt;');
  //hide arrows
              jq('#pData').hide(); 
              jq('#nData').hide(); 
            },
          reloadAfterSubmit:false,
          closeAfterDelete: true,
          afterSubmit : function(response, postdata)
{
                var result = eval('(' + response.responseText + ')');
var errors = "";

                if (result.success == false) {
for (var i = 0; i &lt; result.message.length; i++) {
errors +=  result.message[i] + "&lt;br/&gt;";
}
                }  else {
                jq("#dialog").text('Entry has been deleted successfully');
jq("#dialog").dialog(
{ title: 'Success',
modal: true,
buttons: {"Ok": function()  {
jq(this).dialog("close");}
}
});
                }
                // only used for adding new records
                var new_id = null;
               
return [result.success, errors, new_id];
}
          });


}else{
  jq( "#dialogSelectRow" ).dialog();
}

</pre> <br /> <br /></div> <br />

相关问答

更多
  • 是的,这里有一个选项: hidegrid: false 从 jqGrid文档wiki获取选项 : hidegrid 布尔 启用或禁用显示/隐藏网格按钮,该按钮出现在Caption图层的右侧。 仅当标题属性不是空字符串时才有效。 Yes, there is an option for this: hidegrid: false From the jqGrid documentation wiki for Options: hidegrid boolean Enables or disables the sho ...
  • 我发现问题在于jqgrid以及它如何查找要删除的元素。 tgtGrid.getRowData(pager.getGridParam('selrow'))['ID']将返回您在列模型中设置为键的ID或列。 但是,jqgrid查看元素的ID以删除行,这在删除的行中不匹配。 对于从DB加载的数据,包含ID /键的元素将具有匹配的id属性作为封闭的元素。 对于删除的行, 元素是您所期望的,但是封闭的元素具有生成的id属性,其值为“dnd_#”,其中#是一些生成的随机数。 因此 ...
  • 通常建议在输入数据中包含id属性。 id将用于将id属性的值分配给网格的行( 元素)。 了解自定义格式化程序的options参数包含可能对您有用的属性非常重要: options.rowId和options.colModel 。 您可以将options.rowId作为附加参数转发给deleteRow函数。 I found a solution , we can retrieve rowId from options object as follows : function hello(cellvalu ...
  • 如果我理解你的问题是正确的,你应该使用GridUnload方法。 请看下面的答案 ,其中包括演示 。 该演示展示了如何删除当前网格,并在同一个地方创建另一个带有其他参数的网格(另一列)。 我希望这是你需要的。 If I understand your question correct, you should use GridUnload method. Look at the following answer which include the demo. The demo shows how to rem ...
  • 要在beforeShowForm获取编辑行的rowid,您可以使用编辑表单中包含一些隐藏行的信息,这些行可能对您有所帮助。 “添加/编辑”对话框在隐藏行中具有输入字段,其id =“id_g”。 输入字段包含编辑行的ID。 添加对话框在字段中包含_empty字符串。 所以你可以修改beforeShowForm回调到 beforeShowForm: function () { var row_id = $("#id_g").val(); ... } 或以下 beforeShowForm: fu ...
  • 我想你使用子网格作为 jqGrid的网格特征。 在“高级”/“子网格为网格”下的演示示例。 在subGridRowExpanded内部,您可以明确地创建新的网格(作为子网格),并且可以选择使用类似的线创建导航按钮 $("#" + subgrid_table_id).jqGrid('navGrid', "#" + pager_id, {edit: false, add: false, del: false}); 因此,您应该删除该行或添加其他选项search: false和refresh: fals ...
  • 首先,在onClick内部调用的函数buttonFormatter必须是全局函数(全局window对象的属性)。 clickFunction1秒钟,我建议你转发this ,这是clickFunction1函数点击的td元素: function buttonFormatter() { return ''; } 然后使用$j(this).closest("t ...
  • 我解决了它寻找网格的id,以便它不会“混淆”添加/删除按钮的位置。 而且,我改变了我删除的方式。 我现在的代码是: .addClass("fm-button ui-state-default ui-corner-all fm-button-icon-left") .prependTo("#TblGrid_grid_servico_2 > tbody > tr#Act_Buttons > td.EditButton");` 代替 .addClass("fm-button ui-state-de ...
  • 您可以添加列,该列使用formatter: "actions" with formatoptions: { editformbutton: true }属性。 如果你使用免费的jqGrid (它是我开发的jqGrid的分支),那么你可以使用template: "actions" : { name: "act", template: "actions", formatoptions: { editformbutton: true } } 以演示为例。 如果使用旧的jqGrid(版本<= 4.7),您可以添加 ...
  • 问题似乎是我在表单上使用asp按钮。 点击它只是重新加载页面,无论我尝试什么属性。 用简单的html按钮替换这些按钮解决了这个问题: 而不是这个: The issue seemed to be my use of th ...