2015-10-07 53 views
1

我有每一行模塊細節劍道網格,我要的是點擊一排按鈕時交換兩個對象的值。 例如:名稱爲「Activity1」的對象的訂單號爲「1」 名稱爲「Activity2」的對象的訂單號爲「2」如何在單擊第一行中的按鈕時獲取下一行的對象詳細信息?

我想在交換訂單的行1上按下按鈕數字,因此活動1的訂單號爲「2」,活動2的訂單號爲「1」。

我能得到該行的對象的細節壓上,並改變它,因爲我想要的東西,但我沒能獲得下一行的細節來改變它爲好,任何幫助嗎?

代碼:

@(Html.Kendo().Grid<WEB02.ConfigurationModel.TestGrid>() 
.Name("grid") 
.Columns(columns => 
{ 

    columns.Bound(o => o.Name).Width(110); 
    columns.Bound(o => o.Type).Width(130); 
    columns.Command(command => {command.Destroy(); 

    command.Custom("Higher Order").Click("HigherOrder"); 

    }); 
}) 
.Sortable() 
.Scrollable(scrollable => scrollable.Virtual(true)) 
.Selectable(selectable => selectable 
     .Mode(GridSelectionMode.Multiple)) 
.HtmlAttributes(new { style = "height:430px;" }) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .Model(model => model.Id(p => p.Name)) 
    .PageSize(100) 
    .Read(read => read.Action("ActivityGrid", "Configuration")) 
    .Destroy("TestDelete", "Configuration") 
    .Events(events => events.Sync("sync_handler"))  
    ) 


    .Pageable(pageable => pageable 
     .Refresh(true)) 

) 

功能

function HigherOrder(e) { 
    var tr = $(e.target).closest("tr"); // get the current table row (tr) 
    var item = this.dataItem(tr); 
    // get the date of this row 
    //console.log(item); 
    console.log(item.NodeId); 
    console.log(item.Type); 
    console.log(item); 
    var newOrder= parseInt(item.ActivOrderNo)+1; 
    var params = { 

     nodeID: item.NodeId + ".CONFIG.OrderNumber", 
     write: newOrder 
    }; 

    console.log(newOrder); 
    var temp = { 
     url: "/Configuration/WriteAttribute", 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: JSON.stringify(params), 
     success: function (params) { 
      window.location.replace(params.redirect); 
     } 
    }; 
    $.ajax(temp); 

回答

0

如果你只是想獲得下一行,你需要使用row.index財產。

爲了得到當前行的索引:

var grid = $('[name="Grid"]').data("kendoGrid");   
var dataRows = grid.items(); 
var rowIndex = dataRows.index(grid.select()); 

要通過索引的使用獲得的數據項旁邊一小段代碼片段:

var nextDataItem = grid.dataItems()[rowIndex+1]; 
+0

我認爲它會工作,但現在它是給我的一個錯誤劍道電網。 Uncaught TypeError:無法讀取未定義的屬性'值'。有任何想法嗎 ? – KamalF

+0

也許這是由錯誤的選擇器造成的。更新我的答案。 –

+0

其實舊選擇器是正確的,我不得不把它的可選部分工作(檢查更新的問題)。但現在我有另一個問題,選定的rowIndex似乎總是-1,而不是行的細節! – KamalF

相關問題