2014-04-14 15:59题主

使用Grid表格組件 如何讓判斷是新增或修改

您好:
使用Grid表格組件 影片中,
1.INSERT範例,他讓ajaxInsert 的output 輸出給 window1
  然後,點選 menuITem1 跳出視窗新增 資料,window1 clikcO後,才去動做。

2.UPDATE 範例中,他點選menuItem2後,直接跳出WINDOW1視窗,點選確認後,就修改。

這時候,1.的insert功能消失了。
請問該如何 讓window1.clickOK 可以辨別 INSERT,UPDATE,DELETE 再去做不動作?

另外,於Select 範例中,column中設定dataIndex 及 text 皆為FILED1 ...
這2個欄位有何作用? 

謝謝!
2014-04-15 09:34#1
建议您结合示例和源码看:
窗口点击确认是依据设置的变量来判断是新增还是修改(在Wb.edit中置win.isNew变量,也可以设置其他变量来标识);
column的dataIndex对应列名称(字段),text为标题。
2014-04-15 10:17#2
您好:
謝謝

想確認一下
1.Wb.edit 中置win.isNew 變量,這是自訂 還是 系統內建的(找不到該變量)。
若是元件間傳遞參數,有限制性嗎? 
比如 window1
             |--PAnel1
這傳遞 是WINDOWS1.直接用function X(param){ ...}
PANEL1 直接呼叫 X('update'); 嗎?

2.dataIndex 對應列名稱(字段) :是指  SQL 的欄位,還是 column這元件的ID名稱?

謝謝!

2014-04-16 09:33#3
isNew是自定义编码,可参阅源码和文档;
js的方法或变量在作用域内都是可见(有效)的,如在function内定义的方法或变量在该方法所有函数内都有效;只要是作用域内的方法都可以直接引用,另外你也可以把一方法定义到一全局控件内,如:

具体请参阅JavaScript文档

dataIndex为SQL的字段(栏位),同column的id无关)
2014-04-16 17:13#4
您好:
我參考 
 Wb.edit(Ext.grid.Panel grid/Ext.window.Window win, [Ext.window.Window win], [String key], [Boolean isText],[String controlIdPrefix])
若是 我目前是 wb.edit(grid1,window1,"FILED1"); 來設定單一KEY
Q1.若是2個欄位為KEY,該如何放
Q2.win.isNew变量
 是指  wb.edit(grid1,window1,"FILED1","win.isNew"); 加入一個變量嗎?
 
 這傳到WINDOW1後, 我該如何承接
 因為 wb.edit 是一個固定的方法,傳資料 過去後就不管了
 
Q3.我發現wb.edit 開啟視窗後, 他的TITLE 會出現EDIT FILE1值
請問 該如何去抓取 WINDOW1的TITLE?
我試過用 alert(window1.title) ==>undefiled
window1.title.getValue();也沒效.
謝謝! 
 
2014-04-16 17:35#5
这些都是基础的JavaScript知识,建议你参考JavaScript手册
2014-04-17 10:42#6
您好:
不好意思,可否給個提示
若是我新增一個 inNew(),但我該去判斷 Grid 還是哪邊,確認他是 新增/修改/刪除?

不好意思,初學,找不到 入口.

另外,在您
wb.js 中
updateValue : function(grid, vals) {
var st = grid.store, fs = st.model.prototype.fields, r = Wb
.getSelRec(grid)[0], v;
fs.each(function(t) {
v = vals[t.name];
if (v !== undefined)
r.set(t.name, v);
});
r.commit();
return r;
},
fs.each(function(t) 
這each 是jQuery 嗎 還是 一般JS?

我試過 在一般HTML中
var test = new Array(1, 2, 3, 4, 5, 6);
test.each(function(elem){
    //console.log(elem * elem);
    alert(elem);
});
但Uncaught TypeError: undefined is not a function
2014-04-17 19:52#7
each是extjs的一个方法哦
2014-04-18 08:51#8
您好:請問一下
js :直接使用
jQuery :會要求用 $().

那 Extjs:不是要求用 Ext. 嗎?
還是可以直接使用?

謝謝

2014-04-18 09:41#9
您好:
再請教一下
若我的Object架構如圖:

我在 window1.button1的click 中設定
alert(grid1.width);   ==>得到200
alert(grid1.tbar);   ==>得到 null
alert(grid1.store);   ==>得到 [object object]
      我用grid1.store.name ==>undefined

請問 這要如何取得名稱,乃至將來要如何動態設定 呢?

另外m_demo1.title 要去抓 m_demo1的TITLE但 沒有反應?

2014-04-18 09:42#10
不好意思,如下
2014-04-18 14:55#11
您好,建议你先阅读一下JavaScript方面的基础知识,有了这些知识之后就会自然明白
2014-04-18 16:52#12
您好:
謝謝您.
不過可否斗膽請教一下,這是 JS哪一方面的基礎?
我試過 atributes,OBject 等沒效
var x=grid1;
for(var item in x) {
    var value = x[item]+"\n";
    Wb.print(value);
}
卻出現一堆function()...

還是有其他先進 可以指導一下。
我該如何去抓 grid1內的 tbar,store等

另外,同一個window1,該如何判別目前是 I/U/D ;各位是如何做的?
謝謝!


2014-04-18 18:48#13
这个是js的语法基础。
item in grid1表示遍历grid1的item,grid1有方法和属性
打印出来的当然是function
tbar store等的获取可参数extjs文档 grid1.store...
可以设置一个变量来标志增,删,改

返回开发者社区