cakephp工作笔记16---JS技巧篇

一在js中,如果将一个数字转为二进制?
<script>
var n=2345.333;
alert(n.toString(2));
</script>

二、在extjs中,editgrid的combobox里如何渲染值
header: '操作员权限',
dataIndex: 'roleName',
width: 150,
editor: roleComb,
renderer:function(value)
{

var idx = roleComb.store.find(roleComb.valueField, value);
var rec = roleComb.store.getAt(idx);
return (rec == null ? value : rec.get(roleComb.displayField) );

}
三、ajax回调函数中获取对象 -- scope和createDelegate
a. 为Ajax设置scope。
例子1
function doSuccess(response) {
this.dom.value = response.responseText;
}
Ext.lib.Ajax.request(
'POST',
'08.txt',
{success:doSuccess,scope:text},
'param=' + encodeURIComponent(text.dom.value)
);
例子2:Ext.Ajax.request({
url:'/stores_houses/savename',
method:'post',
scope:this,
params:{'shid':this.shid,'shname':text},
success:function(res)
{
this.shname = text;
this.createNameText();
},
failure:function(res)
{
}

});
b. 为success添加createDelegate()。
function doSuccess(response) {
this.dom.value = response.responseText;
}

Ext.lib.Ajax.request(
'POST',
'08.txt',
{success:doSuccess.createDelegate(text)},
'param=' + encodeURIComponent(text.dom.value)
);
createDelegate只能在function上调用,它把函数里的this强行指向我们需要的对象,然后我们就可以在回调函数doSuccess里直接通过this来引用createDelegate()中指定的这个对象了。它可以作为解决this问题的一个备选方案。
如果让我选择,我会尽量选择scope,因为createDelegate是要对原来的函数进行封装,重新生成function对象。简单环境下,scope就够用了,倒是createDelegate还有其他功能,比如修改调用参数等。
示例在10.store/08.html中。


四、如何给Label添加click事件
[url]http://crabdave.iteye.com/blog/325974[/url]
//在渲染后添加click事件
Ext.form.Label.prototype.afterRender = Ext.form.Label.prototype.afterRender
.createSequence(function() {
this.relayEvents(this.el, ['click']);
});//这一段一定要放在label之前

五、Js 和 PHP 中保留小数点后X位数的方法 toFixed、round、number_format、sprintf
[url]http://blog.csdn.net/richie214/archive/2009/11/16/4815143.aspx[/url]

六、在Ajax操作中添加等待条
var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
Ext.Ajax.on('beforerequest', myMask.show, myMask);
Ext.Ajax.on('requestcomplete', myMask.hide, myMask);
Ext.Ajax.on('requestexception', myMask.hide, myMask);

七、grid动态添加列
var columns = [];
columns.push(new Ext.grid.RowNumberer());
columns.push(new Ext.grid.Column({header:'tt',dataIndex:"test"}));
columns.push(new Ext.grid.Column({header:'tt2',dataIndex:"test2"}));
dirgrid.getColumnModel().setConfig(columns);

八、javascript里的json是当做对象来操作,可以用“对象.字段名”来访问
而在php中则是按照数组来访问"对象[字段名]

九.javascript里的算术运算
[url]http://hi.baidu.com/tzymj/blog/item/71b3adb1de6e0c5d09230296.html[/url]

十、extjs的grid获取总行数和列数
行数:var total = mygrid.getStrore().getCount();//数据行数
列数:var colIndex = grid.getColumnModel().getColumnCount();
十一、获取浏览器的高度
[url]http://blog.51xuewen.com/wangpan/article_2091.htm[/url]

十二、Extjs的表单的提交
[url]http://www.codeweblog.com/extjs-notes/[/url]
editfm.getForm().doAction('submit',{
url:'applicationform.php',
method:'post',
params:{},
success:function(form, action)
{
//window.location.href="index.html";
},
failure:function()
{

}
});
十三、如果网页content="text/html; charset=utf-8" ,则 mysql_query("SET NAMES utf8",$myconn);否则乱码,如果网页是gb2312则mysql也必须是gb2312

十四,在store的读取事件加进度条
listeners:{
beforeload:function(store,options)
{
//开始进度条
Ext.MessageBox.show({
title: '请稍等',
msg: '正在加载开锁记录...',
width:300,
wait:true,
waitConfig: {interval:200},
closable:false
});
},
load:function(store,records,options)
{
Ext.MessageBox.hide();
}

十六,javascript的oop
用var可以定义类的private属性,而用this能定义类的public属性;
用var定义的方法也是private方法,而用this定义的是类的public方法,
[url]http://home.phpchina.com/space.php?uid=76267&do=blog&id=71740[/url]


十七、DOM事件列表
[url]http://www.caihong.cc/?p=128[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值