2006-11-02
[原创]可以让table支持手动调节列宽的js(ie only)
关键字: ajax js dhtml
这是几个月前写的东西了
现在看起来真差
但还是发上来吧
这个project可以让你的 [现有] 的列表table 在[几乎不用修改]的情况下,
自动支持手动调节列宽的功能。完全基于DHTML前台技术,与服务器端无关。
通常情况下 你真正要做的工作只是(当然还有更高级的用法,说明晚些时候奉上)
1 引入脚本
<SCRIPT language="javascript" src="mycommon.js"></SCRIPT>
<SCRIPT language="javascript" src="mylisttable.js"></SCRIPT>
2 在页面初始化方法里执行:
新建 MyListTableManager 对象,并初始化:
window.demoManager=new MyListTableManager();
demoManager.initDefaultStyle();
将你自己的table id告诉刚刚创建的 MyListTableManager 对象:
demoManager.addNewMyListTable("你的列表table的id");
注意:
0 目前只支持IE 6。 IE其他版本未测试。暂时不支持FireFox浏览器。
1 不管如今AJAX RIA RCP这些东西如何流行,用js来实现的展现层不可能达到用C写的GUI程序的水平,所以期望值不要太高:)。
2 测试中,肯定还有很多bug...
现在看起来真差
但还是发上来吧
这个project可以让你的 [现有] 的列表table 在[几乎不用修改]的情况下,
自动支持手动调节列宽的功能。完全基于DHTML前台技术,与服务器端无关。
通常情况下 你真正要做的工作只是(当然还有更高级的用法,说明晚些时候奉上)
1 引入脚本
<SCRIPT language="javascript" src="mycommon.js"></SCRIPT>
<SCRIPT language="javascript" src="mylisttable.js"></SCRIPT>
2 在页面初始化方法里执行:
新建 MyListTableManager 对象,并初始化:
window.demoManager=new MyListTableManager();
demoManager.initDefaultStyle();
将你自己的table id告诉刚刚创建的 MyListTableManager 对象:
demoManager.addNewMyListTable("你的列表table的id");
注意:
0 目前只支持IE 6。 IE其他版本未测试。暂时不支持FireFox浏览器。
1 不管如今AJAX RIA RCP这些东西如何流行,用js来实现的展现层不可能达到用C写的GUI程序的水平,所以期望值不要太高:)。
2 测试中,肯定还有很多bug...
- 17:10
- 浏览 (7023)
- 论坛浏览 (9087)
- 评论 (10)
- 分类: js & ajax
- 相关推荐
评论
l0979365428
2006-11-17
回复
lz的效果看不到阿,
不过这个说得还不错啊
就是不知道能不能作为一个独立的控件来用呢,可不可以一个页面上面显示多个表格呢,这个我觉得还是挺重要的问题
不过这个说得还不错啊
引用
看看这个:
http://makoomba.altervista.org/grid/
基于jquery的。不错。可惜没文档,难直接重用。
我拿来用了,并且做了些修改,变得更实用,而且也可以重复使用。等做完之后,贴个修改的版本上来。
http://makoomba.altervista.org/grid/
基于jquery的。不错。可惜没文档,难直接重用。
我拿来用了,并且做了些修改,变得更实用,而且也可以重复使用。等做完之后,贴个修改的版本上来。
就是不知道能不能作为一个独立的控件来用呢,可不可以一个页面上面显示多个表格呢,这个我觉得还是挺重要的问题
[quote="liuyxit"][quote="gp03d]
怀疑这段代码的效率
一段简化的startsWith
事实上我只是看到LZ的ignoreSHIFT方法上注明准备用正则,我就随手写了一个。
呵呵,startsWith的改写是我顺手用正则表达式改了一下。
至于效率你测试了你的比我的快了吗?
当然,放到String.prototype是一个好的方法![/quote]
前几天我整理公司js的时候,测试过的~
用一个1W次的循环测试indexOf与RegExp的效率,发现indexOf能比RegExp方式节省近一半的时间。
不知道是否还有其他更加可靠的办法,如果有请告诉我:)
怀疑这段代码的效率
一段简化的startsWith
String.prototype.startsWith = function(pf) {
pf = typeof(pf) != "string" ? "" + pf : pf;
return this.indexOf(pf) == 0;
}
[/quote]
事实上我只是看到LZ的ignoreSHIFT方法上注明准备用正则,我就随手写了一个。
呵呵,startsWith的改写是我顺手用正则表达式改了一下。
至于效率你测试了你的比我的快了吗?
当然,放到String.prototype是一个好的方法![/quote]
前几天我整理公司js的时候,测试过的~
用一个1W次的循环测试indexOf与RegExp的效率,发现indexOf能比RegExp方式节省近一半的时间。
不知道是否还有其他更加可靠的办法,如果有请告诉我:)
[quote="gp03d]
怀疑这段代码的效率
一段简化的startsWith
事实上我只是看到LZ的ignoreSHIFT方法上注明准备用正则,我就随手写了一个。
呵呵,startsWith的改写是我顺手用正则表达式改了一下。
至于效率你测试了你的比我的快了吗?
当然,放到String.prototype是一个好的方法!
怀疑这段代码的效率
一段简化的startsWith
String.prototype.startsWith = function(pf) {
pf = typeof(pf) != "string" ? "" + pf : pf;
return this.indexOf(pf) == 0;
}
[/quote]
事实上我只是看到LZ的ignoreSHIFT方法上注明准备用正则,我就随手写了一个。
呵呵,startsWith的改写是我顺手用正则表达式改了一下。
至于效率你测试了你的比我的快了吗?
当然,放到String.prototype是一个好的方法!
看看这个:
http://makoomba.altervista.org/grid/
基于jquery的。不错。可惜没文档,难直接重用。
我拿来用了,并且做了些修改,变得更实用,而且也可以重复使用。等做完之后,贴个修改的版本上来。
http://makoomba.altervista.org/grid/
基于jquery的。不错。可惜没文档,难直接重用。
我拿来用了,并且做了些修改,变得更实用,而且也可以重复使用。等做完之后,贴个修改的版本上来。
function startsWith(str,start,iCase,iShift){
if (isValid(iShift) && iShift)
{
str=ignoreSHIFT(str);
start=ignoreSHIFT(start);
}
var flags ="";
if (isValid(iCase) && iCase)
{
flags = "i";
}
var reg = new RegExp("^"+start+".*",flags);
return reg.test(str);
}
function ignoreSHIFT(str){
var mapping={
"!" : "1",
"@" : "2",
"#" : "3",
"\\$" : "4",
"%" : "5",
"\\^" : "6",
"&" : "7",
"\\*" : "8",
"\\(" : "9",
"\\)" : "0",
"~" : "`",
"_" : "-",
"\\+" : "=",
"\\{" : "[",
"}" : "]",
":" : ";",
">" : ".",
"<" : ",",
"\\?" : "/",
"\\\"" : "'",
"\\|" : "\\"
};
var reg = new RegExp("","");
for (var k in mapping){
reg.compile(k,"g");
str = str.replace(reg,mapping[k]);
}
return str;
/* 考虑用正则表达式 */
/*
var newStr="";
for (var i=0;i<str.length ;i++ ){
var c=str.charAt(i);
for (var k in mapping){
if (c==k){
c=mapping[k];
break;
}
}
newStr+=c;
}
return newStr;
*/
}
alert(ignoreSHIFT("~!@#$%^&*()_+|{}:\"<>?"));
怀疑这段代码的效率
一段简化的startsWith
String.prototype.startsWith = function(pf) {
pf = typeof(pf) != "string" ? "" + pf : pf;
return this.indexOf(pf) == 0;
}
呵呵,怎跟我计划写的东东一个方向的。
支持一下:
上述代码没经长细测试,所以如果有bug实属正常:)。
支持一下:
function startsWith(str,start,iCase,iShift){
if (isValid(iShift) && iShift)
{
str=ignoreSHIFT(str);
start=ignoreSHIFT(start);
}
var flags ="";
if (isValid(iCase) && iCase)
{
flags = "i";
}
var reg = new RegExp("^"+start+".*",flags);
return reg.test(str);
}
function ignoreSHIFT(str){
var mapping={
"!" : "1",
"@" : "2",
"#" : "3",
"\\$" : "4",
"%" : "5",
"\\^" : "6",
"&" : "7",
"\\*" : "8",
"\\(" : "9",
"\\)" : "0",
"~" : "`",
"_" : "-",
"\\+" : "=",
"\\{" : "[",
"}" : "]",
":" : ";",
">" : ".",
"<" : ",",
"\\?" : "/",
"\\\"" : "'",
"\\|" : "\\"
};
var reg = new RegExp("","");
for (var k in mapping){
reg.compile(k,"g");
str = str.replace(reg,mapping[k]);
}
return str;
/* 考虑用正则表达式 */
/*
var newStr="";
for (var i=0;i<str.length ;i++ ){
var c=str.charAt(i);
for (var k in mapping){
if (c==k){
c=mapping[k];
break;
}
}
newStr+=c;
}
return newStr;
*/
}
alert(ignoreSHIFT("~!@#$%^&*()_+|{}:\"<>?"));
上述代码没经长细测试,所以如果有bug实属正常:)。
发表评论
该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子
- 浏览: 835825 次
- 性别:

- 来自: 小胖儿的大城

- 详细资料
搜索本博客
我的相册
闹闹的留言
共 78 张
共 78 张
链接
最新评论
-
JE要是能够加上这样一个功 ...
JavaEye的博客毕竟是一个技术博客,相册是非常次要的功能。事实上我自己私人的 ...
-- by robbin -
JE要是能够加上这样一个功 ...
使用picasa之类的客户端管理照片,上传照片超级方便,打包成zip纯属多此一举 ...
-- by crofton -
[发布]GT-Grid 1.18版 & ...
column的 sortable : false
-- by fins -
JE要是能够加上这样一个功 ...
Quake Wang 写道 很好的建议,但是用zip打包上传有安全隐患: 服务器 ...
-- by fins -
[发布]GT-Grid 1.18版 & ...
我不想用排序功能,怎样去掉...?谢谢!
-- by zuiwoxing






评论排行榜