2009-08-16 17 views
0

Ich habe versucht, jQuery Grid-Funktion in meiner Asp.Net MVC App zu implementieren. Ich teste gerade alles auf XP, also habe ich die mvc-Erweiterung aktiviert (seit ich IIS 5 verwende)jQueryGrid ruft die URL in ASP.Net nicht auf MVC

Ich habe in 2 Probleme laufen.

  1. Mein jquery Raster scheint nicht aufgerufen zu werden.
    I verwiesen, die alle jquery & Gitterdateien die Url.Content() -Methode Hier ist meine headcontent mit:
 
    
     jQuery(document).ready(function() { 
     alert('loaded'); 
     alert('starting jquery'); 
      jQuery("#list").jqGrid 
      ({ 
       url: '/Bar.mvc/GridData/', 
       datatype: 'json', 
       mtype: 'GET', 
       colNames: ['Id', 'Votes', 'Title'], 
       colModel: [ 
       { name: 'Id', index: 'Id', width: 40, align: 'left' }, 
       { name: 'Votes', index: 'Votes', width: 40, align: 'left' }, 
       { name: 'Title', index: 'Title', width: 400, align: 'left'}], 
       pager: jQuery('#pager'), 
       rowNum: 10, 
       rowList: [5, 10, 20, 50], 
       sortname: 'Id', 
       sortorder: "desc", 
       viewrecords: true, 
       imgpath: '/scripts/themes/coffee/images', 
       caption: 'My first grid' 
      }); 
      alert('jQuery done'); 
     }); 
    

Meine ersten beiden Warnungen Feuer. Aber sobald es in die Funktion jGrid eintritt, wird die dritte Warnung nicht ausgelöst. Ich denke, es könnte mit der URL zusammenhängen, weil ich einen Breakpoint auf die Funktion im Controller gesetzt habe und es nie getroffen wird.

Mein zweites Problem ist, wenn ich /Bar.mvc/GridData in die Adressleiste gesetzt habe, um sogar zu sehen, ob es die Funktion finden konnte, es fordert mich auf, eine JSON-Datei mit Firefox "Save File .. . "Dialog.

Hier ist meine Funktion in der Steuerung:

 public ActionResult GridData(string sidx, string sord, int? page, int? rows) 
    { 
     int totalPages = 1; // we'll implement later 
     int? pageSize = rows; 
     int totalRecords = 3; // implement later 

     var jsonData = new 
     { 
      total = totalPages, 
      page = page, 
      records = totalRecords, 
      rows = new[]{ 
       new {id = 1, cell = new[] {"1", "-7", "Is this a good question?"}}, 
       new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?"}}, 
       new {id = 3, cell = new[] {"3", "23", "Why is the sky blue?"}} 
      } 
     }; 
     return Json(jsonData); 
    } 

Antwort

0

Nicht sicher, ob dies die tatsächliche Antwort ist oder nicht. Aber ich habe ein paar Schritte zurück gemacht und mit jQuery etwas sehr Einfaches versucht.

Ich habe eine einfache .post. Aber für die URL habe ich eine

<%Html.Action("myControllerFunction")%> 

Das war alles, was es dauerte, damit es funktioniert. Wenn ich wieder eine Chance bekomme, werde ich es am Gitter testen, aber ich denke, es ist zumindest verwandt.

Aber ich habe Firebug verwendet, um mir zu diesem Punkt zu kommen.

0

Wenn der dritte Alarm nicht ausgelöst, dann wird der Anruf an jqGrid stirbt. Verwenden Sie Firebug oder den IE 8-Skriptdebugger, um den Fehler zu sehen. Die "zweite Frage" ist korrektes Verhalten. Mach dir keine Sorgen darüber. Wenn das Gitter deine Aktion aufruft, ist es richtig.