Jqgrid 包含指向所有行而不是特定行的href链接的网格

Jqgrid 包含指向所有行而不是特定行的href链接的网格,jqgrid,Jqgrid,我制作了一个网格,其中最后一列包含一个链接重发。此链接将邮件重新发送到行中提到的一方。当我点击该链接时,它会将邮件重新发送到网格中的所有各方,而不是该行。。下面是我的代码 $(document).ready( function(){ var lastselsignStatusGrid ; var signStatusGridurl = $('#signatureStatus_ctxPath').val() + '/rest/retrie

我制作了一个网格,其中最后一列包含一个链接重发。此链接将邮件重新发送到行中提到的一方。当我点击该链接时,它会将邮件重新发送到网格中的所有各方,而不是该行。。下面是我的代码

   $(document).ready(
function(){


   var lastselsignStatusGrid ;
    var signStatusGridurl = $('#signatureStatus_ctxPath').val() +                   '/rest/retrieveSignStatus';
    var maintainsignStatusGridurl = $('#signatureStatus_ctxPath').val() +  '/rest/maintainSignStatus';
  jQuery('#signStatusGrid').jqGrid({
url: signStatusGridurl,
datatype: "json",
mtype: 'GET',
altRows:true,
loadonce: true,
colNames:['Name','Role','Signature status','Due Date','Signed              Date','Email','EmailId','PartyId'],
colModel:[
    {name: 'name',index: 'name',sortable:true,search:true,sorttype: 'text',               searchoptions:{sopt:['eq','ne','bw','cn']}},
{name: 'role',index: 'role',sortable:true,search:true,sorttype: 'text', searchoptions: {sopt:['eq','ne','bw','cn']}},
      {name: 'signed',index: 'signed',sortable:false,search:false,sorttype: 'text'},
 {name: 'dueDate',index: 'dueDate',formatter: 'date', formatoptions:      {"srcformat":"m/d/Y","newformat":"m/d/Y"}, unformat: unformat, sortable:false,search:false,sorttype: 'date'},
   {name: 'signedDate',index: 'signedDate',sortable:false,search:false,sorttype: 'text'},
   {name: 'resend',index: 'resend',formatter: customLinksignStatusresend, unformat: unformat, sortable:false,search:false,sorttype: 'text'},
   {name: 'emailAddress',index: 'emailAddress',hidden:true },
   {name: 'partyId',index: 'partyId',hidden:true}

],
rowNum:10,
rowList:[10,20,30],
multiselect: false,
viewrecords: true,
emptyrecords: "No record present",
imagepath: "js/themes/redmond/images",
autowidth: true,
caption:''
   });

    function customLinksignStatusresend(cellValue, options, rowObject){

if (rowObject[2] == "Complete") { 
    return "";
} else{
    //return rowObject[5];
    //return '<a href="#">' + "Resend</a>";
    return '<a href="#Test">' + cellValue + '<a>';
}
}
    $(document).delegate('#signStatusGrid .jqgrow td a[href="#Test"]', 'click',   function () 
     { 
var localGridData = $("#signStatusGrid").jqGrid('getGridParam','data');
var postData = JSON.stringify(localGridData);
var rowDetails="";
var selectedRows = $('#signStatusGrid').jqGrid('getGridParam', 'data');
var rowsArray = new Array();
var rowId = '';


for(var i=0;i<localGridData.length;i++)
{
     var rowData = localGridData[i];
     var emailAddr = rowData.emailAddress;
     var partyId = rowData.partyId;
    rowDetails += partyId+":" +emailAddr+ ',';

    $.ajax({

    url: $('#signatureStatus_ctxPath').val()+'/rest/resendEmail?partyId='+ partyId,

                datatype : "json",
                contentType: "application/json; charset=utf-8",
                type:"POST",
                error : function(xhr, textStatus, errorThrown) {
                    alert(errorThrown);
                },
                success : function(response, textStatus, xhr) {
                    alert("email resent successfully");
                }

            });

     HideLayer();
    }
    });
$(文档)。准备好了吗(
函数(){
var lastselsignStatusGrid;
var signStatusGridurl=$('signatureStatus_ctxPath').val()+'/rest/retrieveSignStatus';
var maintainsignStatusGridurl=$('signatureStatus_ctxPath').val()+'/rest/maintainSignStatus';
jQuery(“#signStatusGrid”).jqGrid({
url:signStatusGridurl,
数据类型:“json”,
mtype:'获取',
阿尔特罗斯:是的,
有一次:是的,
colNames:['Name','Role','signaturestatus','Due Date','Signed Date','Email','EmailId','PartyId',],
colModel:[
{name:'name',index:'name',sortable:true,search:true,sorttype:'text',searchoptions:{sopt:['eq','ne','bw','cn']},
{name:'role',index:'role',sortable:true,search:true,sorttype:'text',searchoptions:{sopt:['eq','ne','bw','cn']},
{name:'signed',index:'signed',sortable:false,search:false,sorttype:'text'},
{name:'dueDate',index:'dueDate',formatter:'date',formattoptions:{“srcformat”:“m/d/Y”,“newformat”:“m/d/Y”},未格式化:未格式化,可排序:false,搜索:false,排序类型:'date'},
{name:'signedDate',index:'signedDate',sortable:false,search:false,sorttype:'text'},
{name:'ressend',index:'ressend',格式化程序:customlinksignstatusressend,unformat:unformat,sortable:false,search:false,sorttype:'text'},
{name:'emailAddress',index:'emailAddress',hidden:true},
{name:'partyId',index:'partyId',hidden:true}
],
rowNum:10,
行列表:[10,20,30],
多选:错,
viewrecords:是的,
emptyrecords:“不存在记录”,
imagepath:“js/themes/redmond/images”,
自动宽度:正确,
标题:“”
});
函数customLinksignStatusresend(单元格值、选项、行对象){
如果(rowObject[2]=“完成”){
返回“”;
}否则{
//返回rowObject[5];
//返回';
返回“”+单元格值+“”;
}
}
$(document).delegate(“#signStatusGrid.jqgrow td a[href=“#Test”]”,“click”,函数()
{ 
var localGridData=$(“#signStatusGrid”).jqGrid('getGridParam','data');
var postData=JSON.stringify(localGridData);
var rowDetails=“”;
var selectedRows=$('signStatusGrid').jqGrid('getGridParam','data');
var rowsArray=新数组();
var rowId='';

对于(var i=0;i,您正在遍历网格中的所有行,这就是邮件被发送到所有收件人的原因


要实现您想要实现的目标,最简单的方法是使用jqGrid的功能向特定行emailId发送邮件。您可以添加其他条件,以便仅在单击链接时调用它

onCellSelect: function (id, iCol, cellContent, e) {
    if (iCol == 'resend') {
        var emailAddr = $('#signStatusGrid').getCell(id, 'emailAddress');
        var partyId = $('#signStatusGrid').getCell(id, 'partyId');
        var rowDetails += partyId + ":" + emailAddr + ',';
        $.ajax({

            url: $('#signatureStatus_ctxPath').val() + '/rest/resendEmail?partyId=' + partyId,

            datatype: "json",
            contentType: "application/json; charset=utf-8",
            type: "POST",
            error: function (xhr, textStatus, errorThrown) {
                alert(errorThrown);
            },
            success: function (response, textStatus, xhr) {
                alert("email resent successfully");
            }

        });
    }
},

另一种替代解决方案似乎是创建一个函数,其中包含发送邮件和设置链接,该链接将在jqGrid函数中使用相应的
partyId
调用该函数:

gridComplete: function () {
    var ids = jQuery("#signStatusGrid").jqGrid('getDataIDs');
    for (var i = 0; i < ids.length; i++) {
        var cl = ids[i];
        var partyId = $('#signStatusGrid').getCell(ids[i], 'partyId');
        var be = "<a href='#Test' onclick='sendMail(" + partyId + ");' >View Contract</a>";
        jQuery("#signStatusGrid").jqGrid('setRowData', ids[i], {
            editct: be
        });
    }
},



var sendMail(partyId) {
    $.ajax({

        url: $('#signatureStatus_ctxPath').val() + '/rest/resendEmail?partyId=' + partyId,

        datatype: "json",
        contentType: "application/json; charset=utf-8",
        type: "POST",
        error: function (xhr, textStatus, errorThrown) {
            alert(errorThrown);
        },
        success: function (response, textStatus, xhr) {
            alert("email resent successfully");
        }

    });
}
gridComplete:函数(){
var id=jQuery(“#signStatusGrid”).jqGrid('getdataid');
对于(变量i=0;i