2010-05-13 4 views
0

J'ai un problème avec JQGrid en utilisant ASP.NET MVC. J'essaie de suivre l'exemple this (après avoir accédé à ce lien, sur le côté gauche de la page, cliquez sur Live Data Manipulation, puis sur Edit Row), mais ma fonction d'édition ne sera jamais appelée (c'est-à-dire . $("#bedata").click(function() est-ce que quelqu'un sait ce qui pourrait être le problèmejqGrid - la fonction d'édition n'est jamais appelée

<script type="text/javascript"> 
     var lastsel2; 

     jQuery(document).ready(function() { 
      jQuery("#editgrid").jqGrid({ 
       url: '/Home/GetMovieData/', 
       datatype: 'json', 
       mtype: 'GET', 
       colNames: ['id', 'Movie Name', 'Directed By', 'Release Date', 'IMDB Rating', 'Plot', 'ImageURL'], 
       colModel: [ 
        { name: 'id', index: 'Id', width: 55, sortable: false, hidden: true, editable: false, editoptions: { readonly: true, size: 10} }, 
        { name: 'Movie Name', index: 'Name', width: 250, editable: true, editoptions: { size: 10} }, 
        { name: 'Directed By', index: 'Director', width: 250, align: 'right', editable: true, editoptions: { size: 10} }, 
        { name: 'Release Date', index: 'ReleaseDate', width: 100, align: 'right', editable: true, editoptions: { size: 10} }, 
        { name: 'IMDB Rating', index: 'IMDBUserRating', width: 100, align: 'right', editable: true, editoptions: { size: 10} }, 
        { name: 'Plot', index: 'Plot', width: 150, hidden: false, editable: true, editoptions: { size: 30} }, 
        { name: 'ImageURL', index: 'ImageURL', width: 55, hidden: true, editable: false, editoptions: { readonly: true, size: 10} } 
       ], 
       pager: jQuery('#pager'), 
       rowNum: 5, 
       rowList: [5, 10, 20], 
       sortname: 'id', 
       sortorder: "desc", 
       height: '100%', 
       width: '100%', 
       viewrecords: true, 
       imgpath: '/Content/jqGridCss/redmond/images', 
       caption: 'Movies from 2008', 
       editurl: '/Home/EditMovieData/', 
       caption: 'Movie List' 
      }); 
     }); 

     $("#bedata").click(function() { 
      var gr = jQuery("#editgrid").jqGrid('getGridParam', 'selrow'); 
      if (gr != null) 
       jQuery("#editgrid").jqGrid('editGridRow', gr, { height: 280, reloadAfterSubmit: false }); 
      else 
       alert("Hey dork, please select a row"); 
     });    
    </script> 

le code HTML pertinent est ici:

<table id="editgrid"> 
</table> 
<div id="pager" style="text-align: center;"> 
</div> 
<input type="button" id="bedata" value="Edit Selected" /> 

Répondre

1

depuis que je ne vois pas dans votre exemple de code, vous devez appeler tout cela à partir au sein de l'événement jQuery ready:

jQuery(document).ready(function($) { 

    var lastsel2; 

    jQuery(document).ready(function() { 
    ... 
}); 

Sinon, votre code peut être exécuté avant que le DOM ne soit prêt, ce qui peut expliquer pourquoi votre gestionnaire click n'est jamais configuré.

+0

C'était tout, merci beaucoup! – dcp

Questions connexes