2013-04-15 134 views
2

場景 我有一個產品詳細信息網格,它在編輯時打開包含該記錄詳細信息的彈出窗口。除數量字段外,所有字段都是隻讀的。因此,當我增加或減少數量時,價格欄應根據價值反映。 所以,如果數量1是10然後當我增加數量爲2,應反映到20Kendo UI:更改另一列中更改值的一列數據

問題 1)我研究的編輯方法一點,我將不得不使用數量列上的同樣方法對嗎?

2)我應該如何獲得價格欄的價值並更新其價值?有沒有像編輯器內置的方法?我該怎麼辦?

以下是我準備的JS小提琴。 http://jsbin.com/ugeref/3/edit

謝謝!

- Hardik

+0

代碼嘗試google搜索_calculated VALUE_我這個,你會發現相關的例子。 – OnaBai

+0

嗨Ona,很高興看到您的評論..已經遇到您的網站和您的答案..他們給出了最好的解決方案..謝謝你這麼多的迴應...是你正在談論的聚合函數?好吧,我只是谷歌它出來...你可以請告訴我任何鏈接或材料,我應該通過學習劍道用戶界面? – Hardik

+0

嗨Ona,谷歌搜索後..我找不到相關的鏈接到我的解決方案...但是,我得到TeleControl鏈接RadControls例如。 http://www.telerik.com/community/forums/aspnet-ajax/grid/change-values-in-radgrid-field-according-to-changes-in-another-field.aspx但那不是我所需要的...謝謝.. – Hardik

回答

2

定義你的DataSource爲:

var dataSource = new kendo.data.DataSource({ 
    data : data, 
    schema: { 
     model: { 
      id : "Id", 
      fields: { 
       productName: { editable: false}, 
       quantity : { editable: true, type : "number" }, 
       price  : { editable: false, type : "number" }, 
       total  : { editable: false, type : "number" } 
      } 
     } 
    } 
}); 

您應該在哪裏添加total字段是quantityprice注意:另外,我定義了不同字段的類型,讓KendoUI知道它是數字並生成正確的小部件。

然後,定義grid爲:

$("#grid").kendoGrid({ 
    dataSource: dataSource, 
    pageable : true, 
    height : 400, 
    toolbar : ["create"], 
    columns : [ 
     { field: "productName", title: "Product Name" }, 
     { field: "quantity", title: "Quantity", format: "{0:c}"}, 
     { field: "total", title: "Total", template: "#= quantity * price #", width: "150px" }, 
     { command: ["edit", "destroy"], title: " " } 
    ], 
    editable : "popup" 
}); 

如果我補充說,使用的模板是quantity * price結果的Total列。

每次更新quantity時,total都會得到updated

見你修改here

+0

嗨Ona,非常感謝你的寶貴迴應!但小提琴的工作正常......但如果我只有一列?我必須在飛行中改變價值?我的意思是,而不是添加一個總列(這是有道理的,添加總列)..我將如何去? – Hardik

+0

您的意思是「價格」是「數量」乘以常數?這是常數「10」的值?請讓我知道,我會更新這個例子。 – OnaBai

+0

嗯...不...你的編輯足以讓我解決:)謝謝奧納! :) – Hardik

相關問題