Javascript 如何在一个jqgrid列中添加两种格式?

Javascript 如何在一个jqgrid列中添加两种格式?,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,在我的数据库中,一列中有两个选项: /上载/1369839038.zip 空的 现在我已经格式化了“email”列,所以它显示为一个链接 formatter:function(cellvalue, options, rowObject){ return '<a href="' + cellvalue + '"target="_blank">FILES </a> ' } } formatter:function(单元

在我的数据库中,一列中有两个选项:

  • /上载/1369839038.zip
  • 空的
  • 现在我已经格式化了“email”列,所以它显示为一个链接

    formatter:function(cellvalue, options, rowObject){
                    return '<a href="' + cellvalue + '"target="_blank">FILES </a> '
                } }
    
    formatter:function(单元格值、选项、行对象){
    返回“”
    } }
    
    但是我想让一个格式化程序显示为空,如果它有像这样的“NULL”,或者像我已经有的那样显示为链接。我想将这两种格式组合在一个“附件”列的格式化程序中,以便它根据数据显示,可以是链接,也可以是空白。非常感谢你的帮助

    我的JQgrid

        $(function(){ 
          $("#list").jqGrid({
            url:'request.php',
            editurl: "jqGridCrud.php",
            datatype: 'xml',
            mtype: 'GET',
            height: 'AUTO',
        width: 850,
        scrollOffset:0,
        hidegrid: false,
    
        colNames:['id','Project', 'Assigned To','Assign Date','Check Date','Due Date','Attachments','Notes',""],
        colModel :[ 
          {name:'id', index:'id', width:28, align: 'center'}, 
          {name:'name', index:'name', width:170, align:'left',editable:true, editoptions:{
                size:60} }, 
          {name:'id_continent', index:'id_continent', width:50, align:'right',editable:true,edittype:'select', 
          editoptions:{value: "Henry:Henry; Ramon:Ramon; Paul:Paul" },mtype:'POST'  }, 
    
          {name:'lastvisit', index:'lastvisit', width:55, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',editable:true, edittype: 'text',mtype:'POST' ,       editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
    
    
          {name:'cdate', index:'cdate', width:55, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy', edittype: 'text',editable:true ,mtype:'POST' ,editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
    
          {name:'ddate', index:'ddate', width:55, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',date:'true',editable:true, edittype: 'text',editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
    
    
          {name:'files', index:'files', width:50,align:'center',sortable:false,mtype:'POST',formatter:function(cellvalue, options, rowObject){
                return '<a href="' + cellvalue + '"target="_blank">FILES </a> '
            } },
    
            {name:'notes', index:'notes', width:100, align:'left',sortable:false, editable:true,edittype:'textarea', editoptions:{
                rows:5,cols:60,maxlength:200} },    
    
            {name:'act', index:'act',width:30 ,align:'left', sortable:false,formatter: "actions",cellattr: function () { return ' title="Delete Project"'; },
    formatoptions: {
        keys: true,
         deltitle: 'delete',
        delbutton: true,
        editbutton:false,
        delOptions: {
            url: 'delete-perm.php',
            afterShowForm: function ($form) {
        $("#dData", $form.parent()).click();
    },
            msg: "Remove Selected Project?",
            bSubmit: "Remove",
            bCancel: "Cancel"
        }
    }}, 
        ],
        pager: '#pager',
    
        rowNum:30,
        rowList:[30,40,80],
        sortname: 'ddate',
        sortorder: 'asc',
        viewrecords: true,
        gridview: true,
        caption: 'Current Assignments',
    
    
        ondblClickRow: function(rowid) {
    
        $(this).jqGrid('editGridRow', rowid,
                            {width:550,Height:550,recreateForm:true,closeAfterEdit:true,
                             closeOnEscape:true,reloadAfterSubmit:true, modal:true,mtype:'post',top:350,left: 30});}
    
    
                });
    
     jQuery.extend(jQuery.jgrid.nav, {
            deltitle: '',
            delcaption: 'Project Complete'
    
    
        },{delicon: "ui-icon-circle-check",deltext: "Project Complete"});   
    
        $("#list").jqGrid("navGrid", "#pager", { add: false, search: false, refresh:false,edit:false }).navButtonAdd('#pager',{
    
    
                                    caption:"Export to Excel", 
                                    buttonicon:"ui-icon-save", 
                                    onClickButton: function () {
            jQuery("#list").jqGrid('excelExport', { url: 'ExportExcel.php' });
    }, 
                                    position:"last"
                                });
        // setup grid print capability. Add print button to navigation bar and bind to click.
        setPrintGrid('list','pager','Current Assignments');
    
    });
    
    $(函数(){
    $(“#列表”).jqGrid({
    url:'request.php',
    editurl:“jqGridCrud.php”,
    数据类型:“xml”,
    mtype:'获取',
    高度:“自动”,
    宽度:850,
    滚动偏移量:0,
    希德格里德:错,
    colNames:['id','Project','Assigned To','Assign Date','Check Date','Due Date','Attachments','Notes','',
    colModel:[
    {名称:'id',索引:'id',宽度:28,对齐:'center'},
    {名称:'name',索引:'name',宽度:170,对齐:'left',可编辑:true,可编辑选项:{
    尺寸:60},
    {名称:'id_Continental',索引:'id_Continental',宽度:50,对齐:'right',可编辑:true,编辑类型:'select',
    编辑选项:{value:“亨利:亨利;拉蒙:拉蒙;保罗:保罗”},mtype:“波斯特”},
    {name:'lastvisit',index:'lastvisit',width:55,align:'right',formatter:'date',srcformat:'yyyy-mm-dd',newformat:'m/d/yy',edittype:'text',mtype:'POST',editoptions:{size:10,dataInit function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});},
    {name:'cdate',index:'cdate',width:55,align:'right',formatter:'date',srcformat:'yyyy-mm-dd',newformat:'m/d/yy',edittype:'text',edit:true,mtype:'POST',editoptions:{size:10,dataInit function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});},
    {name:'ddate',index:'ddate',width:55,align:'right',formatter:'date',srcformat:'yyyy-mm-dd',newformat:'m/d/yy',date:'true',edittype:'text',editoptions:{size:10,dataInit function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});},
    {name:'files',index:'files',width:50,align:'center',sortable:false,mtype:'POST',formatter:function(cellvalue,options,rowObject){
    返回“”
    } },
    {名称:'notes',索引:'notes',宽度:100,对齐:'left',可排序:false,可编辑:true,编辑类型:'textarea',编辑选项:{
    行数:5,列数:60,最大长度:200},
    {name:'act',index:'act',width:30,align:'left',sortable:false,格式化程序:“actions”,cellattr:function(){return'title=“Delete Project”;},
    格式选项:{
    凯斯:没错,
    deltitle:“删除”,
    德尔巴顿:是的,
    编辑按钮:错误,
    删除选项:{
    url:“删除perm.php”,
    余波形式:函数($form){
    $(“#dData”,$form.parent())。单击();
    },
    msg:“是否删除所选项目?”,
    b提交:“删除”,
    取消:“取消”
    }
    }}, 
    ],
    寻呼机:“#寻呼机”,
    rowNum:30,
    行列表:[30,40,80],
    sortname:'ddate',
    排序器:“asc”,
    viewrecords:是的,
    gridview:没错,
    标题:“当前分配”,
    ondblClickRow:函数(rowid){
    $(this).jqGrid('editGridRow',rowid,
    {宽度:550,高度:550,重新创建表单:true,closeAfterEdit:true,
    closeOnEscape:true,reloadAfterSubmit:true,modal:true,mtype:'post',top:350,left:30});}
    });
    extend(jQuery.jgrid.nav{
    deltitle:“”,
    delcaption:“项目完成”
    },{delicon:“ui图标圆检查”,deltext:“项目完成”});
    $(“#列表”).jqGrid(“navGrid”,“#pager”,{add:false,search:false,refresh:false,edit:false}).navButtonAdd(“#pager”{
    标题:“导出到Excel”,
    按钮图标:“ui图标保存”,
    onclick按钮:函数(){
    jQuery(“#list”).jqGrid('excelExport',{url:'ExportExcel.php'});
    }, 
    位置:“最后”
    });
    //设置网格打印功能。将打印按钮添加到导航栏并绑定到单击。
    setPrintGrid('list'、'pager'、'CurrentAssignments');
    });
    
    我不确定是否正确理解了您的问题,但为什么不尝试使用以下自定义格式化程序:

    function (cellvalue, options, rowObject) {
        if (cellvalue === undefined || cellvalue === null || cellvalue === 'NULL') {
            return '&nbsp;'; // or just ""
        }
        return '<a href="' + cellvalue + '"target="_blank">FILES </a>';
    }
    
    函数(单元格值、选项、行对象){
    如果(cellvalue==undefined | | cellvalue===null | | cellvalue===null'){
    返回“”;//或仅返回“”
    }
    返回“”;
    }
    
    请接受任何帮助,我们将不胜感激。