2013-08-20 111 views
0

我需要執行一個歷史按壓狀態對電網點擊一些行動......劍道UI MVC網格行選擇

我看了API,而且我認爲事件改變其正確的地方做.. 。

所以,這就是代碼我倒是想就擺在那裏

"window.History.pushState(null, null," + "'" + Url.Action("Edit", "MyController") + "/' + Id);" 

我使用了一個類似的JS網格和工作正常,但我不知道怎麼做,與劍道UI MVC包裝... 我打算直接使用網格定義,所以我不必創建任何JS方法d ...類似的東西:

.Events(events => events.Change(x => "window.History.pushState...")) 

這可能嗎?如何獲得ID並在那裏聲明Url.Action?

感謝

回答

1

docs for the "change" event對如何獲取數據項對於選擇的行(或多個)的例子。

MVC助手希望JS函數的字符串名稱被傳遞給events.Change(),但我想你也可以在那裏定義一個函數。

因此,像:

@{ 
    var url = Url.Action("Edit", "MyController"); 
} 

... 

.Events(events => events.Change(x => @"function (changeEvent) { 
    var selectedRows = this.select(); 
    var dataItem; 
    var numSelectedRows = selectedRows.length; 
    for (var i = 0; i < numSelectedRows ; i++) { 
     dataItem = this.dataItem(selectedRows[i]); 
     selectedDataItems.push(dataItem); 
     window.History.pushState(null, null, """ + url + @"/"" + dataItem.Id); 
    } 
}")) 

我沒有劍道MVC項目在我面前開來驗證語法,但應該是相當接近,或者至少讓你在正確的指出方向。