2011-09-26 13 views
0

我在ASP.NET MVC 3應用程序中實現了一個簡單的jqGrid。它正確顯示數據,所以這很好。但是現在我希望我的應用程序能夠顯示一行的細節,如果我雙擊一行。 我有一個細節操作方法,實際上被調用正確的ID,細節從數據庫中檢索和詳細信息視圖返回,所以這似乎是好的,但在我的應用程序沒有任何反應。JQGrid + ASP.NET MVC 3重定向以雙擊記錄細節

我對電網下面的腳本:

jQuery(document).ready(function() 
{ 
    jQuery("#list").jqGrid({ 
     url: '/Incident/ListData/', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['TicketNumber', 'Title', 'CreatedOn'], 
     colModel: [ 
     { name: 'TicketNumber', index: 'TicketNumber', width: 75, align: 'left' }, 
     { name: 'Title', index: 'Title', width: 250, align: 'left' }, 
     { name: 'CreatedOn', index: 'CreatedOn', width: 90, align: 'left'}], 
     pager: jQuery('#pager'), 
     rowNum: 10, 
     rowList: [10, 50, 100], 
     sortname: 'CreatedOn', 
     sortorder: "desc", 
     viewrecords: true, 
     width: 650, 
     imgpath: '/Content/themes/base/images', 
     caption: 'Incidents', 
     ondblClickRow: function (id) { $.get('/Incident/Detail/' + id); } 
    }); 
}); 

我使用$就試圖代替$不用彷徨,但在這兩種情況下,細節方法被調用並沒有任何反應。

這是詳細的操作方法

public ViewResult Detail(Guid id) 
    { 
     var query = from inc in _repository.Incidents 
        where inc.Id == id 
        select 
         new IncidentModel(inc) 
          { 
           CreatedOn = inc.CreatedOn, 
           Description = inc.Description, 
           ModifiedOn = inc.ModifiedOn,          
           TicketNumber = inc.TicketNumber, 
           Title = inc.Title, 
           Status = inc.Status 
          }; 
     var incident = query.FirstOrDefault(); 

     return View(incident); 
    } 
+0

您需要使用四個空格縮進代碼_並在每個代碼塊_之前放置一個空行。 – SLaks

回答

2

$.get發送一個AJAX請求,併爲您的服務器的答覆。
它實際上並沒有對服務器的回覆做任何事情;這取決於你做些有用的事情。

這聽起來像你不想要AJAX;相反,你需要導航到該頁面:

location = '/Incident/Detail/' + id 
+0

這正是我正在尋找的,謝謝! – Hanno

0

正如Slaks說,你不這樣做與內容什麼。如果您的雙擊事件實際上將瀏覽器重定向到該操作?

(只是一個側面說明,爲什麼雙擊?幾乎所有其他基於網絡使用一個點擊瀏覽)。