2012-05-31 2 views
-1

в ASP-MVC, у меня есть частичный вид, который содержит следующее:создания файла JavaScript

<table id="grid"> 
</table> 
<div id="pager1"> 
</div> 

<script language="javascript" type="text/javascript"> 
$('#grid').jqGrid({ 
    url: '/Employee/JsonEmployee', 
    datatype: 'json', 
    mtype: 'GET', 
    colNames: ['NUMBER', 'NAME', 'ROLE', 'OPERATIONS'], 
    colModel: [ 
{ name: 'NUMBER', index: 'number', width: 200, sortable: false, align: 'center' }, 
{ name: 'NAME', index: 'name', width: 300, sortable: false, align: 'center' }, 
{ name: 'ROLE', index: 'role', width: 200, sortable: false, search: false, align: 'center' }, 
{ name: 'OPERATIONS', index: 'operation', width: 200, sortable: false, search: false, align: 'center'}], 
    rowNum: 10, 
    rowList: [10, 20, 30], 
    pager: '#pager1', 
    sortname: 'number', 
    viewrecords: true, 
    sortorder: "desc", 
    height: "100%", 
    caption: "EMPLOYEES" 
}); 
jQuery("#grid").jqGrid('navGrid', '#pager1', { del: false, add: false, edit: false }, {}, {}, {}, { width: 600 }); 

</script> 

он работает нормально, но потом, я решил удалить сценарий в нижней части моего зрения и поставить его в файле Javascript (.js) в папке сценариев: Local.js

function() { 
$('#grid').jqGrid({ 
    url: '/Employee/JsonEmployee', 
    datatype: 'json', 
    mtype: 'GET', 
    colNames: ['NUMBER', 'NAME', 'ROLE', 'OPERATIONS'], 
    colModel: [ 
{ name: 'NUMBER', index: 'number', width: 200, sortable: false, align: 'center' }, 
{ name: 'NAME', index: 'name', width: 300, sortable: false, align: 'center' }, 
{ name: 'ROLE', index: 'role', width: 200, sortable: false, search: false, align: 'center' }, 
{ name: 'OPERATIONS', index: 'operation', width: 200, sortable: false, search: false, align: 'center'}], 
    rowNum: 10, 
    rowList: [10, 20, 30], 
    pager: '#pager1', 
    sortname: 'number', 
    viewrecords: true, 
    sortorder: "desc", 
    height: "100%", 
    caption: "EMPLOYEES" 
}); 
jQuery("#grid").jqGrid('navGrid', '#pager1', { del: false, add: false, edit: false }, {}, {}, {}, { width: 600 }); 

    }; 

я назвал файл сценария в моем _Layout.cshtml:

<head> 
    <meta charset="utf-8" /> 
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" /> 
    <link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" /> 
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script> 

    <script src="@Url.Content("~/Scripts/i18n/grid.locale-en.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/Local.js")" type="text/javascript"></script> 
    <meta name="viewport" content="width=device-width" /> 
</head> 

, когда я запускаю свое веб-приложение, он больше не работает ... jqGrid больше не отображается ... где может быть проблема?

+0

Попробуйте переместить его выше на странице. Возможно, вы включили этот файл слишком поздно в HTML. –

+1

Как вы собираетесь называть эту анонимную функцию? – Musa

+0

уже пробовал, но он не работал ... это мое создание файла javascript правильно? –

ответ

0

Ваш код в Local.js никогда не выполняется, вы можете назвать это, когда дом готов с $(document).ready()

$(document).ready(function() { 
    $('#grid').jqGrid({ 
     url: '/Employee/JsonEmployee', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['NUMBER', 'NAME', 'ROLE', 'OPERATIONS'], 
     colModel: [ 
    { name: 'NUMBER', index: 'number', width: 200, sortable: false, align: 'center' }, 
    { name: 'NAME', index: 'name', width: 300, sortable: false, align: 'center' }, 
    { name: 'ROLE', index: 'role', width: 200, sortable: false, search: false, align: 'center' }, 
    { name: 'OPERATIONS', index: 'operation', width: 200, sortable: false, search: false, align: 'center'}], 
     rowNum: 10, 
     rowList: [10, 20, 30], 
     pager: '#pager1', 
     sortname: 'number', 
     viewrecords: true, 
     sortorder: "desc", 
     height: "100%", 
     caption: "EMPLOYEES" 
    }); 
    jQuery("#grid").jqGrid('navGrid', '#pager1', { del: false, add: false, edit: false }, {}, {}, {}, { width: 600 }); 
}); 
+0

все еще не работает, так я правильно назвал свой файл javascript? –

+0

У вас есть ошибки? – Musa

0

Функция в вашем Local.js файл не имеет имени ... вы не вызовите функцию, так что все внутри вашего Local.js не работает! Вы можете использовать:

window.onload = function() { 
    //your code here 
} 

но не рекомендуется использовать. Вы должны дать имя своим функциям и назвать их

+0

если я удалю функцию, почему она не работает? он должен видеть, что он соответствует идентификатору #grid и начинает выполнение скрипта, не так ли? –

+0

Чтобы отделить javascript в другом файле, вам нужно создать функции и вызвать их. Вы не можете писать код напрямую, как то, что вы делали в своем теге