jqgrid无法在IE8和firefox 3.6.6中运行

时间:2011-09-30 07:00:29

标签: jquery asp.net asp.net-mvc jqgrid

我的jqgrid在Firefox 7和IE9中工作,但在IE8或Firefox 3.6.6中没有。我正在使用最新版本的jqgrid。

以下是我收录的脚本文件:

  <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/themes/ui-lightness/jquery.ui.all.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/ui.jqgrid.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/ui.multiselect.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/themes/ui-lightness/jquery-ui-1.8.16.custom.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/grid.locale-en.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Content/ui/minified/jquery.ui.core.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Content/ui/minified/jquery.ui.widget.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Content/ui/minified/jquery.ui.mouse.min.js")" type="text/javascript"></script>

如果需要,这是我的脚本:

 $(document).ready(function () {

        $('#jobs').jqGrid({
            url: '/SearchJob/Jobs/',
            postData: {
                'JobTitle': function () { return $('#JobTitle').val(); },
                'City': function () { return $('#City').val(); },
                'SelectJobType': function () { return $('#SelectJobType option:selected').val(); },
                'SalaryStartRange': function () { return $('#SalaryStartRange').val(); },
                'SalaryEndRange': function () { return $('#SalaryEndRange').val(); },
                'SelectCategory': function () { return $('#SelectCategory option:selected').val(); },
                'SelectIndustry': function () { return $('#SelectIndustry option:selected').val(); },
                'CompanyName': function () { return $('#CompanyName').val(); },
                'Keywords': function () { return $('#Keywords').val(); },
                'SelectSalaryType': function () { return $('#SelectSalaryType option:selected').val(); }
            },
            datatype: 'json',
            mtype: 'POST',
            colNames: ['Title', 'Category', 'Company Name', 'Location', 'Salary Range', 'Date Posted'],
            colModel: [
                { name: 'Title', index: 'title', width: 150, align: 'left', formatter: 'showlink', formatter: linkformatter },
                { name: 'Category', index: 'Category', width: 150, align: 'center' },
                { name: 'CompanyName', index: 'CompanyName', width: 150, align: 'center' },
                { name: 'CombinedLocation', index: 'CombinedLocation', width: 150, align: 'center' },
                { name: 'salaryRange', index: 'salaryRange', width: 150, align: 'center' },
                { name: 'DatePosted', index: 'DatePosted', width: 150, align: 'center' },
            ],
            shrinkToFit: true,
            rownumbers: true,
            loadonce: false,
            pager: jQuery('#jobPager'),
            rowNum: 10,
            rowList: [5, 10, 20, 50],
            sortname: 'jobid',
            sortorder: "desc",
            viewrecords: true,
            imgpath: '',
            caption: 'Jobs',
            width: '100%',
            height: "100%"
        });
        $('#search').click(function () {
            $('#jobs').trigger('reloadGrid');
            return false;
        });



    });

    linkformatter = function (cellValue, opts, rowObject) {
        console.log(rowObject);
        return "<a href='@Url.Action("JobView", "RecruiterProfile")/" + rowObject[rowObject.length - 1] +  "'>" + cellValue + "<a/>"; 
    }

附件是我在IE8和Firefox 3.6中出现的错误:

删除屏幕截图,因为我不允许发布。如果将来任何人放弃这里错误是控制台。从我的格式化程序功能中删除并且它有效!

更新:如果我禁用了Firebug,则只会出现在Firefox 3.6中的错误。我启用了Firebug,一切都按预期工作。我究竟做错了什么?我是否包含错误的脚本文件?

3 个答案:

答案 0 :(得分:3)

我认为你应该写..

window.console.log(rowObject);

取代

console.log(rowObject);

或者你可以从这里得到答案......

http://www.sitepoint.com/forums/showthread.php?575320-how-not-to-let-console.log%28%29-to-cause-error-on-IE-or-other-browsers

答案 1 :(得分:1)

 console.log(rowObject);

在IE8或Firefox 3.6.6中,它没有控制台对象。当你删除它时,它会正常工作。

答案 2 :(得分:1)

你在上一个“更新”部分的问题上几乎回答了你自己:你必须测试

if (window.console) {
    window.console.log(rowObject);
}

if (console) {
    console.log(rowObject);
}

因为console并不总是存在。