Search code examples
javascriptjqgridjqgrid-formatter

class in column jqgrid doesnt working


Hi I use custom formatter in jqGrid which will add link and class to column. the name of class I will call is 'iframe' which will set my own dialog box using jquery colorbox. I have seen in firebug that class of column name was set 'iframe' but when I was clicked that, the dialog didnt working. am I did wrong?

<script type="text/javascript" language="javascript">
jQuery(document).ready(function() {
$(".iframe").colorbox({ iframe: true, width: "40%", height: "80%", onClosed:function(){ location.reload(true); }  });

jQuery("#MyDynamicGrid").jqGrid({
        url: '/RepositoryRole/DynamicGridData/',
        mtype: 'POST',
        datatype: 'json',
        colModel: [                
            { name: 'Name', index: 'Name', width: 0, align: 'left', searchoptions: { sopt: ['cn', 'eq', 'ne'] }, formatter: returnMyLink, editable: true, editrules: { required: true, edithidden: true }, hidden: false },
            { name: 'Description', index: 'Description', width: 80, align: 'left', searchoptions: { sopt: ['cn', 'eq', 'ne'] },  },                
        ],

        colNames: ['Name', 'Description'],
        pager: jQuery('#pager'),
        rowNum: 5,
        rowList: [5, 10, 20, 30],
        sortname: 'Name',
        sortorder: 'Desc',
        viewrecords: true,
        imgpath: '/Content/JqGridThemes/steel/images',            
        autowidth: true,
        editurl: '/User/EditGrid/'
    });

function returnMyLink(cellValue, options, rowdata, action) {
    return '<a href="#" class="iframe">' + cellValue + '</a> ';
}});

Thanks


Solution

  • I think the colorbox is not being attached to element which are loaded from jqgrid. you can use gridComplete for reattaching the colorbox

    jQuery("#MyDynamicGrid").jqGrid({
            url: '/RepositoryRole/DynamicGridData/',
            mtype: 'POST',
            datatype: 'json',
            colModel: [                
                { name: 'Name', index: 'Name', width: 0, align: 'left', searchoptions: { sopt: ['cn', 'eq', 'ne'] }, formatter: returnMyLink, editable: true, editrules: { required: true, edithidden: true }, hidden: false },
                { name: 'Description', index: 'Description', width: 80, align: 'left', searchoptions: { sopt: ['cn', 'eq', 'ne'] },  },                
            ],
    
            colNames: ['Name', 'Description'],
            pager: jQuery('#pager'),
            rowNum: 5,
            rowList: [5, 10, 20, 30],
            sortname: 'Name',
            sortorder: 'Desc',
            viewrecords: true,
            imgpath: '/Content/JqGridThemes/steel/images',            
            autowidth: true,
            editurl: '/User/EditGrid/',
            gridComplete: function(){
            $(".iframe").colorbox({ iframe: true, width: "40%", height: "80%",       onClosed:function(){ location.reload(true); }  }
           }
        });