注意,文中方法包含自訂實作,照抄很可能編不過
以 id 取得 component
Ext.getCmp('id');
// ex
var lblAssignCount = Ext.getCmp('_lblAssignCount');
文字內容使用 label 物件表達
{
xtype: 'label',
style: 'padding: 0 0 0 2px;',
text: 'txt'
}
初始化元件用的 store
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
});
其中 _$XXX 由後端取回
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);
沒有留言:
張貼留言