注意,文中方法包含自訂實作,照抄很可能編不過
以 id 取得 component
- Ext.getCmp('id');
- // ex
- var lblAssignCount = Ext.getCmp('_lblAssignCount');
文字內容使用 label 物件表達
- {
- xtype: 'label',
- style: 'padding: 0 0 0 2px;',
- text: 'txt'
- }
初始化元件用的 store
其中 _$XXX 由後端取回
- storeXXX = new Ext.data.JsonStore(
- {
- fields:
- [
- 'NAME', 'VALUE'
- ],
- data: _$XXX
- });
- cmbBatch = new Ext.form.ComboBox(
- {
- fieldLabel: _XXX,
- store: storeXXX,
- displayField: 'NAME',
- valueField: 'VALUE',
- disabled: false
- });
- protected void Page_Load(object sender, EventArgs e)
- {
- if (IsPostBack)
- return;
- AppendData("XXX", getXXX());
- }
Jquery 前後端 ajax 溝通
- // client
- $.ajax({
- url: 'page.aspx',
- cache: false,
- async: false,
- // send
- data: { ID: value ,ajaxMethod:'ServSideMethodName'},
- type: 'post',
- // recv
- success: function (data) {
- person.name = data.name;
- person.age = data.age;
- },
- dataType: 'json'
- });
- //serv
- public void ServSideMethodName()
- {
- // recv
- var id = GetParamNonEncrypt("ID");
- Person p = queryPersonInfoById(id);
- // send
- var jsonResult = new
- {
- name = p.Name,
- age = p.Age
- };
- Response.Write(EnJson(jsonResult));
- }
指定匿名方法給 handler
- btnXXX= new Ext.Button({
- text: 'xxx',
- handler: function () {
- doSomthing();
- }
- });
JavaScript 執行階段錯誤: 無法取得未定義或 Null 參考的屬性 'xxx'
這個錯一般是它的上一層沒有正確的取到東西,才造成下一層帶不出該有的屬性或方法。
比方說,
JavaScript 執行階段錯誤: 無法取得未定義或 Null 參考的屬性 'toLowerCase'
在 record.data.ALMARK_123456.toLowerCase() 發生
錯誤是出在 ALMARK_123456 未定義,而不是 toLowerCase() 未定義。
store 取值流程
- // client
- var colMod = new Ext.grid.ColumnModel({
- columns: [
- {
- header: _col1,
- dataIndex: 'col1',
- width: 100,
- sortable: false
- },
- ...
- ]
- });
- var dataSet = null;
- $.ajax({
- url: 'pageName.aspx',
- cache: false,
- async: false,
- // send
- data: { ajaxMethod: 'AjaxGetStoreData', par: par },
- type: 'post',
- // recv
- success: function (data) {
- dataSet = data.dt;
- },
- dataType: 'json'
- });
- storeOfGrid = new Ext.data.JsonStore({
- fields: ['col1', ...],
- data: dataSet
- });
- var myGrid = new Ext.grid.GridPanel({
- id: "myGrid",
- frame: false,
- border: false,
- enableColumnMove: false,
- enableColumnResize: false,
- autoEncode: true,
- height: 150,
- cm: colMod
- });
- // serv
- public void AjaxGetStoreData()
- {
- try
- {
- string par = GetParam("par");
- var resultSet = someInstance.DoSomthing(par);
- var jsondata = new { dt = resultSet.Tables[0] };
- Response.Write(EnJson(jsondata));
- }
- catch (Exception ex)
- {
- }
- }
已設定過的 store 與 grid 重設定
- newStore = new Ext.data.JsonStore(
- {
- fields: [
- 'col1', ...
- ],
- data: newSrc
- });
- myGrid.reconfigure(newStore, colMod);
沒有留言:
張貼留言