EXTJS의 editgrid 관련
editgrid 귀속 데이터를 초기화할 때, 그는 당신이 표시할 데이터를 설정할 수 있습니다. 몇 열을 표시해야 하는지, 열의 맨 앞에 체크박스가 있어야 하는지, 그리고 스타일을 눌러서 편집 상태로 들어갈 수 있으며, 그 열을 편집하면 이벤트를 감청해서 당신이 해야 할 작업을 할 수 있습니다.
- // EditGrid
- this.InitEditGrid = function () {
- var sm = new Ext.grid.CheckboxSelectionModel({});
-
- var column = new Ext.grid.ColumnModel([
- // { header: 'FID', dataIndex: 'FID'},
- sm,
- { header: ' ', dataIndex: 'FName', width: 100, css: "text-align:left;", editor: new Ext.form.TextField() },
- { header: ' ', dataIndex: 'FNum', width: 100, css: "text-align:left;", editor: new Ext.form.TextField() },
- { header: ' ', dataIndex: 'FPrice', width: 100, css: "text-align:left;", editor: new Ext.form.TextField() },
- { header: ' ', dataIndex: 'FMount', width: 100, css: "text-align:left;", renderer: function (v) {
- return "<font color=red> ¥</font>" + v
- }
- }
- ]);
-
- tp = new Ext.data.Record.create([
- { name: "FID", type: "string", mapping: "FID" },
- { name: "FName", type: "string", mapping: "FName" },
- { name: "FNum", type: "decimal", mapping: "FNum" },
- { name: "FPrice", type: "decimal", mapping: "FPrice" },
- { name: "FMount", type: "decimal", mapping: "FMount" }
- ])
-
- var reader = new Ext.data.JsonReader({}, tp);
-
- gridStore = new Ext.data.Store({
- reader: reader,
- pruneModifiedRecords: true
- })
-
- // store
- gridStore.loadData([]);
-
- //
- gridEdit = new Ext.grid.EditorGridPanel({
- width: 800,
- height: 300,
- cm: column,
- store: gridStore,
- clicksToEdit: 1,
- columnLines: true,
- sm: sm,
- listeners:
- {
- afterEdit: function (a) {
- var num = 0;
- var price = 0;
-
- if (a.field == "FNum") {
- num = a.value;
-
- price = gridStore.getRange()[a.row].data.FPrice;
- if (price == "" || price == undefined) {
- gridStore.getRange()[a.row].data.FMount = "";
- }
- else {
- gridStore.getRange()[a.row].data.FMount = parseFloat(num) * parseFloat(price);
- gridEdit.getView().refresh();
- }
-
- }
- else if (a.field == "FPrice") {
- price = a.value;
-
- num = gridStore.getRange()[a.row].data.FNum;
- if (num == "" || num == undefined) {
- gridStore.getRange()[a.row].data.FMount = "";
- }
- else {
- gridStore.getRange()[a.row].data.FMount = parseFloat(num) * parseFloat(price);
- gridEdit.getView().refresh();
- }
- }
-
- }
- }
-
- });
- //
- gridEdit.render("editGrid");
- }
그는 데이터베이스에 없는 데이터도 포함할 수 있다. 예를 들어 코드에 있는 FNum, FPrice, FMount는 모두 데이터베이스에 있는 것이 아니다. 그들은 로컬에서 직접 추가할 수 있고 그는 afteredit 이벤트 이후에 발생한 계산이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
문자열 길이를 계산하고 중국어로 두 개를 계산합니다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.