为何Ext 中的panel中的grid不显示呢?当点击好几次的时候才出现,而且还是重复的呢?

binglingxiaolingling 2011-09-06 12:59:50
第一次点击一个按钮“优化”调用下面的方法,
var widgetarr=new Array("weblist","webrsslist","newslist","bloglist","booklist","piclist","videolist","relatedlist","wikilist","saylist","historylist","bbslist","tiebalist","wikiknowledgelist","minibloglist","rsslist");
var wiget_typeid=0;
var wiget_kid=0;
var wiget_keyword='';
var wiget_cid=0;

var seoPanel=function(id,keyword,cid){
wiget_kid=id;
wiget_keyword=keyword;
wiget_cid=cid;
//alert(wiget_cid);
//record,数据记录,用在store中
//通过Ext.data.Record.create创建
//创建的数据形式为{name:'id',type:'text'}
//与jsonStore下data中存储的数组形式对应
var widgetRecord=Ext.data.Record.create([
{name:'id'},{name:'wtname'},{name:'tid'},{name:'author'},{name:'mininfo'},{name:'maxinfo'},{name:'mininterval'},
{name:'create_time'},{name:'update_time'},{name:'typeid'},{name:'ctablenum'},{name:'memcachesavenum'},{name:'roleid'}
]);
// widgetstore
var widgetStore=new Ext.data.Store({
id:'widgetstore',
url:urlbase+'searchsource/searchsourceinterface/id:'+id+'/keyword:'+keyword+'/cid:'+cid,
reader:new Ext.data.JsonReader({
url:urlbase+'searchsource/searchsourceinterface/id:'+id+'/keyword:'+keyword+'/cid:'+cid,//默认的数据源地址,继承时需要提供
root: "rows",
// totalProperty:"totalCount",
},widgetRecord),
remoteSort:true,
});
widgetStore.load({callback :function(r,options,success){
//var ctablenum=r[0].get('ctablenum');

//weblistPanel=weblistPanel(id,cid,1,ctablenum,keyword);
//webrsslistPanel=webrsslistPanel(id,cid,2,ctablenum,keyword);
// newslistPanel=newslistPanel(id,cid,3,ctablenum,keyword);
// bloglistPanel=bloglistPanel(id,cid,4,ctablenum,keyword);
// booklistPanel=booklistPanel(id,cid,5,ctablenum,keyword);
// piclistPanel=piclistPanel(id,cid,6,ctablenum,keyword);

//seoPanel1.add(weblistPanel);
//seoPanel1.add(webrsslistPanel);
// seoPanel1.add(newslistPanel);
// seoPanel1.add(bloglistPanel);
// seoPanel1.add(booklistPanel);
// seoPanel1.add(piclistPanel);

/* */
//seoPanel1.add({title:'11',html:'sssss'});
for(var i=0;i<6;i++)
{
//alert(r[i].get('id'));
var typeid=r[i].get('typeid');
var cid=r[i].get('cid');
var wigetId=r[i].get('id');
var ctablenum=r[i].get('ctablenum');
var wtname=r[i].get('wtname');
var panel=getPanelName(wigetId,id,cid,typeid,ctablenum,wtname,keyword);

if(i==0)
{

//alert("-------------");
weblistPanel=weblistPanel_bak(id,cid,typeid,ctablenum,keyword,panel);
//alert(weblistPanel.id);
//panel.add(weblistPanel);
//panel.add({tile:'11',html:'sssss'});
}

//panel.add({title:'11',html:'sssss'});
//alert(i);
//alert(panel.id);
seoPanel1.add(panel);
seoPanel1.doLayout();


}

}

});


function getPanelName(id,kid,cid,typeid,ctablenum,wtname,keyword)
{
/*
var item;
if(id==1)
{
item=[{title:'1111',html:'2222222'}];
}
*/
var seoPanel3=new Ext.Panel({
id:"w_widgetPanel"+id,
// activeItem:1,
title:wtname,
region : 'center',
autoHeight:true,
margins : '0 5 5 0',
//resizeTabs : true,
minTabWidth : 50,
tabWidth : 85,
enableTabScroll : true,
closable:true,
layout:'fit',
//调用其他微件加载事件
param1:kid,
param2:cid,
param3:typeid,
param4:ctablenum,
param5:keyword,

// listeners: {activate: handleActivate},
listeners: {activate: handleActivate},

//items:[{title:'1111',html:'2222222'}]
// items:item



});
return seoPanel3;
}
function handleActivate(tab){
//alert(tab.param1+tab.id+ ' was activated.');
var id=tab.param1;
var cid=tab.param2;
var typeid=tab.param3;
var ctablenum=tab.param4;
var keyword=tab.param5;
// alert(id);
//gei 全局的typeid,kid,keyword,cid赋值
wiget_typeid=typeid;
//tab
//tab.removeAll();
panel=weblistPanel_bak(id,cid,typeid,ctablenum,keyword,tab);
tab.doLayout();
//seoPanel1.add(panel);
//seoPanel1.doLayout();

}

var seoPanel1=new Ext.TabPanel({
id:"widgetPanel",
title:"关键词优化",
region : 'center',
autoHeight:true,
margins : '0 5 5 0',
//resizeTabs : true,
//minTabWidth : 50,
tabWidth : 85,
enableTabScroll : true,
activeTab :0,
closable:true,
layoutOnTabChange:true,
deferredRender :false





});

var panel = new Ext.Panel({
title:'关键词优化',
region:'center',
height:500,
autoScroll:true,
closable:true,
tbar:new Ext.Toolbar([
{xtype:'hidden',name:'typeid'},
'->',
{
text:'审批模式',
iconCls:'shenpiIconCss',
handler:function(){
alert(wiget_typeid+"----"+wiget_keyword+"----"+wiget_kid+'---'+wiget_cid);
//var panel=Ext.getCmp('')
}

},'-',
{
text:'参数模式',
iconCls:'canshuIconCss',
},'-',
{
text:'预览',
iconCls:'bqylIconCss',
},'-',
{
text:'提交',
iconCls:'bqtjIconCss',
},'-',
{
text:'保存',
iconCls:'bqbcIconCss',
},'-',
{
text:'上一词',
iconCls:'shangyiciIconCss',
},'-',
{
text:'下一词',
iconCls:'xiayiciIconCss',
}
]),

items:[seoPanel1]
});
// weblistPanel=weblistPanel();
// seoPanel1.add(weblistPanel);

// return seoPanel1;
return panel;
}



...全文
224 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
 initComponent : function(){


this.sm = new Ext.grid.CheckboxSelectionModel();
this.cm = new Ext.grid.ColumnModel([
//new Ext.grid.RowNumberer(),//获得行号
this.sm,
{header: "标题", width: 300, dataIndex:"title",align:'center'},
{
header: "创建时间",
width: 130,
dataIndex:"create_time",
align:'center',
renderer:function(value){
var time=new Date(value*1000);
return time.format("Y-m-d H:i");
}
},
{header: "审批时间",width: 130, dataIndex:"update_time",align:'center'},
{
header: "状态",
width: 80,
dataIndex:"isnew",
align:'center',
renderer:function(value,meta,record){
var isjing=record.get('isjing');
var isnew=record.get('isnew');
var isdig=record.get('isdig');
var dingtime=record.get('dingtime');
var jingtime=record.get('jingtime');
var str='';

if(isdig==1){
str=dingtime;
}else if(isjing==1)
{
str=jingtime;
}
return str;
}
},
new Ext.grid.RowNumberer({
header:'行号',
width:40,
aligh:'center'
}),//获得行号
{
header:"操作",
width:250,
// dataIndex:'roleid',
renderer: function (value, meta, record) {
//在这里定义了4个操作,分别赋予不同的css class以便区分
var formatStr='';
formatStr="<a href='javascript:void({0});' onclick='javscript:return false;' class='alarm_check'>修改</a> | <a href='javascript:void({1});' onclick='javscript:return false;' class='alarm_remove'>删除</a> ";
formatStr+="| <a href='javascript:void({0});' onclick='javscript:return false;' class='alarm_jing'>加精</a> | <a href='javascript:void({1});' onclick='javscript:return false;' class='alarm_ding'>置顶</a> ";
formatStr+="| <a href='javascript:void({0});' onclick='javscript:return false;' class='alarm_up'>上移</a> | <a href='javascript:void({1});' onclick='javscript:return false;' class='alarm_down'>下移</a> ";

var resultStr = String.format(formatStr, record.get('id'), record.get('id'), record.get('id'));
return "<div class='controlBtn'>" + resultStr + "</div>";
}.createDelegate(this),

align:'center'
}
]);


//record,数据记录,用在store中
//通过Ext.data.Record.create创建
//创建的数据形式为{name:'id',type:'text'}
//与jsonStore下data中存储的数组形式对应
this.record=recordname;
this.store=storename;

panelname.superclass.initComponent.call(this); //调用基类的方法
}
});

panelname1=new panelname();
// panelname=new Ext.Panel({title:'title'+i});

panelObj.add(panelname1);
}

});




return panelObj;
}



请问怎么解决呢?
  • 打赏
  • 举报
回复
显示出来几个panel
但是在此调用panel中的数据就是不显示,不知道代码哪里错了????
weblistPanel_bak=function(id,cid,typeid,ctablenum,keyword,panelObj){	
var record=new Ext.data.Record.create([
{name:'md5'}
]);
var store=new Ext.data.Store({
id:'webliststore',
url:urlbase+'searchsource/getweblistmd5ext/id:'+id+'/typeid:'+typeid,
reader:new Ext.data.JsonReader({
url:urlbase+'searchsource/getweblistmd5ext/id:'+id+'/typeid:'+typeid,//默认的数据源地址,继承时需要提供
root: "rows",
totalProperty:"totalCount",
},record),
remoteSort:true,
});

store.load({callback :function(r,options,success){
var length=r.length;
//alert(r.length);
var i = 0;
var md5=r[i].get('md5');
var recordname='record'+i;
var storename='store'+i;
var panelname='panel'+i;
var smname='sm'+i;

smname = new Ext.grid.CheckboxSelectionModel();

recordname=new Ext.data.Record.create([
{name:'id'},{name:'title'},{name:'url'},{name:'description'},{name:'create_time'},{name:'update_time'},{name:'md5'},
{name:'isnew'},{name:'isdig'},{name:'isjing'},{name:'dingtime'},{name:'jingtime'},{name:'displayorder'},{name:'kid'},{name:'tablename'}
]);
storename=new Ext.data.Store({
id:'webliststore',
url:urlbase+'searchsource/getweblistext/id:'+id+'/cid:'+cid+'/typeid:'+typeid+'/ctablenum:'+ctablenum+'/keyword:'+keyword+'/md5:'+md5,
reader:new Ext.data.JsonReader({
url:urlbase+'searchsource/getweblistext/id:'+id+'/cid:'+cid+'/typeid:'+typeid+'/ctablenum:'+ctablenum+'/keyword:'+keyword+'/md5:'+md5,//默认的数据源地址,继承时需要提供
root: "rows",
totalProperty:"totalCount",
},recordname),
//remoteSort:true,
});
storename.load();
//alert(4545);return;

panelname=Ext.extend(Ext.widget.CrudPanel,{
id:'weblistgr'+md5,
title:"<font size=3 color='blue'>正在优化"+ keyword +"搜索结果</font>",
autoHeight:true,
autoScroll:true,
collapsible:true,

//创建窗口
createWin:function()
{
return this.initWin(330,240,"加精设置");
},
createForm:function(name){
var form = new Ext.form.FormPanel({
frame:true,
labelWidth:70,
labelSeparator:':',
labelAlign:'right',
layout:'form',
items:[

{
layout:'column',
items:[
{
layout: 'form',
items: [new Ext.form.Radio({fieldLabel: '加精状态',boxLabel:'加精', name:'type',checked:true})]
},
{items: [new Ext.form.Radio({boxLabel:'不加精', name:'type'})]}
]

},
{
layout:'column',
items:[
{
layout: 'form',
items: [new Ext.form.Radio({fieldLabel: '加精时限',boxLabel:'不限制',inputvalue:1, name:'jingtime',checked:true})]
}

]

},{
layout:'form',
items: [
{
layout: 'form',

items:[
{
layout:'column',
items:[
{
layout: 'form',
items: [new Ext.form.Radio({boxLabel:'1天',inputvalue:2, name:'jingtime'})]
},
{items: [new Ext.form.Radio({boxLabel:'3天',inputvalue:3, name:'jingtime'})]},
{items: [new Ext.form.Radio({boxLabel:'1周',inputvalue:4, name:'jingtime'})]},
{items: [new Ext.form.Radio({boxLabel:'1个月',inputvalue:5, name:'jingtime'})]},
{items: [new Ext.form.Radio({boxLabel:'3个月',inputvalue:6, name:'jingtime'})]},
]

}
]
}
// new Ext.form.Radio({fieldLabel: '加精时限',boxLabel:'不限制', name:'jingtime',checked:true})
],

},{
layout:'form',
items: [
{
layout: 'form',
items:[
{
layout:'column',
items:[
{
layout: 'form',
items: [new Ext.form.Radio({boxLabel:'自定义', name:'jingtime'})]
},
{
xtype:'textfield',
width:80,
id:'jingnum',
name:'jingnum',

},
{
xtype:'combo',
width:80,
id:'jingunit',
name:'jingunit',

textAlign:'center',
hiddenName:'value',

triggerAction:'all',//单击触发按钮显示全部数据
store:new Ext.data.SimpleStore({
fields:['event','value'],
data:[['小时','1'],['天','2'],['月','3']]
}),
displayField:'event',//定义显示的字段
valueField:'value',//定义值字段
mode:'local',//本地模式
forceSelection:true,//要求输入值必须在列表中存在
resizable:false,//是否允许改变下拉框大小
typeAhead:true,//允许自动选择匹配的剩余部分文本
value:'1',//默认选择的值
handleHeight:10,//下拉列表中拖动手柄的高度
},
]

}
]
}
// new Ext.form.Radio({fieldLabel: '加精时限',boxLabel:'不限制', name:'jingtime',checked:true})
],

}
]
});
return form;
},
ExtAspNet v2.2.1 ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail.com 发布历史: +2010-03-28 v2.2.1 +为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel的边框ShowBorder="false"。 +集成Extjs最新版本v3.1.1。 -增加一个新的Theme - Access。 -修正了Firefox下Zoom In/Out时页面消失的BUG。 -删除Panel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。 +2010-01-31 v2.2.0 -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。 -增加示例tabstrip/tabstrip_addtab.aspx。 -重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal="false")(feedback:zqmars)。 -Window控件更新。 -关闭按钮默认直接关闭,不会弹出确认对话框。 -GetConfirmFormModifiedHideReference的函数的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。 -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -WindowPosition默认居,而不是黄金分割位置。 +Button, Window等控件弹出位置属性的变化。 -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -> Target="Self", Target="_parent" -> Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。 -Confirm.GetShowReference的最后一个参数target变为枚举类型。 -Alert.GetShowReference的showInParent参数也变为Target枚举类型。 -MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。 +2010-01-06 v2.1.9 -集成Extjs最新版本v3.1.0。 -修正灰色皮肤的CSS问题。 -修正Grid的列名不能包含文字符的BUG(feedback:davidwen)。 -为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。 -修正了在Grid的PageIndexChange事件不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。 -Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle="float:left;"属性。 -修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。 -为TriggerBox和TwinTriggerBox增加EnableEdit属性。 -使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。 -使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。 -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其的Close全部改为Hide。 -增加TabStripTab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocumentIcon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。 -修正了IE下Grid的一个JS问题(feedback:lqm4108)。 -修正Alert消息引号未编码导致的JS错误(feedback:sun1299shine)。 +集成extjs3.0.3。 -修正弹出对话框的宽度计算错误(会保持最小的状态)。 -增加新的皮肤Gray。 -为示例工程添加改变语言和皮肤的下拉列表。 -为PageContext增加静态函数Refresh,在切换语言和皮肤时使用。 +2009-12-01 v2.1.7 -增加示例(iframe/parent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。 -修正一些书写错误(feedback:bmck)。 -从Region控件删除SplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。 -BorderPanel更名为RegionPanel。 -DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。 -增加国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。 +2009-11-26 v2.1.6 +修正动态创建Grid列的BUG(feedback:gxpan)。 -增加示例(data/grid_dynamic_columns.aspx)。 -修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。 -增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。 -为容器控件(比如Panel,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。 -重新设计模拟树的下拉列表的实现,避免选某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和FindControl一致命名。 -删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。 -删除ExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。 -增加示例(data/tree_select_run.aspx),如何选当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet的一个命名约定。 -同时更名的还有GridColumn的ColumnId->ColumnID,GetColumnId->GetColumnID。 -Grid1.Columns.FindColumnById函数被Grid1.FindColumn所替代。 -为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。 -为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。 -增加示例(other/custom_postback.aspx)(feedback:thebox)。 -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正Window的关闭按钮提示信息一直是文的BUG(feedback:thebox)。 -部分ExtAspNet控件的设计时支持(会在后续版本逐步完善)。 -v0.2beta2版本关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event PostBack->EnablePostBack)。 -为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。 +为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,用于指定验证失败时提示信息。 -为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。 +为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。 -增加示例:form/form_validate.aspx +2009-10-19 v2.1.3 +增加支持在AJAX时改变的控件属性列表(/ajax.aspx)。 -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程会反映到页面,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。 -在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。 -更新/basic/login.aspx示例,使用验证图片(feedback:kedee)。 -为Grid增加AutoPostBack属性和RowClick事件,示例在/data/grid_autopostback.aspx(feedback:chenguizhu2006)。 -为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。 -GridTemplateField生成到页面控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。 +2009-09-27 v2.1.2 -为Tree控件增加GetExpandAllNodesReference和GetCollapseAllNodesReference两个函数。 -修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。 -增加pt_BR语言,由Ujvari提供。 +为所有Panel(包括Grid,Tree,Form等)增加枚举类型Icon,其包含1700多个小图标。 -如果Panel具有IconUrl属性,则IconUrl优先于Icon。 -所有Icon的列表在icon.aspx。 -为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。 +2009-09-15 v2.1.1 -修正不能动态修改AccordionPane属性Items的BUG。 +为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。 -如果需要在父页面弹出确认对话框,需要设置ConfirmTarget="_parent"(类似Window控件的Target="_parent")。 +为ExtAspNet.Alert.Show增加点击确定的JavaScript回调函数。 -一个典型应用,在Window控件打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference()); +TreeNode的前面的多选框可以自动回发了。 -为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://extasp.net/data/tree_run.aspx -Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选任何一项时在父页面弹出对话框的JS代码。 -修正IE7下不能以下划线作为CSS类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pressed属性值能够正确的反映客户端的变化。 -优化Tree控件的AJAX实现。 +为页面的Form添加autocomplete="off"属性。 -参考http://www.cnblogs.com/sanshi/archive/2009/09/04/1560146.html#1635830 +添加对extjs3.0所有语言的支持。 -ExtAspNet扩展的多语言包在js\languages\extaspnet目录下,目前只有en,zh_CN,zh_TW三种实现 -你可以向其添加自己的语言版本,并执行js\languages下的pack.bat打包,最后编译工程。 +2009-09-01 v2.0.9 -为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。 +在aspx页面必须显示的声明控件的集合属性(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。 -这将会影响所有的aspx页面,所以要特别关注。 -重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX使用的名称). +所有的面板默认有两个集合属性(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 +2009-08-29 v2.0.8 -ExtAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config修改。 -将所有的示例转化为英语版本。 -修正Tree控件的一个BUG(定义Mappings属性时)。 +PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。 -这个BUG导致Asp.net compatibility的示例无法完成,现在已经修正。 +去除PageManager方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。 -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility的示例。 +2009-08-25 v2.0.7 -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止重复提交 - 默认为true。 -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid每个单元格的值了。 -增加示例-如何将Grid控件导出为Excel(data\grid_excel_run.aspx)(feedback:503684912)。 -如果TreeNode的属性Enabled="false",则此项变灰并且不会被选(feedback:your568)。 -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~/开头)的BUG。 -增加Accordion和Tree配合使用的示例(other\accordion_tree_run.aspx)。 -修正Panel图标不能显示的BUG(CSSclass名不能有$字符)。 +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID属性来代替。 -这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。 -简单方便,示例可以参考 default.aspx 或者 other\accordion_tree_run.aspx。 +2009-08-14 v2.0.6 -动态生成菜单实例(other\menu_dynamic_run.aspx和other\menu_dynamic2_run.aspx)(feedback:shguo)。 -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动生成,减少ViewState占用。 +2009-08-09 v2.0 beta5 +ExtAspNet和Asp.net的提交按钮兼容问题(feedback:千帆)。 -在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果Asp.net的按钮AJAX提交,必须设置UseSubmitBehavior="false" --也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。 +PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load设置需要在AJAX需要更新的Asp.net控件了。 -在Page_Load设置了哪些需要在AJAX更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。 -示例在aspnet\fckeditor_run.aspx和aspnet\aspnet_run.aspx。 -FCKEditor和上传控件兼容。示例在aspnet\fileupload_run.aspx。 -修正ToolbarText的文本在AJAX下更新的BUG。 -Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。 -更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。 +2009-08-02 v2.0 beta4 +和Asp.Net的Forms Authentication兼容[feedback:mgzhenhong]。 -采用和Asp.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。 -现在支持Response.Redirect,你可以选择Response.Redirect或者ExtAspNet.PageContext.Redirect重定向页面,两者效果一样。 -支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。 -Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。 -修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。 -修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。 -增加Menu和Accordion的示例。 -修正Window控件的IconUrl有时不显示(Target="_parent")的BUG[feedback:xmq&mgzhenhong]。 +2009-07-22 v2.0 beta3 -兼容FCKEditor。 -在IE8.0,Firefox3.5下测试通过。以后ExtAspNet将不会对IE6.0提供支持。 +2009-07-13 v2.0 beta2 -集成extjs最新版本v3.0。 +兼容IE6.0-7.0-8.0。 -这应该是Extjs3.0的一个BUG,在IE6.0-7.0下面设置Ext.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。 -目前先禁用IE6.0-7.0的QuickTips。 -优化底层JavaScript。 +2009-07-05 v2.0 beta1 -更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。 -使用YUI Compressor压缩JavaScript和CSS文件。 -Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。 -ExtAspNet自身的CSS会紧挨着页面标签引入,这样在<head><em>中</em>自定义的样式可以覆盖<em>Ext</em>AspNet缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法解决,因为无法改变<em>Ext</em>.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。 -因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选<em>中</em>第一项。 -重新绑定模拟树的下拉列表后,选<em>中</em>项的前面有图片的HTML标签的BUG。 -更新自定义JavaScript组件<em>Ext</em>.ux.SimplePagingToolbar。 -更新示例工程。 +2009-03-25 v1.3.1 -Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed] -Window<em>中</em>的EnableIFrame==false,则<em>点击</em>关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要<em>点击</em>按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet/fileupload.aspx)[fixed] -HtmlEditor<em>显示</em>隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(<em>Ext</em>-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时<em>出现</em>JS错误(http://<em>ext</em>js.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面<em>中</em>存在ASP.NET控件(T<em>ext</em>Box),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed] -页面上放置<em>Ext</em>AspNet-Button和ASP.NET-Button,则<em>点击</em><em>Ext</em>AspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和<em>Ext</em>js2.2.1<em>中</em><em>Ext</em>.Ajax.serializeForm的实现有关。[fixed] -<em>Ext</em>AspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在<em>Ext</em>AspNet工程<em>中</em>使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在<em>Ext</em>AspNet控件和ASP.NET标准控件和平共处了。[fixed] -如果一个ASP.NET按钮控件要使用<em>Ext</em>AspNet的原生AJAX,只需要设置属性 UseSubmitBehavior="false" 即可。 -如果要在一次<em>Ext</em>AspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet/aspnet.aspx)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本<em>中</em>逐步完善。这个版本完成测试框架,采用<em>Ext</em>js<em>中</em>JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageCont<em>ext</em>静态类<em>中</em>的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面<em>中</em>表单修改的确认提示框的脚本”。 ---[updated]删除PageCont<em>ext</em><em>中</em>的GetConfirmFormModifiedReference,使用CurrentActiveWindow<em>中</em>的GetConfirmFormModifiedCloseReference/GetConfirmFormModifiedCloseRefreshReference/GetConfirmFormModifiedClosePostBackReference三个方法代替。 -不会修改弹出页面的URL(<em>Ext</em>-Window<em>中</em>的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageCont<em>ext</em>.GetFormModifiedConfirmReference获取此方法的客户端脚本。 ---注意:以前的项目需要在所有的ASPX页面<em>中</em>查找RegisterPageStateChangedScript属性,并删除,否则会运行错误! -A页面有<em>Ext</em>-Window控件弹出B页面,B页面有<em>Ext</em>-Window控件弹出C页面,B页面的<em>Ext</em>-Window控件设置Target='_parent',则弹出的<em>Ext</em>-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面<em>中</em>表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出<em>Ext</em>-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)<em>中</em>IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时<em>点击</em>右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的<em>Ext</em>-Window最终都渲染到最外层的页面,为了保证这些IFrame的name不同,IFrameName使用的是GUID,内部处理)。 -CurrentActiveWindow改名为ActiveWindow。 -[特别注意]GetWriteBackValueReference(string controlClientIds, string value, params string[] values)函数现在的定义是GetWriteBackValueReference(params string[] values) ---所有调用GetWriteBackValueReference的地方,需要删除第一个参数(一般是ActiveWindow.GetLoadStateReference())。 +2009-02-23 v1.2 beta8 -Content<em>Panel</em><em>中</em>内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed] -DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed] -DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed] -升级底层<em>Ext</em>JS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed] -页面加载过程<em>中</em>的时间信息保存在Javascript变量window.box.timeInfo<em>中</em>。[added] +增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed] +2008-10-28 v1.2 beta7 -DropDownList没有选<em>中</em>任何一项,回发时报错[feedback:huihuang]。[fixed] -Window<em>显示</em>位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed] +PageCont<em>ext</em>优化。[fixed] -去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。 -去除RegisterStartupScript的重载函数,只保留最简单的PageCont<em>ext</em>.RegisterStartupScript(string script)函数。 -Resirect增加重载函数Redirect(string url, string target),其<em>中</em>target可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。 -Image控件增加ImageWidth/ImageHeight/ImageCssStyle/ImageCssClass/ImageAlt属性[feedback:jqpeng]。[fixed] -发布包<em>中</em>增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -Content<em>Panel</em>的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时<em>显示</em>不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认<em>显示</em>,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,解决方案见http://pohee.com/it/http-compression-in-aspnet-20/。 +DropDownList优化。[fixed] -去除EnableFirstItem/FirstItemT<em>ext</em>/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.Insert(0, new <em>Ext</em>AspNet.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选<em>中</em>[feedback:jqpeng]。 -和Asp.net<em>中</em>的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = ""; -ListItemCollection增加重载函数Add(string t<em>ext</em>, string value),这样方便后台添加列表项。 -处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed] -注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS<em>中</em>的height不同,CSS<em>中</em>的height是指内容的高度,除去padding/border-width/margin)。[fixed] +为所有控件属性增加在VS<em>中</em>的智能提示。[fixed] -需要将<em>Ext</em>AspNet.XML和<em>Ext</em>AspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.USER_DEFINED -> RegexPattern.None -表单验证属性名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个属性可以拥有多个值的情况。[fixed] -属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)<em>中</em>通过js切换父页面<em>中</em>选<em>中</em>的菜单项(Accordion->AccordionLink)(示例在other/accordion_links_run.aspx,other/accordion_links_run_iframe_htm)[feedback:jima]。 +确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form/form_dynamic_run.aspx)。[fixed] +2008-10-15 v1.2 beta5 -验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed] +优化下拉列表。[fixed] -验证下拉列表时,应该取ListItem的Value属性进行验证,而不是T<em>ext</em>属性。 -DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyT<em>ext</em>属性。 -ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)<em>中</em>设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对Accordion<em>Panel</em>起作用(示例见other/accordion_run.aspx)。[fixed] -Accordion去除EnableHightlight属性,Accordion<em>Panel</em>增加EnableHightlight属性。 -影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个Accordion<em>Panel</em>增加EnableLargeHeader和EnableHightlight属性。 -Accordion<em>Panel</em>鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +Accordion<em>Panel</em>增加Links属性,可以绑定列表数据到Accordion<em>Panel</em>,呈现的是链接的列表(示例在other/accordion_links_run.aspx)。[fixed] -原来放置在Accordion<em>Panel</em><em>中</em>的容器,比如Content<em>Panel</em>需要在外层加上<Items>标签。 -适当增大Accordion<em>Panel</em><em>中</em>链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少ASPX<em>中</em>HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed] -<em>Panel</em>/Group<em>Panel</em>/Content<em>Panel</em>/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed] -向Form<em>中</em>动态添加控件的BUG,现在form/form_dynamic_run.aspx示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/Accordion<em>Panel</em>/Group<em>Panel</em>/<em>Panel</em>/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)属性和<em>Grid</em>的Rows属性(<em>Grid</em>RowCollection)。 -保留TabStrip的Tabs(TabCollection)属性。 -保留PageLayout/BorderLayout的Regions(RegionCollection)属性。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +<em>Grid</em>选<em>中</em>项(SelectedRowIndexArray)在ajax回发过程<em>中</em>存在BUG [feedback:xmzhu]。[fixed] -表现为对<em>Grid</em>进行多次删除添加操作后,SelectedRowIndexArray选<em>中</em>项<em>中</em>会存在当前不存在的行序号,导致服务器端遍历选<em>中</em>项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例<em>中</em>表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/Button/HyperLink/Label/Image/LinkButton/T<em>ext</em>Box -TriggerBox/TwinTriggerBox/Window/T<em>ext</em>Area/HtmlEditor/DatePicker/NumberBox -CheckBox/RadioButton/RadioButtonList/DropDownList -<em>Grid</em> +2008-09-19 v1.2 beta1 -Image/LinkButton/HyperLink增加一些Ajax可更新属性。[fixed] +隐藏的方式由HideMode属性控制Visibility/Offsets/Display。[fixed] -修正Form/SimpleForm<em>中</em>隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。 -ToolbarT<em>ext</em>/ToolbarFill/ToolbarSeparator在ASPX<em>中</em>设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -Button去除MarginRight属性(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu属性,在网报<em>中</em>可以用自定义样式实现,而不应该写在控件<em>中</em>。[fixed] -网报:CssClass="toolbar-pagemenu" CssStyle="border:0px;",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(../images/pagemenu_toolbar_background.gif) repeat-x left top;}。 -Region去除默认的Layout=Fit,如果希望Region使用Fit/Anchor/Column/Row等布局的话,需要手工指定。[fixed] -ToolbarSeparator/ToolbarFill在Ajax更新Hidden属性的BUG。[fixed] +布局整理。[fixed] -新增Column/Absolute/Row三种布局,加上以前的Container/Fit/Anchor/Accordion/Border/Form六种布局,总共有9<em>中</em>布局可供使用。 -其<em>中</em>一些控件默认使用一种布局:SimpleForm(Form)/Form(Form)/<em>Panel</em>-Group<em>Panel</em>(Container)/Accordion(Accordion)/PageLayout(Border)/BorderLayout(Border)/TabStrip(Card),所有布局控件默认的布局是Container。 -经常用到的布局控件:SimpleForm/Form/Accordion/TabStrip/BorderLayout,经常用到的布局:Fit/Row/Anchor +2008-09-08 v1.1 beta7 -MenuButton/MenuHyperLink增加HideOnClick属性,如果一个菜单项的作用仅仅为了弹出下级菜单,<em>点击</em>没反应,则可以这样设置HideOnClick="false" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -MenuButton/MenuHyperLink/MenuSeparator/MenuT<em>ext</em>增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时<em>显示</em>隐藏菜单,请使用此属性而不是Visible属性)。[fixed] +大部分的<em>Ext</em>AspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以<em>显示</em>隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的<em>Ext</em>AspNet改造强烈依赖于此属性,这个版本发布后可以继续。 -网报<em>中</em>唯一没有用到<em>Ext</em>AspNetAjax的地方就是<em>显示</em>隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageCont<em>ext</em>.Redirect支持普通页面转向和<em>Ext</em>AspNetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(<em>Grid</em>,DropDownList,TabStrip)。 -解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) >= 0){ok}。 -DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed] -Button/MenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed] -Tree的Ajax支持(尚需优化)。[fixed] +2008-09-02 v1.1 beta5 -DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed] -模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataT<em>ext</em>Field/DataValueField/DataSimulateTreeLevelField/DataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed] -UserControlConnector导致的Ajax错误,去除Update<em>Panel</em>Connector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed] -不要使用Asp.net的控件HiddenField,而是使用<em>Ext</em>AspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要<em>显示</em>隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,RadioButtonList<em>中</em>项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab<em>中</em>如果有Content<em>Panel</em>,则在页面上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢页面的加载速度),现在已经解决这个问题。[fixed] -RadioButtonList去除EnableBackgroundColor/EnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先<em>显示</em>再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed] -Web.config<em>中</em>增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue/SelectedItem)。 -DropDownList增加Ajax可更新属性Enable/SelectedIndex(SelectedValue/SelectedItem)/DataSource。 -<em>Grid</em>增加Ajax可更新属性Columns(也就是说<em>Grid</em>列在回发时隐藏<em>显示</em>了一些,也能正确的Ajax)。 -ToolbarT<em>ext</em>增加Ajax可更新属性T<em>ext</em>。 +2008-08-31 v1.1 beta3 -TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageCont<em>ext</em>.Redirect(string url),使用Response.Redirect方法会出错。[fixed] +安全的Ajax设计。[fixed] -这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。 -基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。 -整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。 -网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed] +2008-08-29 v1.1 beta1 +Window控件是否弹出的状态在回发时维持。[fixed] -控件设计的一个原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。 +完全抛弃Asp.NetAjax,<em>Ext</em>AspNet控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager<em>中</em>有设置启用Ajax回发的属性-EnableAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的<em>点击</em>一个按钮弹出窗口,可以在Button的OnClick事件<em>中</em>设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前<em>Ext</em>AspNetAjax的限制。 -只对<em>Ext</em>AspNet控件起作用,对Asp.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible属性会有错误。 -Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -<em>Grid</em><em>中</em>的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选<em>中</em>的状态在回发后会得到保持。[fixed] -<em>Grid</em>选<em>中</em>行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化弹出窗口<em>中</em>IFrame的<em>显示</em>速度。[fixed] -在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。 -PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报<em>中</em>需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config<em>中</em>设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器<em>中</em>Cookie设置的值)(示例在default.aspx)。 -TreeNode增加属性SingleClickExpand,表示<em>点击</em>可切换节点的折叠展开状态。[fixed] +TabStrip<em>中</em>非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报<em>中</em>一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab<em>中</em>的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件<em>中</em>。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab<em>中</em>的Content<em>Panel</em>会占据页面空间,已修正)。[fixed] -全新的<em>Ext</em>AspNet.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个属性(EnableInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面<em>中</em>使用父页面的脚本和样式(示例在iframe/default.aspx和iframe/page3.aspx)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。 -RadioButtonList放在在BorderLayout<em>中</em><em>显示</em>不了的BUG [feedback:zgjiang2]。[fixed] +<em>ext</em>js的BUG,当页面<em>中</em>含有iframe时,<em>Ext</em>.onReady会被调用两次(IE6/IE7)(http://www.<em>ext</em>js.net/forum/showthread.php?t=43246)(示例在test.aspx)[fixed] -现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true; +需要先回发页面再弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。 -另一种做法(推荐):PageCont<em>ext</em>.RegisterStartupScript(Window99.GetShowReference("./simpleform.aspx"));。 +2008-08-15 v0.4 beta5 -<em>点击</em>关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.aspx。[fixed] +Radiobuttonlist<em>显示</em>有重影(示例在radio.aspx)。[fixed] -全新的样式。 -去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form<em>中</em>添加FormRow,并动态的向FormRow<em>中</em>添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会<em>重复</em>加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window<em>中</em>的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx) +2008-08-13 v0.4 beta4 -<em>点击</em>关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.aspx页面,iexplorer占内存68.368M。 -内存存在泄漏时,<em>点击</em>iframe/page3.aspx页面8次后iexplorer占118.792M内存。 -修正后,<em>点击</em>iframe/page3.aspx页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架<em>Ext</em>js升级为v2.2,<em>Grid</em>的渲染速度有很大提升。[fixed] -<em>Grid</em>的EnableDelayRender默认为true(如果没有设置<em>Grid</em>的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"解决)。[fixed] +页面正在加载的提示尽早的<em>显示</em>出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容<em>显示</em>出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的<em>显示</em>。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_<em>Ext</em>AspNet目录下的页面应该为./FE_ApplyEditor.aspx或~/Pages_<em>Ext</em>AspNet/FE_ApplyEditor.aspx。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面<em>显示</em>后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed] -Window<em>中</em>的保存并关闭按钮和Asp.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageCont<em>ext</em>.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed] -DropDownList增加SelectedT<em>ext</em>属性(去除了模拟树时通过SelectedItem.T<em>ext</em>的多余html字符)。[fixed] -为了加快渲染速度,去掉一些特效(比如<em>Panel</em>的折叠效果,<em>Grid</em>的拖动列效果等)[feedback:dcding]。[fixed] -将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed] +弹出窗口<em>中</em>,<em>点击</em>按钮回发然后<em>点击</em>关闭按钮,<em>出现</em>js错误 [feedback:xmzhu]。[fixed] -因为在页面的Page_Load<em>中</em>,if (!IsPostBack){PageCont<em>ext</em>.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。 -一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件<em>中</em>增加RegisterPageStateChangedScript(向页面注册监视页面<em>中</em>表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx/simpleform.aspx)。 +PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报<em>中</em>遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性<em>出现</em>)。[fixed] -T<em>ext</em>Field等表单字段增加Readonly属性。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过<em>点击</em>按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx/page2.aspx/simpleform.aspx) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)/page2.aspx(B)/simpleform.aspx(C)),其<em>中</em>A包含B页面,当你在B<em>中</em>打开包含有页面C的窗口时,窗口不是在B<em>中</em>打开,而是在A<em>中</em>打开,这样才能保证窗口覆盖整个页面,当你从C<em>中</em>返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面<em>中</em>创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,<em>Grid</em><em>中</em>弹出窗口。(default.aspx/page3.aspx/simpleform.aspx) +示例3,TriggerBox弹出窗口。(default.aspx/triggerbox.aspx/simpleform.aspx) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。 -示例4,弹出窗口<em>中</em>的弹出窗口。 -对整个Examples更新测试。[fixed] +2008-07-31 v0.3 beta12 -IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab<em>显示</em>为空的BUG。[fixed] -对TabStrip/<em>Panel</em>/Window<em>中</em>的IFrame重新设计,如果设置IFrameUrl="#"或者"about:blank",则不渲染iframe到页面节点,同时第二次打开Window<em>中</em>的IFrame不会有残影<em>出现</em>。[fixed] -如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed] -Tree控件,<em>点击</em>一个节点自动回发,则当前<em>点击</em>的那个节点的选<em>中</em>状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe<em>中</em>关闭按钮和window右上角关闭图标的调用方式)(示例在<em>grid</em>_iframe.aspx/simpleform.aspx)。[fixed] -内部实现上,<em>点击</em>“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageCont<em>ext</em>.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body<em>中</em>。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式<em>中</em>有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx/simpleform.aspx/simpleform2.aspx)[fixed] -增加PageManager控件(需要指定AutoSize<em>Panel</em>ID,即需要设置宽度和高度为整个页面的宽度和高度的<em>Panel</em>),HideScrollbar属性用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息<em>中</em>MessageTarget改名为FormMessageTarget,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed] -去掉DropDownList控件的T<em>ext</em>属性(强制性),可以通过设置SelectedValue来设置选<em>中</em>哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息<em>中</em>的换行符(转换为<br/>),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库<em>中</em>的数据绑定到Tree(示例在tree2_bind_database.aspx)。 -ajax加载树节点,放在Update<em>Panel</em><em>中</em>才有ajax的效果(示例在tree2_ajax.aspx)。 -更改TreeNode的ID为NodeId,否则两个树<em>中</em>不能有相同ID的TreeNode,这是不合理的。 -<em>Grid</em>的<em>Grid</em>Column的ID改名成ColumnId,否则同一个页面放置两个<em>Grid</em>,它们的<em>Grid</em>Column的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -<em>Grid</em>所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以<em>显示</em>ToolTip(示例在<em>grid</em>.aspx)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选<em>中</em>样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确解析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则<em>显示</em>的文字会换行,导致错位。[fixed] -虽然最后未能解决<div style="width: 60px; white-space: nowrap; overflow: hidden; border: solid 1px red;"><div style="width: 16px; height: 18px; float: left;">##</div>差旅交通费</div>在IE和Firefox下<em>显示</em>的不同效果。 -但是通过用<img src="##" />来代替<div style="background:url(##)" />,从而实现FF和IE下样式的统一。 -刚看到old9的解决方案:把“差旅交通费”改成“<span style="margin-right: -1000px;">差旅交通费</span>”,在IE下和FF下的都不换行,:-) -LinkButton增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.aspx)。[fixed] -可以在回发时维持树的状态(选<em>中</em>行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -<em>点击</em>树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +Content<em>Panel</em><em>中</em>放置<em>Ext</em>AspNet控件,则渲染时会<em>出现</em>各种问题,比如下拉列表<em>显示</em>样式出错,<em>Grid</em>没了滚动条等等。[fixed] -隐蔽性非常强,原来在Content<em>Panel</em><em>中</em>渲染<em>Ext</em>AspNet控件,如果容器的display='none',则会<em>出现</em>各种问题(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后<em>显示</em>容器。 -现在<em>Grid</em>只要<em>显示</em>的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过<em>Grid</em>容器就会<em>显示</em>滚动条。 +IE6下,在应用Asp.NetAjax后,Form<em>中</em>字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。 -最后发现IE6下应用Asp.NetAjax后不仅Form<em>中</em>列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数<em>中</em>,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面<em>中</em>所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed] -Accordion选<em>中</em>样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +<em>Grid</em>增加EnableDelayRender属性(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s<em>显示</em>出来)。[fixed] -因为延迟加载数据不会改变<em>Grid</em>的大小,所以对于非布局内或不设定高度宽度的<em>Grid</em>,需要设置"EnableDelayRender=false"。 -改变<em>Grid</em><em>中</em>静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在<em>点击</em>一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和T<em>ext</em>Box比较大小需要指定CompareType。 +如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx/ajax_editor.aspx)。[fixed] -这是由于ajax后执行的javascript<em>中</em>不能有return false语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在t<em>ext</em>box_blur.aspx) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认<em>显示</em>的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口<em>中</em>的弹出窗口的如果内容发生变化,则<em>点击</em>右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例<em>中</em>alert\alert_1.aspx和alert\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。 -<em>点击</em>提交按钮后变成灰色不可再次<em>点击</em>(示例在button_click_gray.aspx)[feedback:jima]。[fixed] +增加Menu、MenuT<em>ext</em>、MenuSeparator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed] -增加SplitButton控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(T<em>ext</em>Box,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个属性,示例在form_compare.aspx。 +TabStrip<em>中</em>放置IFrame会<em>出现</em>渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed] +表单字段Enable=false时<em>显示</em>颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disabled,设置不透明。 +2008-07-08 v0.3 beta3 -<em>Grid</em>没有数据,向后翻页按钮可以<em>点击</em>的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用T<em>ext</em>Box也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 EnableT<em>ext</em>Box = true,则不能将T<em>ext</em>回发(这是html的限制)。[fixed] -最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在t<em>ext</em>box2.aspx)。 -模拟树的下拉列表在失去焦点后<em>显示</em>的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed] -增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。 -LinkButton和<em>Grid</em>的LinkButtonField增加Enable属性(示例在hyperlink.aspx和<em>grid</em>.aspx)。[fixed] +2008-07-07 v0.3 beta2 +增加Update<em>Panel</em>Connector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed] -使用Update<em>Panel</em>Connector有一个要求:ContentTemplate下只能有一个子节点,比如box:<em>Panel</em>。 -示例在ajax3.aspx/content_page4.aspx。 -示例content_page3.aspx<em>中</em>,<em>点击</em>“Ajax查询”按钮和关闭弹出的窗口(<em>点击</em>右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为false。[fixed] -使用Group<em>Panel</em>的地方需要手工添加AutoHeight="true"属性。 +增加UserControlConnector,可以在其<em>中</em>放置用户控件(示例在page_usercontrol.aspx)。[fixed] -也可以在Content<em>Panel</em><em>中</em>放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed] +支持Asp.net ajax异步加载。[fixed] -有很大局限性,只能在Content<em>Panel</em><em>中</em>使用,示例在ajax1.aspx/content_ajax2.aspx<em>中</em>。 -对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.aspx/simpleform.aspx)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除CloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe<em>中</em>做法一致)。 +iframe<em>中</em>的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有问题。[fix pending] +排序时在标题栏<em>显示</em>排序箭头,可以排序的列标题光标为手形(示例在<em>grid</em>_sorting.aspx)。[fixed] -可以通过设置<em>Grid</em>1.CurrentSortColumnIndex = 0;来强制某列<em>显示</em>排序箭头。 -可以通过 <em>Grid</em>1.Columns[<em>Grid</em>1.CurrentSortColumnIndex].SortExpression 的方式取得当前<em>Grid</em>的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.aspx)。[fixed] -TabStrip的Tab<em>中</em>如果放置Content<em>Panel</em>,则内容渲染位置不正确。[fixed] -可以在Content<em>Panel</em><em>中</em>放置用户控件(示例在page_usercontrol.aspx)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed] -<em>Grid</em>的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面<em>中</em>任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx/simpleform.aspx)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页<em>中</em><em>Grid</em>的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -<em>Grid</em><em>中</em>的LinkButtonField设置ConfirmT<em>ext</em>会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +<em>Grid</em>完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了<em>grid</em>_checkboxfield.aspx示例)。 -<em>Grid</em><em>中</em>模拟树<em>显示</em>,<em>Grid</em>Column增加DataSimulateTreeLevelField属性(一个<em>Grid</em>只能有一个Column指定此属性),指定此列模拟树<em>显示</em>时的层次字段(0,1,2,...)(示例在<em>grid</em>_simulate_tree.aspx)。 -切换分页时清空选<em>中</em>的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在<em>grid</em>_prerowdatabound.aspx)。 -DropDownList模拟树的方式<em>显示</em>,增加DataSimulateTreeLevelField属性,使用方法和<em>Grid</em>的类似(示例在dropdownlist_simulate_tree.aspx)。 +2008-06-25 v0.2 beta9 +Window窗体<em>中</em>的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.aspx/simpleform.aspx)[fixed] -在simpleform.aspx<em>中</em>:<em>Panel</em>[BodyPadding=5](Toolbar,<em>Panel</em>[Height=450 Layout=Fit](SimpleForm[AutoScroll=true])),则外面窗口的高度=450 + 5*2 + 26 + 32,其<em>中</em>26是Toolbar的高度,32是窗口的标题栏和下边框的高度。 +关闭Iframe的LoadMask,所以需要Iframe页面添加PageLoading控件,这样效果统一。[fixed] +<em>Grid</em>完善。 -去除EnableClientPaging和EnableClientSort属性,客户端排序和客户端分页在ASP.NET应用<em>中</em>会有很多问题(主要是状态保持的问题)。 +EnableServerSort改名AllowSorting。(示例在<em>grid</em>_sorting.aspx) -使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数<em>中</em>重新绑定数据。 +增加AllowPaging属性。(示例在<em>grid</em>_paging.aspx) -使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数<em>中</em><em>Grid</em>1.PageIndex = e.NewPageIndex;OK。 +数据库分页支持。(示例在<em>grid</em>_database_paging.aspx) -使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数<em>中</em><em>Grid</em>1.PageIn</a></div><div data-report-view="{"mod":"popu_645","index":"2","dest":"https://download.csdn.net/download/wode2600/2726130","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAltJREFUWEdjZGBgYGhv/yD45//nEEYGBrX//xj4QWK0AoxMDB//MzDcYmHkXVNZKfCeEWz5v8/1DP8ZuGhlKVZzGRm+sTDxNjI2tz1OZfjHYEpXy2GWMTGcZmxpe9xN62DH5TlQdDA2tzyeNSC+h1o66gCyQyApUdRNSIhNGBSS7979ejtv/utd5EQl2Q7IypT0ExJiFoc44O/LadOfbxp1wPAOAWlpdr5Pn//8/Pzp70+QT3GlAX5+ZnYeHhb2p09/fiImRIhOhBYWvIo21ryWu/Z8PHDp4tdn2BxgoM8l4+IiYH/k6OdjJ058vk91B7g487swMDD8v3Hj+2VJSTYpfn5mEZAlHz/9ffPq5e+Xqqoc2iD+nr0f99DSAQQ9RhMHcHAwsYSGCtvKy7Gr4HPBo0c/b69c/fbwzx///hJ0KQMDA9FpAGaYizO/tpkZjwUTEyMTsgX//v3/d/LUl+N79368RozFMDUkOwCkUUODU8zHW9CFg4OJG8T/8ePf181b3u25efPHK1IsB6nF6gAjY25ZEWFWcNPs169/fw4c+HQD3WBBIRaOsBAhZ5D4qjXv9r5/9+cHuhoHBz4NNjYmFpD4m7e/P547+/UxuhqsDoiPE3WWlWVXgvju/5ee3qfLsfmMiZmBEST+7y/Df2zyJcXSkRwcjDwgucePf95buOj1Xqo6gFBwDw8H/P/P8O/nz//fCPkWmzw7OyMXIyMDOLeQHQXkWIxNz9BygJubgI6kBCu4tUMt8PzF75e7dn24QlQuoJalxJgzCDomA901G/DOKSieBrJ7DgCPdYFAskV/NwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://download.csdn.net/download/wode2600/2726130" data-report-click="{"mod":"popu_645","index":"2","dest":"https://download.csdn.net/download/wode2600/2726130","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="title" data-v-ca2d15ac><em>Ext</em>AspNet_v2.3.2_dll</a></div> <a target="_blank" href="https://download.csdn.net/download/wode2600/2726130" data-report-click="{"mod":"popu_645","index":"2","dest":"https://download.csdn.net/download/wode2600/2726130","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="desc" data-v-ca2d15ac><em>Ext</em>AspNet - <em>Ext</em>JS based ASP.NET Controls with Full AJAX Support <em>Ext</em>AspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有Update<em>Panel</em>,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:<em>Ext</em>AspNet基于一些开源的程序<em>Ext</em>JS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://<em>ext</em>asp.net/ 开源: http://<em>ext</em>aspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail.com 发布历史: +2010-09-29 v2.3.2 -不绑定任何数据到<em>Grid</em>时,确保页面不会出错。 -修正了<em>Grid</em>列属性DataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。 -修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。 -增加土耳其语言资料文件(feedback:abdullaharslan)。 -<em>Grid</em>的BoundField增加NullDisplayT<em>ext</em>属性,用于处理数据库<em>中</em>的null值,如果没有设置则默认为空字符串。 -修正DatePicker<em>中</em>的一个bug(31/01/2010将会返回NULL)使用DateFormatString来生成SelectedDate属性(feedback:OktaEndy)。 -修正<em>ext</em>js最新版本(v3.2.2)<em>中</em>的一个bug,如果下拉列表<em>中</em>存在两个相同的T<em>ext</em>,则SelectedValue返回值永远是第一个T<em>ext</em>的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下<em>Grid</em>分页速度慢(feedback:youwei, StevenGuan, hazardvn, gavindou, ttjacky)。 -实际上IE7下所以的回发都慢,原因是客户端的Base64编码速度慢,已经使用encodeURIComponent来代替Base64编码。 -俄语翻译(feedback:vbelyaev)。 +2010-06-30 v2.3.1 -<em>Ext</em>AspNet控件将不在依赖ViewState,减少1/4左右的HTTP数据传输量。 -控件和示例的增强。 +2010-03-28 v2.2.1 +为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 -修正此函数通过PageCont<em>ext</em>.RegisterStartupScript调用时不能正确<em>显示</em>Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层Region<em>Panel</em>的边框ShowBorder="false"。 +集成<em>Ext</em>js最新版本v3.1.1。 -增加一个新的Theme - Access。 -修正了Firefox下Zoom In/Out时页面消失的BUG。 -删除<em>Panel</em>的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。 +2010-01-31 v2.2.0 -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。 -增加示例tabstrip/tabstrip_addtab.aspx。 -重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal="false")(feedback:zqmars)。 -Window控件更新。 -关闭按钮默认直接关闭,不会弹出确认对话框。 -GetConfirmFormModifiedHideReference的函数<em>中</em>的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。 -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -WindowPosition默认居<em>中</em>,而不是黄金分割位置。 +Button, Window等控件弹出位置属性的变化。 -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -> Target="Self", Target="_parent" -> Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。 -Confirm.GetShowReference的最后一个参数target变为枚举类型。 -Alert.GetShowReference<em>中</em>的showInParent参数也变为Target枚举类型。 -MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的<em>显示</em>位置。 +2010-01-06 v2.1.9 -集成<em>Ext</em>js最新版本v3.1.0。 -修正灰色皮肤的CSS问题。 -修正<em>Grid</em>的列名<em>中</em>不能包含<em>中</em>文字符的BUG(feedback:davidwen)。 -为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。 -修正了在<em>Grid</em>的PageIndexChange事件<em>中</em>不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。 -Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行<em>显示</em>,请为第一个按钮设置CssStyle="float:left;"属性。 -修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。 -为TriggerBox和TwinTriggerBox增加EnableEdit属性。 -使用Hidden来<em>显示</em>隐藏<em>Ext</em>AspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。 -使用Hidden控制Window控件的<em>显示</em>隐藏,Popup已经标记为Obsolete属性。 -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其<em>中</em>的Close全部改为Hide。 -增加TabStrip<em>中</em>Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocument<em>中</em>Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会<em>出现</em>空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。 -修正了IE下<em>Grid</em><em>中</em>的一个JS问题(feedback:lqm4108)。 -修正Alert消息<em>中</em>引号未编码导致的JS错误(feedback:sun1299shine)。 +集成<em>ext</em>js3.0.3。 -修正弹出对话框的宽度计算错误(会保持最小的状态)。 -增加新的皮肤Gray。 -为示例工程添加改变语言和皮肤的下拉列表。 -为PageCont<em>ext</em>增加静态函数Refresh,在切换语言和皮肤时使用。 +2009-12-01 v2.1.7 -增加示例(iframe/parent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。 -修正一些书写错误(feedback:bmck)。 -从Region控件<em>中</em>删除SplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。 -Border<em>Panel</em>更名为Region<em>Panel</em>。 -DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。 -增加<em>中</em>国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程<em>中</em>会<em>重复</em>加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的<em>Grid</em>,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的<em>点击</em>事件(feedback:yymaoji)。 +2009-11-26 v2.1.6 +修正动态创建<em>Grid</em>列的BUG(feedback:gxpan)。 -增加示例(data/<em>grid</em>_dynamic_columns.aspx)。 -修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。 -增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。 -为容器控件(比如<em>Panel</em>,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。 -重新设计模拟树的下拉列表的实现,避免选<em>中</em>某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和FindControl一致命名。 -删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。 -删除ExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。 -增加示例(data/tree_select_run.aspx),如何选<em>中</em>当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的属性NodeId被重命名为NodeID,这是<em>Ext</em>AspNet<em>中</em>的一个命名约定。 -同时更名的还有<em>Grid</em>Column的ColumnId->ColumnID,GetColumnId->GetColumnID。 -<em>Grid</em>1.Columns.FindColumnById函数被<em>Grid</em>1.FindColumn所替代。 -为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。 -为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。 -增加示例(other/custom_postback.aspx)(feedback:thebox)。 -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正Window的关闭按钮提示信息一直是<em>中</em>文的BUG(feedback:thebox)。 -部分<em>Ext</em>AspNet控件的设计时支持(会在后续版本<em>中</em>逐步完善)。 -v0.2beta2版本<em>中</em>关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event PostBack->EnablePostBack)。 -为T<em>ext</em>Box,T<em>ext</em>Area,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。 +为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,用于指定验证失败时提示信息。 -为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。 +为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。 -增加示例:form/form_validate.aspx +2009-10-19 v2.1.3 +增加支持在AJAX时改变的控件属性列表(/ajax.aspx)。 -<em>Ext</em>AspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程<em>中</em>会反映到页面<em>中</em>,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求<em>ext</em>js.com远程资源(feedback:efrigate43,abaocoole)。 -在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。 -更新/basic/login.aspx示例,使用验证图片(feedback:kedee)。 -为<em>Grid</em>增加AutoPostBack属性和RowClick事件,示例在/data/<em>grid</em>_autopostback.aspx(feedback:chenguizhu2006)。 -为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。 -<em>Grid</em><em>中</em>TemplateField生成到页面<em>中</em>控件具有唯一ID,例如<em>Grid</em>1_ct5_Label2,<em>Grid</em>1_ct6_Label2(feedback:geruger)。 +2009-09-27 v2.1.2 -为Tree控件增加GetExpandAllNodesReference和GetCollapseAllNodesReference两个函数。 -修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。 -增加pt_BR语言,由Ujvari提供。 +为所有<em>Panel</em>(包括<em>Grid</em>,Tree,Form等)增加枚举类型Icon,其<em>中</em>包含1700多个小图标。 -如果<em>Panel</em>具有IconUrl属性,则IconUrl优先于Icon。 -所有Icon的列表在icon.aspx。 -为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。 +2009-09-15 v2.1.1 -修正不能动态修改AccordionPane属性Items的BUG。 +为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。 -如果需要在父页面弹出确认对话框,需要设置ConfirmTarget="_parent"(类似Window控件的Target="_parent")。 +为<em>Ext</em>AspNet.Alert.Show增加<em>点击</em>确定的JavaScript回调函数。 -一个典型应用,在Window控件<em>中</em>打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -<em>Ext</em>AspNet.Alert.Show("参数错误!", String.Empty, <em>Ext</em>AspNet.ActiveWindow.GetCloseReference()); +TreeNode的前面的多选框可以自动回发了。 -为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://<em>ext</em>asp.net/data/tree_run.aspx -<em>Grid</em>增加GetNoSelectionAlertInParentReference函数,用来表示没有选<em>中</em>任何一项时在父页面弹出对话框的JS代码。 -修正IE7下不能以下划线作为CSS<em>中</em>类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pressed属性值能够正确的反映客户端的变化。 -优化Tree控件的AJAX实现。 +为页面的Form添加autocomplete="off"属性。 -参考http://www.cnblogs.com/sanshi/archive/2009/09/04/1560146.html#1635830 +添加对<em>ext</em>js3.0<em>中</em>所有语言的支持。 -<em>Ext</em>AspNet扩展的多语言包在js\languages\<em>ext</em>aspnet目录下,目前只有en,zh_CN,zh_TW三种实现 -你可以向其<em>中</em>添加自己的语言版本,并执行js\languages下的pack.bat打包,最后编译工程。 +2009-09-01 v2.0.9 -为<em>Ext</em>AspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。 +在aspx页面<em>中</em>必须<em>显示</em>的声明控件的集合属性(比如Tabs(TabStrip), Items(<em>Panel</em>Base), Nodes(TreeNode))。 -这将会影响所有的aspx页面,所以要特别关注。 -重命名Accordion<em>Panel</em>为AccordionPane (这也是在Asp.net AJAX<em>中</em>使用的名称). +所有的面板默认有两个集合属性(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 +2009-08-29 v2.0.8 -<em>Ext</em>AspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config<em>中</em>修改。 -将所有的示例转化为英语版本。 -修正Tree控件的一个BUG(定义Mappings属性时)。 +PageManager.Instance应该存在于HttpCont<em>ext</em>.Current,而不是一个全局变量。 -这个BUG导致Asp.net compatibility<em>中</em>的示例无法完成,现在已经修正。 +去除PageManager<em>中</em>方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。 -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility<em>中</em>的示例。 +2009-08-25 v2.0.7 -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止<em>重复</em>提交 - 默认为true。 -<em>Grid</em>的Values属性访问限制由internal改为public,这就意味这可以自由改变<em>Grid</em><em>中</em>每个单元格的值了。 -增加示例-如何将<em>Grid</em>控件导出为Excel(data\<em>grid</em>_excel_run.aspx)(feedback:503684912)。 -如果TreeNode的属性Enabled="false",则此项变灰并且不会被选<em>中</em>(feedback:your568)。 -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~/开头)的BUG。 -增加Accordion和Tree配合使用的示例(other\accordion_tree_run.aspx)。 -修正<em>Panel</em>图标不能<em>显示</em>的BUG(CSS<em>中</em>class名不能有$字符)。 +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSize<em>Panel</em>ID属性来代替。 -这样所有需要占据全屏的<em>Panel</em>(不管你是Accordion,<em>Panel</em>,Content<em>Panel</em>,Form,Group<em>Panel</em>,SimpleForm,Tree还是<em>Grid</em>,TabStrip)都可以通过这种方式全屏。 -简单方便,示例可以参考 default.aspx 或者 other\accordion_tree_run.aspx。 +2009-08-14 v2.0.6 -动态生成菜单实例(other\menu_dynamic_run.aspx和other\menu_dynamic2_run.aspx)(feedback:shguo)。 -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动生成,减少ViewState占用。 +2009-08-09 v2.0 beta5 +<em>Ext</em>AspNet和Asp.net的提交按钮兼容问题(feedback:千帆)。 -在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果Asp.net的按钮AJAX提交,必须设置UseSubmitBehavior="false" --也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。 +PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load<em>中</em>设置需要在AJAX<em>中</em>需要更新的Asp.net控件了。 -在Page_Load<em>中</em>设置了哪些需要在AJAX<em>中</em>更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。 -示例在aspnet\fckeditor_run.aspx和aspnet\aspnet_run.aspx。 -FCKEditor和上传控件兼容。示例在aspnet\fileupload_run.aspx。 -修正ToolbarT<em>ext</em>的文本在AJAX下更新的BUG。 -Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。 -更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。 +2009-08-02 v2.0 beta4 +和Asp.Net的Forms Authentication兼容[feedback:mgzhenhong]。 -采用和Asp.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。 -现在支持Response.Redirect,你可以选择Response.Redirect或者<em>Ext</em>AspNet.PageCont<em>ext</em>.Redirect重定向页面,两者效果一样。 -支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。 -Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。 -修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。 -修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。 -增加Menu和Accordion的示例。 -修正Window控件的IconUrl有时不<em>显示</em>(Target="_parent")的BUG[feedback:xmq&mgzhenhong]。 +2009-07-22 v2.0 beta3 -兼容FCKEditor。 -在IE8.0,Firefox3.5下测试通过。以后<em>Ext</em>AspNet将不会对IE6.0提供支持。 +2009-07-13 v2.0 beta2 -集成<em>ext</em>js最新版本v3.0。 +兼容IE6.0-7.0-8.0。 -这应该是<em>Ext</em>js3.0的一个BUG,在IE6.0-7.0下面设置<em>Ext</em>.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。 -目前先禁用IE6.0-7.0的QuickTips。 -优化底层JavaScript。 +2009-07-05 v2.0 beta1 -更新<em>ext</em>js库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。 -使用YUI Compressor压缩JavaScript和CSS文件。 -Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。 -<em>Ext</em>AspNet自身的CSS会紧挨着页面标签引入,这样在<em>中</em>自定义的样式可以覆盖<em>Ext</em>AspNet缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法解决,因为无法改变<em>Ext</em>.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。 -因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选<em>中</em>第一项。 -重新绑定模拟树的下拉列表后,选<em>中</em>项的前面有图片的HTML标签的BUG。 -更新自定义JavaScript组件<em>Ext</em>.ux.SimplePagingToolbar。 -更新示例工程。 +2009-03-25 v1.3.1 -Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed] -Window<em>中</em>的EnableIFrame==false,则<em>点击</em>关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要<em>点击</em>按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet/fileupload.aspx)[fixed] -HtmlEditor<em>显示</em>隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(<em>Ext</em>-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时<em>出现</em>JS错误(http://<em>ext</em>js.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面<em>中</em>存在ASP.NET控件(T<em>ext</em>Box),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed] -页面上放置<em>Ext</em>AspNet-Button和ASP.NET-Button,则<em>点击</em><em>Ext</em>AspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和<em>Ext</em>js2.2.1<em>中</em><em>Ext</em>.Ajax.serializeForm的实现有关。[fixed] -<em>Ext</em>AspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在<em>Ext</em>AspNet工程<em>中</em>使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在<em>Ext</em>AspNet控件和ASP.NET标准控件和平共处了。[fixed] -如果一个ASP.NET按钮控件要使用<em>Ext</em>AspNet的原生AJAX,只需要设置属性 UseSubmitBehavior="false" 即可。 -如果要在一次<em>Ext</em>AspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet/aspnet.aspx)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本<em>中</em>逐步完善。这个版本完成测试框架,采用<em>Ext</em>js<em>中</em>JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageCont<em>ext</em>静态类<em>中</em>的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面<em>中</em>表单修改的确认提示框的脚本”。 ---[updated]删除PageCont<em>ext</em><em>中</em>的GetConfirmFormModifiedReference,使用CurrentActiveWindow<em>中</em>的GetConfirmFormModifiedCloseReference/GetConfirmFormModifiedCloseRefreshReference/GetConfirmFormModifiedClosePostBackReference三个方法代替。 -不会修改弹出页面的URL(<em>Ext</em>-Window<em>中</em>的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageCont<em>ext</em>.GetFormModifiedConfirmReference获取此方法的客户端脚本。 ---注意:以前的项目需要在所有的ASPX页面<em>中</em>查找RegisterPageStateChangedScript属性,并删除,否则会运行错误! -A页面有<em>Ext</em>-Window控件弹出B页面,B页面有<em>Ext</em>-Window控件弹出C页面,B页面的<em>Ext</em>-Window控件设置Target='_parent',则弹出的<em>Ext</em>-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面<em>中</em>表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出<em>Ext</em>-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)<em>中</em>IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时<em>点击</em>右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的<em>Ext</em>-Window最终都渲染到最外层的页面,为了保证这些IFrame的name不同,IFrameName使用的是GUID,内部处理)。 -CurrentActiveWindow改名为ActiveWindow。 -[特别注意]GetWriteBackValueReference(string controlClientIds, string value, params string[] values)函数现在的定义是GetWriteBackValueReference(params string[] values) ---所有调用GetWriteBackValueReference的地方,需要删除第一个参数(一般是ActiveWindow.GetLoadStateReference())。 +2009-02-23 v1.2 beta8 -Content<em>Panel</em><em>中</em>内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed] -DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed] -DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed] -升级底层<em>Ext</em>JS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed] -页面加载过程<em>中</em>的时间信息保存在Javascript变量window.box.timeInfo<em>中</em>。[added] +增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed] +2008-10-28 v1.2 beta7 -DropDownList没有选<em>中</em>任何一项,回发时报错[feedback:huihuang]。[fixed] -Window<em>显示</em>位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed] +PageCont<em>ext</em>优化。[fixed] -去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。 -去除RegisterStartupScript的重载函数,只保留最简单的PageCont<em>ext</em>.RegisterStartupScript(string script)函数。 -Resirect增加重载函数Redirect(string url, string target),其<em>中</em>target可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。 -Image控件增加ImageWidth/ImageHeight/ImageCssStyle/ImageCssClass/ImageAlt属性[feedback:jqpeng]。[fixed] -发布包<em>中</em>增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -Content<em>Panel</em>的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时<em>显示</em>不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认<em>显示</em>,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,解决方案见http://pohee.com/it/http-compression-in-aspnet-20/。 +DropDownList优化。[fixed] -去除EnableFirstItem/FirstItemT<em>ext</em>/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.Insert(0, new <em>Ext</em>AspNet.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选<em>中</em>[feedback:jqpeng]。 -和Asp.net<em>中</em>的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = ""; -ListItemCollection增加重载函数Add(string t<em>ext</em>, string value),这样方便后台添加列表项。 -处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed] -注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS<em>中</em>的height不同,CSS<em>中</em>的height是指内容的高度,除去padding/border-width/margin)。[fixed] +为所有控件属性增加在VS<em>中</em>的智能提示。[fixed] -需要将<em>Ext</em>AspNet.XML和<em>Ext</em>AspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.USER_DEFINED -> RegexPattern.None -表单验证属性名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个属性可以拥有多个值的情况。[fixed] -属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)<em>中</em>通过js切换父页面<em>中</em>选<em>中</em>的菜单项(Accordion->AccordionLink)(示例在other/accordion_links_run.aspx,other/accordion_links_run_iframe_htm)[feedback:jima]。 +确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form/form_dynamic_run.aspx)。[fixed] +2008-10-15 v1.2 beta5 -验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed] +优化下拉列表。[fixed] -验证下拉列表时,应该取ListItem的Value属性进行验证,而不是T<em>ext</em>属性。 -DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyT<em>ext</em>属性。 -ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)<em>中</em>设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对Accordion<em>Panel</em>起作用(示例见other/accordion_run.aspx)。[fixed] -Accordion去除EnableHightlight属性,Accordion<em>Panel</em>增加EnableHightlight属性。 -影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个Accordion<em>Panel</em>增加EnableLargeHeader和EnableHightlight属性。 -Accordion<em>Panel</em>鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +Accordion<em>Panel</em>增加Links属性,可以绑定列表数据到Accordion<em>Panel</em>,呈现的是链接的列表(示例在other/accordion_links_run.aspx)。[fixed] -原来放置在Accordion<em>Panel</em><em>中</em>的容器,比如Content<em>Panel</em>需要在外层加上标签。 -适当增大Accordion<em>Panel</em><em>中</em>链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少ASPX<em>中</em>HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed] -<em>Panel</em>/Group<em>Panel</em>/Content<em>Panel</em>/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed] -向Form<em>中</em>动态添加控件的BUG,现在form/form_dynamic_run.aspx示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/Accordion<em>Panel</em>/Group<em>Panel</em>/<em>Panel</em>/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)属性和<em>Grid</em>的Rows属性(<em>Grid</em>RowCollection)。 -保留TabStrip的Tabs(TabCollection)属性。 -保留PageLayout/BorderLayout的Regions(RegionCollection)属性。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +<em>Grid</em>选<em>中</em>项(SelectedRowIndexArray)在ajax回发过程<em>中</em>存在BUG [feedback:xmzhu]。[fixed] -表现为对<em>Grid</em>进行多次删除添加操作后,SelectedRowIndexArray选<em>中</em>项<em>中</em>会存在当前不存在的行序号,导致服务器端遍历选<em>中</em>项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例<em>中</em>表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/Button/HyperLink/Label/Image/LinkButton/T<em>ext</em>Box -TriggerBox/TwinTriggerBox/Window/T<em>ext</em>Area/HtmlEditor/DatePicker/NumberBox -CheckBox/RadioButton/RadioButtonList/DropDownList -<em>Grid</em> +2008-09-19 v1.2 beta1 -Image/LinkButton/HyperLink增加一些Ajax可更新属性。[fixed] +隐藏的方式由HideMode属性控制Visibility/Offsets/Display。[fixed] -修正Form/SimpleForm<em>中</em>隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。 -ToolbarT<em>ext</em>/ToolbarFill/ToolbarSeparator在ASPX<em>中</em>设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -Button去除MarginRight属性(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu属性,在网报<em>中</em>可以用自定义样式实现,而不应该写在控件<em>中</em>。[fixed] -网报:CssClass="toolbar-pagemenu" CssStyle="border:0px;",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(../images/pagemenu_toolbar_background.gif) repeat-x left top;}。 -Region去除默认的Layout=Fit,如果希望Region使用Fit/Anchor/Column/Row等布局的话,需要手工指定。[fixed] -ToolbarSeparator/ToolbarFill在Ajax更新Hidden属性的BUG。[fixed] +布局整理。[fixed] -新增Column/Absolute/Row三种布局,加上以前的Container/Fit/Anchor/Accordion/Border/Form六种布局,总共有9<em>中</em>布局可供使用。 -其<em>中</em>一些控件默认使用一种布局:SimpleForm(Form)/Form(Form)/<em>Panel</em>-Group<em>Panel</em>(Container)/Accordion(Accordion)/PageLayout(Border)/BorderLayout(Border)/TabStrip(Card),所有布局控件默认的布局是Container。 -经常用到的布局控件:SimpleForm/Form/Accordion/TabStrip/BorderLayout,经常用到的布局:Fit/Row/Anchor +2008-09-08 v1.1 beta7 -MenuButton/MenuHyperLink增加HideOnClick属性,如果一个菜单项的作用仅仅为了弹出下级菜单,<em>点击</em>没反应,则可以这样设置HideOnClick="false" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -MenuButton/MenuHyperLink/MenuSeparator/MenuT<em>ext</em>增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时<em>显示</em>隐藏菜单,请使用此属性而不是Visible属性)。[fixed] +大部分的<em>Ext</em>AspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以<em>显示</em>隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的<em>Ext</em>AspNet改造强烈依赖于此属性,这个版本发布后可以继续。 -网报<em>中</em>唯一没有用到<em>Ext</em>AspNetAjax的地方就是<em>显示</em>隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageCont<em>ext</em>.Redirect支持普通页面转向和<em>Ext</em>AspNetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(<em>Grid</em>,DropDownList,TabStrip)。 -解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) >= 0){ok}。 -DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed] -Button/MenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed] -Tree的Ajax支持(尚需优化)。[fixed] +2008-09-02 v1.1 beta5 -DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed] -模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataT<em>ext</em>Field/DataValueField/DataSimulateTreeLevelField/DataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed] -UserControlConnector导致的Ajax错误,去除Update<em>Panel</em>Connector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed] -不要使用Asp.net的控件HiddenField,而是使用<em>Ext</em>AspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要<em>显示</em>隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,RadioButtonList<em>中</em>项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab<em>中</em>如果有Content<em>Panel</em>,则在页面上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢页面的加载速度),现在已经解决这个问题。[fixed] -RadioButtonList去除EnableBackgroundColor/EnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先<em>显示</em>再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed] -Web.config<em>中</em>增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue/SelectedItem)。 -DropDownList增加Ajax可更新属性Enable/SelectedIndex(SelectedValue/SelectedItem)/DataSource。 -<em>Grid</em>增加Ajax可更新属性Columns(也就是说<em>Grid</em>列在回发时隐藏<em>显示</em>了一些,也能正确的Ajax)。 -ToolbarT<em>ext</em>增加Ajax可更新属性T<em>ext</em>。 +2008-08-31 v1.1 beta3 -TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageCont<em>ext</em>.Redirect(string url),使用Response.Redirect方法会出错。[fixed] +安全的Ajax设计。[fixed] -这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。 -基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。 -整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。 -网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed] +2008-08-29 v1.1 beta1 +Window控件是否弹出的状态在回发时维持。[fixed] -控件设计的一个原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。 +完全抛弃Asp.NetAjax,<em>Ext</em>AspNet控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager<em>中</em>有设置启用Ajax回发的属性-EnableAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的<em>点击</em>一个按钮弹出窗口,可以在Button的OnClick事件<em>中</em>设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前<em>Ext</em>AspNetAjax的限制。 -只对<em>Ext</em>AspNet控件起作用,对Asp.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible属性会有错误。 -Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -<em>Grid</em><em>中</em>的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选<em>中</em>的状态在回发后会得到保持。[fixed] -<em>Grid</em>选<em>中</em>行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化弹出窗口<em>中</em>IFrame的<em>显示</em>速度。[fixed] -在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。 -PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报<em>中</em>需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config<em>中</em>设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器<em>中</em>Cookie设置的值)(示例在default.aspx)。 -TreeNode增加属性SingleClickExpand,表示<em>点击</em>可切换节点的折叠展开状态。[fixed] +TabStrip<em>中</em>非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报<em>中</em>一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab<em>中</em>的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件<em>中</em>。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab<em>中</em>的Content<em>Panel</em>会占据页面空间,已修正)。[fixed] -全新的<em>Ext</em>AspNet.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个属性(EnableInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面<em>中</em>使用父页面的脚本和样式(示例在iframe/default.aspx和iframe/page3.aspx)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。 -RadioButtonList放在在BorderLayout<em>中</em><em>显示</em>不了的BUG [feedback:zgjiang2]。[fixed] +<em>ext</em>js的BUG,当页面<em>中</em>含有iframe时,<em>Ext</em>.onReady会被调用两次(IE6/IE7)(http://www.<em>ext</em>js.net/forum/showthread.php?t=43246)(示例在test.aspx)[fixed] -现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true; +需要先回发页面再弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。 -另一种做法(推荐):PageCont<em>ext</em>.RegisterStartupScript(Window99.GetShowReference("./simpleform.aspx"));。 +2008-08-15 v0.4 beta5 -<em>点击</em>关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.aspx。[fixed] +Radiobuttonlist<em>显示</em>有重影(示例在radio.aspx)。[fixed] -全新的样式。 -去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form<em>中</em>添加FormRow,并动态的向FormRow<em>中</em>添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会<em>重复</em>加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window<em>中</em>的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx) +2008-08-13 v0.4 beta4 -<em>点击</em>关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.aspx页面,iexplorer占内存68.368M。 -内存存在泄漏时,<em>点击</em>iframe/page3.aspx页面8次后iexplorer占118.792M内存。 -修正后,<em>点击</em>iframe/page3.aspx页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架<em>Ext</em>js升级为v2.2,<em>Grid</em>的渲染速度有很大提升。[fixed] -<em>Grid</em>的EnableDelayRender默认为true(如果没有设置<em>Grid</em>的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"解决)。[fixed] +页面正在加载的提示尽早的<em>显示</em>出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容<em>显示</em>出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的<em>显示</em>。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_<em>Ext</em>AspNet目录下的页面应该为./FE_ApplyEditor.aspx或~/Pages_<em>Ext</em>AspNet/FE_ApplyEditor.aspx。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面<em>显示</em>后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed] -Window<em>中</em>的保存并关闭按钮和Asp.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageCont<em>ext</em>.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed] -DropDownList增加SelectedT<em>ext</em>属性(去除了模拟树时通过SelectedItem.T<em>ext</em>的多余html字符)。[fixed] -为了加快渲染速度,去掉一些特效(比如<em>Panel</em>的折叠效果,<em>Grid</em>的拖动列效果等)[feedback:dcding]。[fixed] -将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed] +弹出窗口<em>中</em>,<em>点击</em>按钮回发然后<em>点击</em>关闭按钮,<em>出现</em>js错误 [feedback:xmzhu]。[fixed] -因为在页面的Page_Load<em>中</em>,if (!IsPostBack){PageCont<em>ext</em>.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。 -一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件<em>中</em>增加RegisterPageStateChangedScript(向页面注册监视页面<em>中</em>表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx/simpleform.aspx)。 +PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报<em>中</em>遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性<em>出现</em>)。[fixed] -T<em>ext</em>Field等表单字段增加Readonly属性。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过<em>点击</em>按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx/page2.aspx/simpleform.aspx) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)/page2.aspx(B)/simpleform.aspx(C)),其<em>中</em>A包含B页面,当你在B<em>中</em>打开包含有页面C的窗口时,窗口不是在B<em>中</em>打开,而是在A<em>中</em>打开,这样才能保证窗口覆盖整个页面,当你从C<em>中</em>返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面<em>中</em>创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,<em>Grid</em><em>中</em>弹出窗口。(default.aspx/page3.aspx/simpleform.aspx) +示例3,TriggerBox弹出窗口。(default.aspx/triggerbox.aspx/simpleform.aspx) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。 -示例4,弹出窗口<em>中</em>的弹出窗口。 -对整个Examples更新测试。[fixed] +2008-07-31 v0.3 beta12 -IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab<em>显示</em>为空的BUG。[fixed] -对TabStrip/<em>Panel</em>/Window<em>中</em>的IFrame重新设计,如果设置IFrameUrl="#"或者"about:blank",则不渲染iframe到页面节点,同时第二次打开Window<em>中</em>的IFrame不会有残影<em>出现</em>。[fixed] -如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed] -Tree控件,<em>点击</em>一个节点自动回发,则当前<em>点击</em>的那个节点的选<em>中</em>状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe<em>中</em>关闭按钮和window右上角关闭图标的调用方式)(示例在<em>grid</em>_iframe.aspx/simpleform.aspx)。[fixed] -内部实现上,<em>点击</em>“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageCont<em>ext</em>.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body<em>中</em>。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式<em>中</em>有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx/simpleform.aspx/simpleform2.aspx)[fixed] -增加PageManager控件(需要指定AutoSize<em>Panel</em>ID,即需要设置宽度和高度为整个页面的宽度和高度的<em>Panel</em>),HideScrollbar属性用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息<em>中</em>MessageTarget改名为FormMessageTarget,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed] -去掉DropDownList控件的T<em>ext</em>属性(强制性),可以通过设置SelectedValue来设置选<em>中</em>哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息<em>中</em>的换行符(转换为),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库<em>中</em>的数据绑定到Tree(示例在tree2_bind_database.aspx)。 -ajax加载树节点,放在Update<em>Panel</em><em>中</em>才有ajax的效果(示例在tree2_ajax.aspx)。 -更改TreeNode的ID为NodeId,否则两个树<em>中</em>不能有相同ID的TreeNode,这是不合理的。 -<em>Grid</em>的<em>Grid</em>Column的ID改名成ColumnId,否则同一个页面放置两个<em>Grid</em>,它们的<em>Grid</em>Column的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -<em>Grid</em>所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以<em>显示</em>ToolTip(示例在<em>grid</em>.aspx)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选<em>中</em>样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确解析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则<em>显示</em>的文字会换行,导致错位。[fixed] -虽然最后未能解决##差旅交通费在IE和Firefox下<em>显示</em>的不同效果。 -但是通过用来代替,从而实现FF和IE下样式的统一。 -刚看到old9的解决方案:把“差旅交通费”改成“差旅交通费”,在IE下和FF下的都不换行,:-) -LinkButton增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.aspx)。[fixed] -可以在回发时维持树的状态(选<em>中</em>行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -<em>点击</em>树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +Content<em>Panel</em><em>中</em>放置<em>Ext</em>AspNet控件,则渲染时会<em>出现</em>各种问题,比如下拉列表<em>显示</em>样式出错,<em>Grid</em>没了滚动条等等。[fixed] -隐蔽性非常强,原来在Content<em>Panel</em><em>中</em>渲染<em>Ext</em>AspNet控件,如果容器的display='none',则会<em>出现</em>各种问题(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后<em>显示</em>容器。 -现在<em>Grid</em>只要<em>显示</em>的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过<em>Grid</em>容器就会<em>显示</em>滚动条。 +IE6下,在应用Asp.NetAjax后,Form<em>中</em>字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。 -最后发现IE6下应用Asp.NetAjax后不仅Form<em>中</em>列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数<em>中</em>,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面<em>中</em>所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed] -Accordion选<em>中</em>样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +<em>Grid</em>增加EnableDelayRender属性(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s<em>显示</em>出来)。[fixed] -因为延迟加载数据不会改变<em>Grid</em>的大小,所以对于非布局内或不设定高度宽度的<em>Grid</em>,需要设置"EnableDelayRender=false"。 -改变<em>Grid</em><em>中</em>静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在<em>点击</em>一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和T<em>ext</em>Box比较大小需要指定CompareType。 +如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx/ajax_editor.aspx)。[fixed] -这是由于ajax后执行的javascript<em>中</em>不能有return false语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在t<em>ext</em>box_blur.aspx) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认<em>显示</em>的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口<em>中</em>的弹出窗口的如果内容发生变化,则<em>点击</em>右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例<em>中</em>alert\alert_1.aspx和alert\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。 -<em>点击</em>提交按钮后变成灰色不可再次<em>点击</em>(示例在button_click_gray.aspx)[feedback:jima]。[fixed] +增加Menu、MenuT<em>ext</em>、MenuSeparator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed] -增加SplitButton控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(T<em>ext</em>Box,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个属性,示例在form_compare.aspx。 +TabStrip<em>中</em>放置IFrame会<em>出现</em>渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed] +表单字段Enable=false时<em>显示</em>颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disabled,设置不透明。 +2008-07-08 v0.3 beta3 -<em>Grid</em>没有数据,向后翻页按钮可以<em>点击</em>的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用T<em>ext</em>Box也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 EnableT<em>ext</em>Box = true,则不能将T<em>ext</em>回发(这是html的限制)。[fixed] -最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在t<em>ext</em>box2.aspx)。 -模拟树的下拉列表在失去焦点后<em>显示</em>的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed] -增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。 -LinkButton和<em>Grid</em>的LinkButtonField增加Enable属性(示例在hyperlink.aspx和<em>grid</em>.aspx)。[fixed] +2008-07-07 v0.3 beta2 +增加Update<em>Panel</em>Connector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed] -使用Update<em>Panel</em>Connector有一个要求:ContentTemplate下只能有一个子节点,比如box:<em>Panel</em>。 -示例在ajax3.aspx/content_page4.aspx。 -示例content_page3.aspx<em>中</em>,<em>点击</em>“Ajax查询”按钮和关闭弹出的窗口(<em>点击</em>右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为false。[fixed] -使用Group<em>Panel</em>的地方需要手工添加AutoHeight="true"属性。 +增加UserControlConnector,可以在其<em>中</em>放置用户控件(示例在page_usercontrol.aspx)。[fixed] -也可以在Content<em>Panel</em><em>中</em>放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed] +支持Asp.net ajax异步加载。[fixed] -有很大局限性,只能在Content<em>Panel</em><em>中</em>使用,示例在ajax1.aspx/content_ajax2.aspx<em>中</em>。 -对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.aspx/simpleform.aspx)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除CloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe<em>中</em>做法一致)。 +iframe<em>中</em>的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有问题。[fix pending] +排序时在标题栏<em>显示</em>排序箭头,可以排序的列标题光标为手形(示例在<em>grid</em>_sorting.aspx)。[fixed] -可以通过设置<em>Grid</em>1.CurrentSortColumnIndex = 0;来强制某列<em>显示</em>排序箭头。 -可以通过 <em>Grid</em>1.Columns[<em>Grid</em>1.CurrentSortColumnIndex].SortExpression 的方式取得当前<em>Grid</em>的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.aspx)。[fixed] -TabStrip的Tab<em>中</em>如果放置Content<em>Panel</em>,则内容渲染位置不正确。[fixed] -可以在Content<em>Panel</em><em>中</em>放置用户控件(示例在page_usercontrol.aspx)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed] -<em>Grid</em>的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面<em>中</em>任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx/simpleform.aspx)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页<em>中</em><em>Grid</em>的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -<em>Grid</em><em>中</em>的LinkButtonField设置ConfirmT<em>ext</em>会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +<em>Grid</em>完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了<em>grid</em>_checkboxfield.aspx示例)。 -<em>Grid</em><em>中</em>模拟树<em>显示</em>,<em>Grid</em>Column增加DataSimulateTreeLevelField属性(一个<em>Grid</em>只能有一个Column指定此属性),指定此列模拟树<em>显示</em>时的层次字段(0,1,2,...)(示例在<em>grid</em>_simulate_tree.aspx)。 -切换分页时清空选<em>中</em>的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在<em>grid</em>_prerowdatabound.aspx)。 -DropDownList模拟树的方式<em>显示</em>,增加DataSimulateTreeLevelField属性,使用方法和<em>Grid</em>的类似(示例在dropdownlist_simulate_tree.aspx)。 +2008-06-25 v0.2 beta9 +Window窗体<em>中</em>的</a></div><div data-report-view="{"mod":"popu_645","index":"3","dest":"https://download.csdn.net/download/csdn/3307801","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAltJREFUWEdjZGBgYGhv/yD45//nEEYGBrX//xj4QWK0AoxMDB//MzDcYmHkXVNZKfCeEWz5v8/1DP8ZuGhlKVZzGRm+sTDxNjI2tz1OZfjHYEpXy2GWMTGcZmxpe9xN62DH5TlQdDA2tzyeNSC+h1o66gCyQyApUdRNSIhNGBSS7979ejtv/utd5EQl2Q7IypT0ExJiFoc44O/LadOfbxp1wPAOAWlpdr5Pn//8/Pzp70+QT3GlAX5+ZnYeHhb2p09/fiImRIhOhBYWvIo21ryWu/Z8PHDp4tdn2BxgoM8l4+IiYH/k6OdjJ058vk91B7g487swMDD8v3Hj+2VJSTYpfn5mEZAlHz/9ffPq5e+Xqqoc2iD+nr0f99DSAQQ9RhMHcHAwsYSGCtvKy7Gr4HPBo0c/b69c/fbwzx///hJ0KQMDA9FpAGaYizO/tpkZjwUTEyMTsgX//v3/d/LUl+N79368RozFMDUkOwCkUUODU8zHW9CFg4OJG8T/8ePf181b3u25efPHK1IsB6nF6gAjY25ZEWFWcNPs169/fw4c+HQD3WBBIRaOsBAhZ5D4qjXv9r5/9+cHuhoHBz4NNjYmFpD4m7e/P547+/UxuhqsDoiPE3WWlWVXgvju/5ee3qfLsfmMiZmBEST+7y/Df2zyJcXSkRwcjDwgucePf95buOj1Xqo6gFBwDw8H/P/P8O/nz//fCPkWmzw7OyMXIyMDOLeQHQXkWIxNz9BygJubgI6kBCu4tUMt8PzF75e7dn24QlQuoJalxJgzCDomA901G/DOKSieBrJ7DgCPdYFAskV/NwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://download.csdn.net/download/csdn/3307801" data-report-click="{"mod":"popu_645","index":"3","dest":"https://download.csdn.net/download/csdn/3307801","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="title" data-v-ca2d15ac><em>ext</em>js表格、树控件</a></div> <a target="_blank" href="https://download.csdn.net/download/csdn/3307801" data-report-click="{"mod":"popu_645","index":"3","dest":"https://download.csdn.net/download/csdn/3307801","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="desc" data-v-ca2d15ac><em>ext</em>js表格、树控件</a></div><div data-report-view="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/lovesunny56/3899455","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAltJREFUWEdjZGBgYGhv/yD45//nEEYGBrX//xj4QWK0AoxMDB//MzDcYmHkXVNZKfCeEWz5v8/1DP8ZuGhlKVZzGRm+sTDxNjI2tz1OZfjHYEpXy2GWMTGcZmxpe9xN62DH5TlQdDA2tzyeNSC+h1o66gCyQyApUdRNSIhNGBSS7979ejtv/utd5EQl2Q7IypT0ExJiFoc44O/LadOfbxp1wPAOAWlpdr5Pn//8/Pzp70+QT3GlAX5+ZnYeHhb2p09/fiImRIhOhBYWvIo21ryWu/Z8PHDp4tdn2BxgoM8l4+IiYH/k6OdjJ058vk91B7g487swMDD8v3Hj+2VJSTYpfn5mEZAlHz/9ffPq5e+Xqqoc2iD+nr0f99DSAQQ9RhMHcHAwsYSGCtvKy7Gr4HPBo0c/b69c/fbwzx///hJ0KQMDA9FpAGaYizO/tpkZjwUTEyMTsgX//v3/d/LUl+N79368RozFMDUkOwCkUUODU8zHW9CFg4OJG8T/8ePf181b3u25efPHK1IsB6nF6gAjY25ZEWFWcNPs169/fw4c+HQD3WBBIRaOsBAhZ5D4qjXv9r5/9+cHuhoHBz4NNjYmFpD4m7e/P547+/UxuhqsDoiPE3WWlWVXgvju/5ee3qfLsfmMiZmBEST+7y/Df2zyJcXSkRwcjDwgucePf95buOj1Xqo6gFBwDw8H/P/P8O/nz//fCPkWmzw7OyMXIyMDOLeQHQXkWIxNz9BygJubgI6kBCu4tUMt8PzF75e7dn24QlQuoJalxJgzCDomA901G/DOKSieBrJ7DgCPdYFAskV/NwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://download.csdn.net/download/lovesunny56/3899455" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/lovesunny56/3899455","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="title" data-v-ca2d15ac><em>Ext</em>js4 API文档阅读(二)——MVC构架(上)</a></div> <a target="_blank" href="https://download.csdn.net/download/lovesunny56/3899455" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/lovesunny56/3899455","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="desc" data-v-ca2d15ac>对于 <em>ext</em>js 来说,大客户端程序一直很难写,当你为大客户端程序添加更多的功能和项目的时候,项目的体积往往迅速增长。这样的大客户端程序很难组 织和维持 ,所以,<em>ext</em>js4 配备了一个新的应用程序体系结构,它能结构化你的代码,那就是 <em>ext</em>js4 MVC。</a></div><div data-report-view="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/weixin_30346033/article/details/99339337","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAeZJREFUWEdjZGBgYPhQkSn49/v/EAbG/2oM/xn4QWI0A4wMHxn+M95i5mRcI9Ax/T0jyPI/P/7VM/5n4KKZpVgM/s/I8I2Fg6mR8W1+RioDw39TelqOsIvxNOPbgvRumgc7Lt8xMnxkfJufPmtgfA+xddQBeEOAv7opgImHh5PoKPr169fnOdN3/Xn88DOxevA6QLC9L5KRk4uHWMNA6v59+fz50+TeTf9evvhGjD6qOwDsiI8fPnya2LX537t3Pwg5giYOADvi3Zs3nyZ0bfn36dNvfI6gmQNAlv599fLlxwmd2xi+ffuDsyjAVw6QkwbQLfr76MHDj30duwbMAf+/f/vyvrJoOcUO+Pf82dOv2zadIZSoQPLcXn4mTJJS0iA21Rzw+/6de58n9uwlxgG8+SXOrIoqSlR1ADEWY1NDtRBg+PXrx7+PHz4S4xAmfgF+BjY2DqqGwIBHwb/3797+unzhFjEhwKZroMYkKCRM1RAgxmKapoF/r1+9/HHs8GVslrCISfCzWVpjbdZRLRHiSwOsugZivMkZ/jQNAYa/f//8//UTe+3GyMTMyMGBtd1AtRAY8DQwIA7gTcuxZuDkABcoZIPvP358njXlKFmVEdmWkqBxMHRMBrhrNuCdU1B0DWT3HACwkGScZb+cwwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://blog.csdn.net/weixin_30346033/article/details/99339337" data-report-click="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/weixin_30346033/article/details/99339337","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="title" data-v-ca2d15ac>关于在<em>Ext</em><em>中</em><em>Grid</em><em>中</em>预览图片的实现</a></div> <a target="_blank" href="https://blog.csdn.net/weixin_30346033/article/details/99339337" data-report-click="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/weixin_30346033/article/details/99339337","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1752533975203_28256\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default" class="desc" data-v-ca2d15ac>  最近在做项目<em>中</em>,需要实现一个在<em>Ext</em>的<em>Grid</em><em>中</em>预览图片的功能,刚开始以为很简单,但是做起来发现……其实也是很简单的,只是当时没有找准方向   这里是该把弯路也说一下呢?还是直接上正确思路呢?!走一步算一步吧,毕竟垒砖还是很累的。   刚开始我这样考虑的,需要在每行<em>中</em>放一个专门用于<em>显示</em>图片的<em>panel</em>,后来这个地方是使用的开发平台的linkColumn,在<em>ext</em>Api<em>中</em>找到的事Templa...</a></div></div></div></div> <div class="public_pc_right_footer2020" style="display:none;" data-v-4a5a7f56></div></div> <div id="right-floor-user-content_562" data-editor="{"type":"floor","pageId":143,"floorId":562}" class="user-right-floor right-box main-box detail-user-right" data-v-229a00b0><div class="__vuescroll" style="height:100%;width:100%;padding:0;position:relative;overflow:hidden;"><div class="__panel __hidebar" style="position:relative;box-sizing:border-box;height:100%;overflow-y:hidden;overflow-x:hidden;transform-origin:;transform:;"><div class="__view" style="position:relative;box-sizing:border-box;min-width:100%;min-height:100%;"><!----><div comp-data="[object Object]" baseInfo="[object Object]" community="[object Object]" class="introduce" data-v-4722a3ae><div class="introduce-title" data-v-4722a3ae><div class="img-info" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/php" class="community-img" data-v-4722a3ae><img src="https://img-community.csdnimg.cn/avatar/cc5e4fe8f177499588cb75b2298ba739.png?x-oss-process=image/resize,m_fixed,h_88,w_88" alt data-v-4722a3ae> <div title="PHP" class="community-name" data-v-4722a3ae> PHP </div></a></div></div> <div class="content" data-v-4722a3ae><div class="detail" data-v-4722a3ae><div title="20398" class="item" data-v-4722a3ae><p class="num" data-v-4722a3ae> 20,398 </p> <p class="desc" data-v-4722a3ae> 社区成员 </p></div> <div title="19656" class="item" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/php" target="_blank" data-v-4722a3ae><p class="num" data-v-4722a3ae> 19,656 </p> <p class="desc" data-v-4722a3ae> 社区内容 </p></a></div></div> <div class="detail-btns" data-v-4722a3ae><div class="community-ctrl-btns_wrapper" data-v-0ebf603c data-v-4722a3ae><div class="community-ctrl-btns" data-v-0ebf603c><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-160be461 data-v-0ebf603c><div data-report-click="{"spm":"3001.5975"}" data-v-160be461><img src="https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png" alt="" class="img sendTopic" data-v-160be461 data-v-0ebf603c> <span data-v-160be461 data-v-0ebf603c>发帖</span></div> <!----> <!----></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png" alt="" class="img me" data-v-0ebf603c> <span data-v-0ebf603c>与我相关</span></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png" alt="" class="img task" data-v-0ebf603c> <span data-v-0ebf603c>我的任务</span></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div class="community-share" data-v-4ca34db9 data-v-0ebf603c><div class="handle-item share" data-v-ca030a68 data-v-4ca34db9><span height="384" data-v-ca030a68><div role="tooltip" id="el-popover-9524" aria-hidden="true" class="el-popover el-popper popo share-popover" style="width:265px;display:none;"><!----><div id="tool-QRcode" class="QRcode" data-v-ca030a68><img src="https://csdnimg.cn/release/cmsfe/public/img/shareBg2.05330abf.png" alt="" class="share-bg" data-v-ca030a68> <div class="share-bg-box" data-v-ca030a68><div class="share-content" data-v-ca030a68><img src="https://img-community.csdnimg.cn/avatar/cc5e4fe8f177499588cb75b2298ba739.png?x-oss-process=image/resize,m_fixed,h_88,w_88" alt="" class="share-avatar" data-v-ca030a68> <div class="share-tit" data-v-ca030a68>PHP</div> <div class="share-dec" data-v-ca030a68>“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。</div> <span class="copy-share-url" data-v-ca030a68>复制链接</span> <div class="shareText" data-v-ca030a68> </div></div> <div class="share-code" data-v-ca030a68><div class="qrcode" data-v-ca030a68></div> <div class="share-code-text" data-v-ca030a68>扫一扫</div></div></div></div> </div><span class="el-popover__reference-wrapper"><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png" alt="" class="img share" data-v-0ebf603c> <span data-v-0ebf603c>分享</span></div></span></span></div> <!----></div></div></div> <!----> <div data-v-4fb59baf data-v-0ebf603c><div class="el-dialog__wrapper ccloud-pop-outer2" style="display:none;" data-v-4fb59baf><div role="dialog" aria-modal="true" aria-label="dialog" class="el-dialog el-dialog--center" style="margin-top:15vh;width:70%;"><div class="el-dialog__header"><span class="el-dialog__title"></span><!----></div><!----><div class="el-dialog__footer"><span class="dialog-footer clearfix" data-v-4fb59baf><div class="confirm-btm fr" data-v-4fb59baf>确定</div></span></div></div></div></div></div></div></div> <div style="display:none;" data-v-4722a3ae data-v-4722a3ae><!----> <div class="introduce-desc" data-v-4722a3ae><div class="introduce-desc-title" data-v-4722a3ae>社区描述</div> <span data-v-4722a3ae> “超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。 </span></div></div> <div class="introduce-text" data-v-4722a3ae><div class="label-box" data-v-4722a3ae><span class="label" data-v-4722a3ae>php</span><span class="label" data-v-4722a3ae>phpstorm</span> <span class="label" data-v-4722a3ae>技术论坛(原bbs)</span> <!----></div></div> <!----> <div class="manage" data-v-4722a3ae><div class="manage-inner" data-v-4722a3ae><span data-v-4722a3ae>社区管理员</span> <ul data-v-4722a3ae><li data-v-4722a3ae><a href="https://blog.csdn.net/community_6" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/default.jpg!1" alt="开源资源社区" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li><li data-v-4722a3ae><a href="https://blog.csdn.net/phpstory" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/b3875e26d1334ef09541ecbb7eafdc28_phpstory.jpg!1" alt="phpstory" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li><li data-v-4722a3ae><a href="https://blog.csdn.net/xuzuning" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/096fa290fdcd400db84eabf91d9332f1_xuzuning.jpg!1" alt="xuzuning" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li></ul></div></div> <div class="actions" data-v-4722a3ae><!----> <div style="flex:1;" data-v-4722a3ae><div class="join-btn" data-v-4722a3ae> 加入社区 </div></div> <!----> <!----></div> <div class="el-dialog__wrapper" style="display:none;" data-v-38c57799 data-v-4722a3ae><div role="dialog" aria-modal="true" aria-label="获取链接或二维码" class="el-dialog join-qrcode-dialog" style="margin-top:15vh;width:600px;"><div class="el-dialog__header"><span class="el-dialog__title">获取链接或二维码</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"></i></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer" data-v-38c57799></span></div></div></div> <div class="collapse-btn" data-v-4722a3ae><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAgCAYAAACFM/9sAAAAAXNSR0IArs4c6QAAAi1JREFUaEPtl01u01AUhc+N8wMSO4AxzJAqwQpKQsdtbMOICmKnwCKQ2ACDIgotrYKiduIiVZ10B0CBAjtAbICfooomJr3IcUoTiVLb15GNuG/67nm65/M5AxP0iAiQSK1iKEBhCBSgAhQSEMo1gQpQSEAo1wQqQCEBoVwT+K8CnLnWvER8cOHMaf95q9Xaj+vDtp3LPeD83u6p9a2t+U5cfVrzmSTQNOfOgg4+ATDAeNHp/Jza3Fz5HtWUZbl3GXjYn2e+53lL96Nq057LBOD0dOOcUSx8BFAcGHpZLlWmVlfnd08yaJrubRAe/Z77HwEG5kdS1E8StgFc9bzFb8dBrNtukxgLwOAXNEF6T/pAce8zSeDhknXbuUNMQRUHe/BrMNX+BNGyHIdBT45m6VVn36/FqX5cOFHmMwUYJrE5x+CgkuEujLe+361ubLS+HhowzeYtEC8NzWyXy5ValMpHgSCZyRxgsLxpui4Ij4/ShZ1S0aiurS18sSznJoOeDt29AaP6t6pLgMTV5gJgsHTddhvEWBwC9Y6AZww8AFA4Lp1xDac9nxuAYZ37aQuqGgIbPTt+t3tluNppw0jyXq4AhnV2ZkG0PAKR8b5UMiaDSicxOU5N7gCGSXRvMLAygPgB3Jv0vOXP4wSR9O1cAgzMzFxvXDR6hYlK5cd6u93eS2pw3LrcAhy38bTeV4BCkgpQAQoJCOWaQAUoJCCUawIVoJCAUK4JVIBCAkL5L1yapyGdIBwvAAAAAElFTkSuQmCC" alt data-v-4722a3ae></div></div><!----><!----><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor-user-right-rank" data-v-3d3affee><div class="el-tabs el-tabs--top" data-v-3d3affee><div class="el-tabs__header is-top"><div class="el-tabs__nav-wrap is-top"><div class="el-tabs__nav-scroll"><div role="tablist" class="el-tabs__nav is-top" style="transform:translateX(-0px);"><div class="el-tabs__active-bar is-top" style="width:0px;transform:translateX(0px);ms-transform:translateX(0px);webkit-transform:translateX(0px);"></div></div></div></div></div><div class="el-tabs__content"><div role="tabpanel" id="pane-integral" aria-labelledby="tab-integral" class="el-tab-pane" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-3" aria-labelledby="tab-3" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-5" aria-labelledby="tab-5" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-6" aria-labelledby="tab-6" class="el-tab-pane" style="display:none;" data-v-3d3affee></div></div></div> <div class="floor-user-right-rank-score" data-v-608528ce data-v-3d3affee><div class="floor-user-right-rank-score-tabs" data-v-608528ce><ul data-v-608528ce><li data-v-608528ce> 近7日 </li><li data-v-608528ce> 近30日 </li><li class="active" data-v-608528ce> 至今 </li></ul></div> <div class="floor-user-right-rank-common" data-v-46cf600d data-v-608528ce><div class="rank-list" data-v-46cf600d><!----> <div class="no-data loading" data-v-46cf600d><i class="el-icon-loading" data-v-46cf600d></i> <p data-v-46cf600d>加载中</p></div> <!----> <a href="https:///php/rank/list/total" target="_blank" class="show-more" data-v-46cf600d> 查看更多榜单 </a></div></div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor comunity-rule" data-v-3cfa4dbd><div class="title" data-v-3cfa4dbd> 社区公告 </div> <div class="contain" data-v-3cfa4dbd><div class="inner-content" data-v-3cfa4dbd>暂无公告</div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="user-right-adimg empty-arr" data-v-15c6aa4f><div class="adImgs" data-v-2a6389b9 data-v-15c6aa4f><!----> <div data-v-2a6389b9><div data-v-2a6389b9></div></div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="ai-entrance" data-v-eb1c454c><p data-v-eb1c454c>试试用AI创作助手写篇文章吧</p> <div class="entrance-btn-line" data-v-eb1c454c><a href="https://mp.csdn.net/edit?guide=1" target="_blank" data-report-click="{"spm":"3001.9712"}" data-report-query="spm=3001.9712" class="entrance-btn" data-v-eb1c454c>+ 用AI写文章</a></div></div></div></div></div></div></div></div></div></div> <!----></div></div></div> <div> <script type="text/javascript" src="https://g.csdnimg.cn/common/csdn-footer/csdn-footer.js" data-isfootertrack="false" defer></script> </div></div></div><script> window.__INITIAL_STATE__= {"csrf":"oZxmxgBn-5Q3HHJ4n86FrRSy9d-qMuzyfLio","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_36287182540-1752533965644-446485; csrfToken=aE1nH7KI4Por20dR7qwQJxZx; uuid_tt_dd=10_36287182540-1752533965644-446485; dc_sid=a0fbfd3a84bccc84e2dcd0b150474700; dc_session_id=10_1752533965644.980617","ip":"216.73.216.174","pageData":{"page":{"pageId":143,"title":"社区详情","keywords":"社区详情","description":"社区详情","ext":{"isMd":"true","armsfe1":"{pid:\"dyiaei5ihw@1a348e4d05c2c78\",appType:\"web\",imgUrl:\"https:\u002F\u002Farms-retcode.aliyuncs.com\u002Fr.png?\",sendResource:true,enableLinkTrace:true,behavior:true}","redPacketCfg":"{\"presetTitle\":[\"成就一亿技术人!\",\"大吉大利\",\"节日快乐\",\"Bug Free\",\"Hello World\",\"Be Greater Than Average!!\"],\"defaultTitle\":\"成就一亿技术人!\",\"preOpenSty\":{},\"redCardSty\":{}}","blogStar":"[{\"year\":\"2021\",\"enable\":true,\"communityIds\":[3859],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2021\"},{\"year\":\"2022\",\"enable\":true,\"communityIds\":[3860],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2022\"}]","mdVersion":"https:\u002F\u002Fcsdnimg.cn\u002Frelease\u002Fmarkdown-editor\u002F1.1.0\u002Fmarkdown-editor.js","componentSortCfg":"{ \"right\":[\"ratesInfo\",\"cty-profile\",\"pub-comp\",\"user-right-introduce\",\"post-event\",\"my-mission\", \"user-right-rank\",\"user-right-rule\",\"user-right-adimg\"] }","showCknowDetail":"{\"show\":true,\"reportView\":true,\"url\":\"https:\u002F\u002Fai.csdn.net\u002Fhomework?utm_source=cknow_bbs_detail\",\"spm\":\"1035.2022.3001.10801\"}","show_1024":"{\"enable\":false,\"useWhitelist\":false,\"whitelist\":[76215],\"home\":\"https:\u002F\u002F1111.csdn.net\u002F\",\"logo\":\"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221104102741.png\",\"hideLive\":true}","iframes":"[\"3859\"]","pageCfg":"{\"disableDownloadPDF\": false,\"hideSponsor\":false}"}},"template":{"templateId":71,"templateComponentName":"ccloud-detail","title":"ccloud-detail","floorList":[{"floorId":562,"floorComponentName":"floor-user-content","title":"社区详情页","description":"社区详情页","indexOrder":3,"componentList":[{"componentName":"baseInfo","componentDataId":"cloud-detail1","componentConfigData":{},"relationType":3},{"componentName":"user-right-introduce","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-recommend","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rank","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rule","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-adimg","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"default2014LiveRoom","componentDataId":"20221024DefaultLiveRoom","componentConfigData":{},"relationType":3}]}]},"data":{"baseInfo":{"customDomain":"","uriName":"php","communityHomePage":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002Fphp","owner":{"userName":"community_6","nickName":"开源资源社区","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","position":"","companyName":""},"user":{"userRole":3,"userName":null,"nickName":null,"avatarUrl":null,"rank":null,"follow":2,"communityBase":null,"joinCollege":null,"isVIP":null},"community":{"name":"PHP","description":"“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。","avatarUrl":"https:\u002F\u002Fimg-community.csdnimg.cn\u002Favatar\u002Fcc5e4fe8f177499588cb75b2298ba739.png?x-oss-process=image\u002Fresize,m_fixed,h_88,w_88","qrCode":"","createTime":"2008-08-27","communityAvatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","communityNotice":null,"userCount":20398,"contentCount":19656,"followersCount":9005,"communityRule":"","communityId":125,"bgImage":"","hashId":"dewq66nl","domain":"","uriName":"php","externalDisplay":1,"adBanner":{"img":"","url":"","adType":0,"adCon":null},"rightBanner":{"img":"","url":"","adType":0,"adCon":null},"tagId":null,"tagName":null,"communityType":1,"communityApplyUrl":"https:\u002F\u002Fmarketing.csdn.net\u002Fquestions\u002FQ2106040308026533763","joinType":0,"visibleType":0,"collapse":0,"topicMoveAble":0,"allowActions":{},"communityOwner":"community_6","tagNameInfo":{"provinceTag":null,"areaTag":null,"technologyTags":[{"id":45,"name":"php"},{"id":134720,"name":"phpstorm"}],"customTags":[{"id":6,"name":"技术论坛(原bbs)"}]}},"tabList":[{"tabId":1284,"tabName":"全部","tabUrl":"","tabSwitch":1,"tabType":4,"tabContribute":0,"cardType":0,"indexOrder":-1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002Fphp?typeId=1284","iframe":false,"sortType":1},{"tabId":867,"tabName":"问答","tabUrl":"https:\u002F\u002Fask.csdn.net\u002Flist\u002F17","tabSwitch":1,"tabType":0,"tabContribute":0,"indexOrder":0,"iframe":true,"sortType":1},{"tabId":4055729,"tabName":"博文收录","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":19,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002Fphp?typeId=4055729","iframe":false,"sortType":1},{"tabId":1638775,"tabName":"Ada助手","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002Fphp?typeId=1638775","iframe":false,"sortType":1}],"dataResource":{"mediaType":"c_cloud","subResourceType":"8_c_cloud_long_text","showType":"long_text","tabId":0,"communityName":"PHP","communityHomePageUrl":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002Fphp","communityType":1,"content":{"id":"370173550","contentId":370173550,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F370173550","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F370173550","createTime":"2011-09-06 12:59:50","updateTime":"2021-05-28 18:41:38","resourceUsername":"binglingxiaolingling","best":0,"top":0,"text":null,"publishDate":"2011-09-06","lastReplyDate":"2011-09-06","type":"13","nickname":"binglingxiaolingling","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F1d6f1b4e89ed4064a0ab0c5e8c5c7a75_binglingxiaolingling.jpg!1","username":"binglingxiaolingling","commentCount":2,"diggNum":0,"digg":false,"viewCount":224,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":"为何Ext 中的panel中的grid不显示呢?当点击好几次的时候才出现,而且还是重复的呢?","insertFirst":false,"likeInfo":null,"description":"第一次点击一个按钮“优化”调用下面的方法, var widgetarr=new Array(\"weblist\",\"webrsslist\",\"newslist\",\"bloglist\",\"booklist\",\"piclist\",\"videolist\",\"relatedlist\",\"wikilist\",\"saylist\",\"historylist\",\"bbslist\",\"tiebalist\",\"wikiknowledgelist\",\"minibloglist\",\"rsslist\"); var wige","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221027055727.png","content":"第一次点击一个按钮“优化”调用下面的方法,\u003Cbr \u002F\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-JScript\"\u003Evar widgetarr=new Array("weblist","webrsslist","newslist","bloglist","booklist","piclist","videolist","relatedlist","wikilist","saylist","historylist","bbslist","tiebalist","wikiknowledgelist","minibloglist","rsslist");\u003Cbr \u002F\u003E\nvar wiget_typeid=0;\u003Cbr \u002F\u003E\nvar wiget_kid=0;\u003Cbr \u002F\u003E\nvar wiget_keyword='';\u003Cbr \u002F\u003E\nvar wiget_cid=0;\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\nvar seoPanel=function(id,keyword,cid){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\twiget_kid=id;\u003Cbr \u002F\u003E\n\t wiget_keyword=keyword;\u003Cbr \u002F\u003E\n\t wiget_cid=cid;\u003Cbr \u002F\u003E\n\t\t\u002F\u002Falert(wiget_cid);\u003Cbr \u002F\u003E\n\t\u002F\u002Frecord,数据记录,用在store中\u003Cbr \u002F\u003E\n\t\u002F\u002F通过Ext.data.Record.create创建\u003Cbr \u002F\u003E\n\t\u002F\u002F创建的数据形式为{name:'id',type:'text'}\u003Cbr \u002F\u003E\n\t\u002F\u002F与jsonStore下data中存储的数组形式对应\u003Cbr \u002F\u003E\n\tvar widgetRecord=Ext.data.Record.create([\u003Cbr \u002F\u003E\n\t {name:'id'},{name:'wtname'},{name:'tid'},{name:'author'},{name:'mininfo'},{name:'maxinfo'},{name:'mininterval'},\u003Cbr \u002F\u003E\n\t {name:'create_time'},{name:'update_time'},{name:'typeid'},{name:'ctablenum'},{name:'memcachesavenum'},{name:'roleid'}\t\t \t\u003Cbr \u002F\u003E\n\t]);\u003Cbr \u002F\u003E\n\t\u002F\u002F widgetstore\u003Cbr \u002F\u003E\n\tvar widgetStore=new Ext.data.Store({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t id:'widgetstore',\u003Cbr \u002F\u003E\n\t\t url:urlbase+'searchsource\u002Fsearchsourceinterface\u002Fid:'+id+'\u002Fkeyword:'+keyword+'\u002Fcid:'+cid,\u003Cbr \u002F\u003E\n\t\t reader:new Ext.data.JsonReader({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t \t\turl:urlbase+'searchsource\u002Fsearchsourceinterface\u002Fid:'+id+'\u002Fkeyword:'+keyword+'\u002Fcid:'+cid,\u002F\u002F默认的数据源地址,继承时需要提供\u003Cbr \u002F\u003E\n\t \t\troot: "rows",\u003Cbr \u002F\u003E\n\u002F\u002F\t\t\t\t\ttotalProperty:"totalCount",\u003Cbr \u002F\u003E\n\t\t\t\t},widgetRecord),\u003Cbr \u002F\u003E\n\t\t\tremoteSort:true, \u003Cbr \u002F\u003E\n\t\t});\u003Cbr \u002F\u003E\n\twidgetStore.load({callback :function(r,options,success){ \u003Cbr \u002F\u003E\n\t\t\u002F\u002Fvar ctablenum=r[0].get('ctablenum');\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\t\t\u002F\u002FweblistPanel=weblistPanel(id,cid,1,ctablenum,keyword);\u003Cbr \u002F\u003E\n\t\t\u002F\u002FwebrsslistPanel=webrsslistPanel(id,cid,2,ctablenum,keyword);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tnewslistPanel=newslistPanel(id,cid,3,ctablenum,keyword);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tbloglistPanel=bloglistPanel(id,cid,4,ctablenum,keyword);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tbooklistPanel=booklistPanel(id,cid,5,ctablenum,keyword);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tpiclistPanel=piclistPanel(id,cid,6,ctablenum,keyword);\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\t\t\u002F\u002FseoPanel1.add(weblistPanel);\u003Cbr \u002F\u003E\n\t\t\u002F\u002FseoPanel1.add(webrsslistPanel);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tseoPanel1.add(newslistPanel);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tseoPanel1.add(bloglistPanel);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tseoPanel1.add(booklistPanel);\u003Cbr \u002F\u003E\n\u002F\u002F\t\tseoPanel1.add(piclistPanel);\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\t\u002F*\t*\u002F\u003Cbr \u002F\u003E\n\t\t\u002F\u002FseoPanel1.add({title:'11',html:'sssss'});\u003Cbr \u002F\u003E\n\t\t\tfor(var i=0;i<6;i++)\u003Cbr \u002F\u003E\n\t\t\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\u002F\u002Falert(r[i].get('id'));\u003Cbr \u002F\u003E\n\t\t\t\tvar typeid=r[i].get('typeid');\u003Cbr \u002F\u003E\n\t\t\t\tvar cid=r[i].get('cid');\u003Cbr \u002F\u003E\n\t\t\t\tvar wigetId=r[i].get('id');\u003Cbr \u002F\u003E\n\t\t\t\tvar ctablenum=r[i].get('ctablenum');\u003Cbr \u002F\u003E\n\t\t\t\tvar wtname=r[i].get('wtname');\u003Cbr \u002F\u003E\n\t\t\t\tvar panel=getPanelName(wigetId,id,cid,typeid,ctablenum,wtname,keyword);\u003Cbr \u002F\u003E\n\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\tif(i==0)\u003Cbr \u002F\u003E\n\t\t\t\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\u002F\u002Falert("-------------");\u003Cbr \u002F\u003E\n\t\t\t\t\tweblistPanel=weblistPanel_bak(id,cid,typeid,ctablenum,keyword,panel);\u003Cbr \u002F\u003E\n\t\t\t\t\t\u002F\u002Falert(weblistPanel.id);\u003Cbr \u002F\u003E\n\t\t\t\t\t\u002F\u002Fpanel.add(weblistPanel);\u003Cbr \u002F\u003E\n\t\t\t\t\t\u002F\u002Fpanel.add({tile:'11',html:'sssss'});\u003Cbr \u002F\u003E\n\t\t\t\t}\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\t\t\t\u002F\u002Fpanel.add({title:'11',html:'sssss'});\u003Cbr \u002F\u003E\n\t\t\t\t\u002F\u002Falert(i);\u003Cbr \u002F\u003E\n\t\t\t\t\u002F\u002Falert(panel.id);\u003Cbr \u002F\u003E\n\t\t\t\tseoPanel1.add(panel);\u003Cbr \u002F\u003E\n\t\t\t\tseoPanel1.doLayout();\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t}\u003Cbr \u002F\u003E\n\t \u003Cbr \u002F\u003E\n\t\t}\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\t});\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\tfunction getPanelName(id,kid,cid,typeid,ctablenum,wtname,keyword)\u003Cbr \u002F\u003E\n\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\u002F*\u003Cbr \u002F\u003E\n\t\tvar item;\u003Cbr \u002F\u003E\n\t\tif(id==1)\u003Cbr \u002F\u003E\n\t\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\titem=[{title:'1111',html:'2222222'}];\u003Cbr \u002F\u003E\n\t\t}\u003Cbr \u002F\u003E\n\t\t*\u002F\u003Cbr \u002F\u003E\n\t\tvar seoPanel3=new Ext.Panel({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\tid:"w_widgetPanel"+id,\u003Cbr \u002F\u003E\n\u002F\u002F\t\t\tactiveItem:1,\u003Cbr \u002F\u003E\n\t\t\ttitle:wtname,\u003Cbr \u002F\u003E\n\t\t\tregion : 'center',\u003Cbr \u002F\u003E\n\t\t\tautoHeight:true,\u003Cbr \u002F\u003E\n\t\t\tmargins : '0 5 5 0',\u003Cbr \u002F\u003E\n\t\t\t\u002F\u002FresizeTabs : true,\u003Cbr \u002F\u003E\n\t\t\tminTabWidth : 50,\u003Cbr \u002F\u003E\n\t\t\ttabWidth : 85,\u003Cbr \u002F\u003E\n\t\t\tenableTabScroll : true,\u003Cbr \u002F\u003E\n\t\t\tclosable:true,\u003Cbr \u002F\u003E\n\t\t\tlayout:'fit',\u003Cbr \u002F\u003E\n\t\t\t\u002F\u002F调用其他微件加载事件\u003Cbr \u002F\u003E\n\t\t\tparam1:kid,\u003Cbr \u002F\u003E\n\t\t\tparam2:cid,\u003Cbr \u002F\u003E\n\t\t\tparam3:typeid,\u003Cbr \u002F\u003E\n\t\t\tparam4:ctablenum,\u003Cbr \u002F\u003E\n\t\t\tparam5:keyword,\u003Cbr \u002F\u003E\n\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\u002F\u002F listeners: {activate: handleActivate},\u003Cbr \u002F\u003E\n\t\t\tlisteners: {activate: handleActivate},\u003Cbr \u002F\u003E\n\t\t\t \u003Cbr \u002F\u003E\n\t\t\t\u002F\u002Fitems:[{title:'1111',html:'2222222'}]\u003Cbr \u002F\u003E\n\u002F\u002F\t\t\titems:item\u003Cbr \u002F\u003E\n\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\t});\u003Cbr \u002F\u003E\n\t\treturn seoPanel3;\u003Cbr \u002F\u003E\n\t}\u003Cbr \u002F\u003E\n\t function handleActivate(tab){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \u002F\u002Falert(tab.param1+tab.id+ ' was activated.');\u003Cbr \u002F\u003E\n\t var id=tab.param1;\u003Cbr \u002F\u003E\n\t var cid=tab.param2;\u003Cbr \u002F\u003E\n\t var typeid=tab.param3;\u003Cbr \u002F\u003E\n\t var ctablenum=tab.param4;\u003Cbr \u002F\u003E\n\t var keyword=tab.param5;\u003Cbr \u002F\u003E\n\t \u002F\u002F alert(id);\u003Cbr \u002F\u003E\n\t \u002F\u002Fgei 全局的typeid,kid,keyword,cid赋值\u003Cbr \u002F\u003E\n\t wiget_typeid=typeid;\u003Cbr \u002F\u003E\n\t\t\u002F\u002Ftab\u003Cbr \u002F\u003E\n\t\t\u002F\u002Ftab.removeAll();\t\u003Cbr \u002F\u003E\n\t \tpanel=weblistPanel_bak(id,cid,typeid,ctablenum,keyword,tab);\t\u003Cbr \u002F\u003E\n\t\ttab.doLayout();\t\t\u003Cbr \u002F\u003E\n\t\t\u002F\u002FseoPanel1.add(panel);\u003Cbr \u002F\u003E\n\t\t\u002F\u002FseoPanel1.doLayout();\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\tvar seoPanel1=new Ext.TabPanel({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\tid:"widgetPanel",\u003Cbr \u002F\u003E\n\t\ttitle:"关键词优化",\u003Cbr \u002F\u003E\n\t\tregion : 'center',\u003Cbr \u002F\u003E\n\t\tautoHeight:true,\u003Cbr \u002F\u003E\n\t\tmargins : '0 5 5 0',\u003Cbr \u002F\u003E\n\t\t\u002F\u002FresizeTabs : true,\u003Cbr \u002F\u003E\n\t\t\u002F\u002FminTabWidth : 50,\u003Cbr \u002F\u003E\n\t\ttabWidth : 85,\u003Cbr \u002F\u003E\n\t\tenableTabScroll : true,\u003Cbr \u002F\u003E\n\t\tactiveTab :0,\u003Cbr \u002F\u003E\n\t\tclosable:true,\u003Cbr \u002F\u003E\n\t\tlayoutOnTabChange:true,\t\t\u003Cbr \u002F\u003E\n\t\tdeferredRender :false\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t});\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\tvar panel = new Ext.Panel({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\ttitle:'关键词优化',\u003Cbr \u002F\u003E\n\t\tregion:'center',\u003Cbr \u002F\u003E\n\t\theight:500,\u003Cbr \u002F\u003E\n\t\tautoScroll:true,\u003Cbr \u002F\u003E\n\t\tclosable:true,\u003Cbr \u002F\u003E\n\t\ttbar:new Ext.Toolbar([\u003Cbr \u002F\u003E\n\t\t {xtype:'hidden',name:'typeid'},\u003Cbr \u002F\u003E\n\t\t \t '->',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'审批模式',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'shenpiIconCss',\u003Cbr \u002F\u003E\n\t\t \t \thandler:function(){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\talert(wiget_typeid+"----"+wiget_keyword+"----"+wiget_kid+'---'+wiget_cid);\u003Cbr \u002F\u003E\n\t\t \t \t\t\u002F\u002Fvar panel=Ext.getCmp('')\u003Cbr \u002F\u003E\n\t\t \t \t}\u003Cbr \u002F\u003E\n\t\t \t \t\t\u003Cbr \u002F\u003E\n\t\t \t },'-',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'参数模式',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'canshuIconCss',\t\u003Cbr \u002F\u003E\n\t\t \t },'-',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'预览',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'bqylIconCss',\u003Cbr \u002F\u003E\n\t\t \t },'-',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'提交',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'bqtjIconCss',\t\u003Cbr \u002F\u003E\n\t\t \t },'-',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'保存',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'bqbcIconCss',\t\u003Cbr \u002F\u003E\n\t\t \t },'-',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'上一词',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'shangyiciIconCss',\u003Cbr \u002F\u003E\n\t\t \t },'-',\u003Cbr \u002F\u003E\n\t\t \t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t \ttext:'下一词',\u003Cbr \u002F\u003E\n\t\t \t \ticonCls:'xiayiciIconCss',\t\u003Cbr \u002F\u003E\n\t\t \t }\u003Cbr \u002F\u003E\n\t\t \t ]),\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\t\titems:[seoPanel1]\u003Cbr \u002F\u003E\n\t});\u003Cbr \u002F\u003E\n\u002F\u002F\tweblistPanel=weblistPanel();\u003Cbr \u002F\u003E\n\u002F\u002F\tseoPanel1.add(weblistPanel);\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\u002F\u002F\treturn seoPanel1;\u003Cbr \u002F\u003E\n\treturn panel;\u003Cbr \u002F\u003E\n}\u003Cbr \u002F\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n","mdContent":null,"pictures":null,"videoInfo":null,"linkInfo":null,"student":{"isCertification":false,"org":"","bala":""},"employee":{"isCertification":false,"org":"","bala":""},"userCertification":[],"dependId":"0","dependSubType":null,"videoUrl":null,"favoriteCount":0,"favoriteStatus":false,"taskType":null,"defaultScore":null,"syncAsk":false,"videoPlayLength":null},"communityUser":{"userName":"binglingxiaolingling","roleId":130,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F18.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F1d6f1b4e89ed4064a0ab0c5e8c5c7a75_binglingxiaolingling.jpg!1","nickname":"binglingxiaolingling","selfdesc":"工作10年,做过管理,系统开发,自主建站,小程序,微信公众号,飞书对接,IM畅聊,熟悉语言PHP ,GO,Python,JAVA,随着公司业务不断状态,前端框架vue,node.js得以上手,以及使用RPA技术解决频繁的人力成本问题等等。关于技术、业务问题,直接可以私聊我。","createdate":"2007-12-07 22:24:00","days":"6430","years":"18","username":"binglingxiaolingling","school":null,"company":null,"job":null},"userName":"binglingxiaolingling","event":"创建了帖子","body":"2011-09-06 12:59","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":2,"total":0,"list":[{"hit":null,"hitMsg":null,"content":"\u003Cpre\u003E\u003Ccode class=\"language-JScript\"\u003E initComponent : function(){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\t\t\t \t\u003Cbr \u002F\u003E\n\t\t\t\t\t\tthis.sm = new Ext.grid.CheckboxSelectionModel();\u003Cbr \u002F\u003E\n\t\t\t\t\t\tthis.cm = new Ext.grid.ColumnModel([ \u003Cbr \u002F\u003E\n \t\t\t \t\t \u002F\u002Fnew Ext.grid.RowNumberer(),\u002F\u002F获得行号\u003Cbr \u002F\u003E\n \t\t\t \t\t this.sm,\u003Cbr \u002F\u003E\n \t\t\t \t\t {header: "标题", width: 300, dataIndex:"title",align:'center'},\u003Cbr \u002F\u003E\n \t\t\t \t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \theader: "创建时间",\u003Cbr \u002F\u003E\n \t\t\t \t\t \twidth: 130,\u003Cbr \u002F\u003E\n \t\t\t \t\t \tdataIndex:"create_time",\u003Cbr \u002F\u003E\n \t\t\t \t\t \talign:'center',\u003Cbr \u002F\u003E\n \t\t\t \t\t \trenderer:function(value){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar time=new Date(value*1000);\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\treturn time.format("Y-m-d H:i");\u003Cbr \u002F\u003E\n \t\t\t \t\t \t}\u003Cbr \u002F\u003E\n \t\t\t \t\t },\u003Cbr \u002F\u003E\n \t\t\t \t\t {header: "审批时间",width: 130, dataIndex:"update_time",align:'center'},\u003Cbr \u002F\u003E\n \t\t\t \t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \theader: "状态",\u003Cbr \u002F\u003E\n \t\t\t \t\t \twidth: 80,\u003Cbr \u002F\u003E\n \t\t\t \t\t \tdataIndex:"isnew",\u003Cbr \u002F\u003E\n \t\t\t \t\t \talign:'center',\u003Cbr \u002F\u003E\n \t\t\t \t\t \trenderer:function(value,meta,record){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar isjing=record.get('isjing');\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar isnew=record.get('isnew');\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar isdig=record.get('isdig');\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar dingtime=record.get('dingtime');\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar jingtime=record.get('jingtime');\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tvar str='';\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\t\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\tif(isdig==1){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\t\tstr=dingtime;\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\t}else if(isjing==1)\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\t\tstr=jingtime;\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\t}\u003Cbr \u002F\u003E\n \t\t\t \t\t \t\treturn str;\u003Cbr \u002F\u003E\n \t\t\t \t\t \t}\u003Cbr \u002F\u003E\n \t\t\t \t\t },\u003Cbr \u002F\u003E\n \t\t\t \t\t new Ext.grid.RowNumberer({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t \theader:'行号',\u003Cbr \u002F\u003E\n \t\t\t \t\t \twidth:40,\u003Cbr \u002F\u003E\n \t\t\t \t\t \taligh:'center'\u003Cbr \u002F\u003E\n \t\t\t \t\t }),\u002F\u002F获得行号\u003Cbr \u002F\u003E\n \t\t\t \t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\theader:"操作",\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\twidth:250,\u003Cbr \u002F\u003E\n\u002F\u002F\t\t\t\t\t\t \t\t\t\t\t dataIndex:'roleid',\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t renderer: function (value, meta, record) { \u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t \u002F\u002F在这里定义了4个操作,分别赋予不同的css class以便区分 \u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t var formatStr='';\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t \tformatStr="<a href='javascript:void({0});' onclick='javscript:return false;' class='alarm_check'>修改<\u002Fa> | <a href='javascript:void({1});' onclick='javscript:return false;' class='alarm_remove'>删除<\u002Fa> ";\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t \tformatStr+="| <a href='javascript:void({0});' onclick='javscript:return false;' class='alarm_jing'>加精<\u002Fa> | <a href='javascript:void({1});' onclick='javscript:return false;' class='alarm_ding'>置顶<\u002Fa> ";\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t \tformatStr+="| <a href='javascript:void({0});' onclick='javscript:return false;' class='alarm_up'>上移<\u002Fa> | <a href='javascript:void({1});' onclick='javscript:return false;' class='alarm_down'>下移<\u002Fa> ";\u003Cbr \u002F\u003E\n \t\t\t \u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t var resultStr = String.format(formatStr, record.get('id'), record.get('id'), record.get('id')); \u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t\t return "<div class='controlBtn'>" + resultStr + "<\u002Fdiv>"; \u003Cbr \u002F\u003E\n \t\t\t \t\t\t\t }.createDelegate(this),\u003Cbr \u002F\u003E\n \t\t\t \t\t\u003Cbr \u002F\u003E\n \t\t\t \t\t\t\talign:'center'\u003Cbr \u002F\u003E\n \t\t\t \t\t \t} \t\t\u003Cbr \u002F\u003E\n \t\t\t \t\t]);\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\u002F\u002Frecord,数据记录,用在store中\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\u002F\u002F通过Ext.data.Record.create创建\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\u002F\u002F创建的数据形式为{name:'id',type:'text'}\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\u002F\u002F与jsonStore下data中存储的数组形式对应\u003Cbr \u002F\u003E\n\t\t\t\t\t\tthis.record=recordname;\u003Cbr \u002F\u003E\n\t\t\t\t\t \tthis.store=storename;\u003Cbr \u002F\u003E\n\t\t \u003Cbr \u002F\u003E\n\t\t\t\t\t\t panelname.superclass.initComponent.call(this); \u002F\u002F调用基类的方法\t\t \u003Cbr \u002F\u003E\n\t\t\t }\u003Cbr \u002F\u003E\n\t\t\t\t});\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\tpanelname1=new panelname();\u003Cbr \u002F\u003E\n\u002F\u002F\t\t\t\tpanelname=new Ext.Panel({title:'title'+i});\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\tpanelObj.add(panelname1);\u003Cbr \u002F\u003E\n\t\t\t}\u003Cbr \u002F\u003E\n\t\t\u003Cbr \u002F\u003E\n\t});\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\t\u003Cbr \u002F\u003E\n\treturn panelObj;\u003Cbr \u002F\u003E\n}\u003Cbr \u002F\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n请问怎么解决呢?","topicTitle":null,"description":" initComponent : function(){ this.sm = new Ext.grid.CheckboxSelectionModel(); this.cm = new Ext.grid.ColumnModel([ \u002F\u002Fnew Ext.grid.RowNumberer(),\u002F\u002F获得行号 this.sm, {header: \"标题\", width: 300, dataIndex:\"title\",align:'center'}, { header: \"创建时间\", width: 130","id":380660502,"contentResourceId":370173550,"bindContentResourceId":0,"communityId":125,"username":"binglingxiaolingling","userNickName":"binglingxiaolingling","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F1d6f1b4e89ed4064a0ab0c5e8c5c7a75_binglingxiaolingling.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3715792161,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2011-09-06 01:01:43","updateTime":"2011-09-06 01:02:14","formatTime":"2011-09-06","userRoleHonorary":{"userName":"binglingxiaolingling","roleId":130,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"显示出来几个panel\u003Cbr \u002F\u003E\n但是在此调用panel中的数据就是不显示,不知道代码哪里错了????\u003Cbr \u002F\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-JScript\"\u003EweblistPanel_bak=function(id,cid,typeid,ctablenum,keyword,panelObj){\t\u003Cbr \u002F\u003E\n\tvar record=new Ext.data.Record.create([\u003Cbr \u002F\u003E\n \t {name:'md5'}\t\t\t \t\u003Cbr \u002F\u003E\n \t]);\u003Cbr \u002F\u003E\n\tvar store=new Ext.data.Store({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t \tid:'webliststore',\u003Cbr \u002F\u003E\n\t\turl:urlbase+'searchsource\u002Fgetweblistmd5ext\u002Fid:'+id+'\u002Ftypeid:'+typeid,\u003Cbr \u002F\u003E\n\t\treader:new Ext.data.JsonReader({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t \t\turl:urlbase+'searchsource\u002Fgetweblistmd5ext\u002Fid:'+id+'\u002Ftypeid:'+typeid,\u002F\u002F默认的数据源地址,继承时需要提供\u003Cbr \u002F\u003E\n\t \t\troot: "rows",\u003Cbr \u002F\u003E\n\t\t\ttotalProperty:"totalCount",\u003Cbr \u002F\u003E\n\t\t\t},record),\u003Cbr \u002F\u003E\n\t\tremoteSort:true, \u003Cbr \u002F\u003E\n\t});\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\tstore.load({callback :function(r,options,success){ \u003Cbr \u002F\u003E\n\t\t\t\tvar length=r.length;\u003Cbr \u002F\u003E\n\t\t\t\t\u002F\u002Falert(r.length);\u003Cbr \u002F\u003E\n\t\t\t\tvar i = 0;\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\tvar md5=r[i].get('md5');\u003Cbr \u002F\u003E\n\t\t\t\tvar recordname='record'+i;\u003Cbr \u002F\u003E\n\t\t\t\tvar storename='store'+i;\u003Cbr \u002F\u003E\n\t\t\t\tvar panelname='panel'+i;\u003Cbr \u002F\u003E\n\t\t\t\tvar smname='sm'+i;\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\tsmname = new Ext.grid.CheckboxSelectionModel();\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\trecordname=new Ext.data.Record.create([\u003Cbr \u002F\u003E\n\t \t {name:'id'},{name:'title'},{name:'url'},{name:'description'},{name:'create_time'},{name:'update_time'},{name:'md5'},\u003Cbr \u002F\u003E\n\t \t {name:'isnew'},{name:'isdig'},{name:'isjing'},{name:'dingtime'},{name:'jingtime'},{name:'displayorder'},{name:'kid'},{name:'tablename'}\t\t\t \t\u003Cbr \u002F\u003E\n\t \t]);\u003Cbr \u002F\u003E\n\t\t\t\tstorename=new Ext.data.Store({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t \tid:'webliststore',\u003Cbr \u002F\u003E\n\t\t\t\t\turl:urlbase+'searchsource\u002Fgetweblistext\u002Fid:'+id+'\u002Fcid:'+cid+'\u002Ftypeid:'+typeid+'\u002Fctablenum:'+ctablenum+'\u002Fkeyword:'+keyword+'\u002Fmd5:'+md5,\u003Cbr \u002F\u003E\n\t\t\t\t\treader:new Ext.data.JsonReader({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t \t\turl:urlbase+'searchsource\u002Fgetweblistext\u002Fid:'+id+'\u002Fcid:'+cid+'\u002Ftypeid:'+typeid+'\u002Fctablenum:'+ctablenum+'\u002Fkeyword:'+keyword+'\u002Fmd5:'+md5,\u002F\u002F默认的数据源地址,继承时需要提供\u003Cbr \u002F\u003E\n\t\t\t\t \t\troot: "rows",\u003Cbr \u002F\u003E\n\t\t\t\t\t\ttotalProperty:"totalCount",\u003Cbr \u002F\u003E\n\t\t\t\t\t\t},recordname),\u003Cbr \u002F\u003E\n\t\t\t\t\t\u002F\u002FremoteSort:true, \u003Cbr \u002F\u003E\n\t\t\t\t});\t\u003Cbr \u002F\u003E\n\t\t\t\tstorename.load();\u003Cbr \u002F\u003E\n\t\t\t\t\u002F\u002Falert(4545);return;\u003Cbr \u002F\u003E\n\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\tpanelname=Ext.extend(Ext.widget.CrudPanel,{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\tid:'weblistgr'+md5,\u003Cbr \u002F\u003E\n\t\t\t\t\ttitle:"<font size=3 color='blue'>正在优化"+ keyword +"搜索结果<\u002Ffont>",\u003Cbr \u002F\u003E\n\t\t\t\t\tautoHeight:true,\u003Cbr \u002F\u003E\n\t\t\t\t\tautoScroll:true,\u003Cbr \u002F\u003E\n\t\t\t\t\tcollapsible:true,\u003Cbr \u002F\u003E\n\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\u002F\u002F创建窗口\u003Cbr \u002F\u003E\n\t\t\t \tcreateWin:function()\u003Cbr \u002F\u003E\n\t\t\t \t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\treturn this.initWin(330,240,"加精设置");\u003Cbr \u002F\u003E\n\t\t\t \t},\u003Cbr \u002F\u003E\n\t\t\t \tcreateForm:function(name){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\tvar form = new Ext.form.FormPanel({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\t\tframe:true,\u003Cbr \u002F\u003E\n\t\t\t \t\t\tlabelWidth:70,\u003Cbr \u002F\u003E\n\t\t\t \t\t\tlabelSeparator:':',\u003Cbr \u002F\u003E\n\t\t\t \t\t\tlabelAlign:'right',\u003Cbr \u002F\u003E\n\t\t\t \t \tlayout:'form',\u003Cbr \u002F\u003E\n\t\t\t \t\t\titems:[\u003Cbr \u002F\u003E\n\t\t\t \t\t\t \u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t layout:'column',\u003Cbr \u002F\u003E\n\t\t\t \t\t\t items:[\u003Cbr \u002F\u003E\n\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\t\t layout: 'form',\u003Cbr \u002F\u003E\n\t\t\t \t\t\t items: [new Ext.form.Radio({fieldLabel: '加精状态',boxLabel:'加精', name:'type',checked:true})]\u003Cbr \u002F\u003E\n\t\t\t \t\t\t },\u003Cbr \u002F\u003E\n\t\t\t \t\t\t {items: [new Ext.form.Radio({boxLabel:'不加精', name:'type'})]}\u003Cbr \u002F\u003E\n\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t},\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t layout:'column',\u003Cbr \u002F\u003E\n\t\t\t \t\t\t items:[\u003Cbr \u002F\u003E\n\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\t\t layout: 'form',\u003Cbr \u002F\u003E\n\t\t\t \t\t\t items: [new Ext.form.Radio({fieldLabel: '加精时限',boxLabel:'不限制',inputvalue:1, name:'jingtime',checked:true})]\u003Cbr \u002F\u003E\n\t\t\t \t\t\t }\u003Cbr \u002F\u003E\n\t\t\t \t\t\t \u003Cbr \u002F\u003E\n\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t},{\t\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t\tlayout:'form',\u003Cbr \u002F\u003E\n\t\t\t \t\t\t items: [\u003Cbr \u002F\u003E\n\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t \t\t\t \tlayout: 'form',\u003Cbr \u002F\u003E\n\t\t\t\t \t\t\t \u003Cbr \u002F\u003E\n\t\t\t \t\t\t \t\titems:[\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t \t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t layout:'column',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t items:[\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t layout: 'form',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t items: [new Ext.form.Radio({boxLabel:'1天',inputvalue:2, name:'jingtime'})]\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t },\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t {items: [new Ext.form.Radio({boxLabel:'3天',inputvalue:3, name:'jingtime'})]},\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t {items: [new Ext.form.Radio({boxLabel:'1周',inputvalue:4, name:'jingtime'})]},\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t {items: [new Ext.form.Radio({boxLabel:'1个月',inputvalue:5, name:'jingtime'})]},\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t {items: [new Ext.form.Radio({boxLabel:'3个月',inputvalue:6, name:'jingtime'})]},\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t}\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t\t \t\t\t }\u003Cbr \u002F\u003E\n\u002F\u002F\t\t\t \t\t\t new Ext.form.Radio({fieldLabel: '加精时限',boxLabel:'不限制', name:'jingtime',checked:true})\u003Cbr \u002F\u003E\n\t\t\t \t\t\t ],\u003Cbr \u002F\u003E\n\t\t\t\t\t \t\t\t\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t},{\t\u003Cbr \u002F\u003E\n\t\t\t \t\t\t\t\t\tlayout:'form',\u003Cbr \u002F\u003E\n\t\t \t\t\t items: [\u003Cbr \u002F\u003E\n\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t \t\t\t \tlayout: 'form',\t\t\t \t\t\t \u003Cbr \u002F\u003E\n\t\t \t\t\t \t\titems:[\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t \t\t\t\t\t \t{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t layout:'column',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t items:[\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t layout: 'form',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t items: [new Ext.form.Radio({boxLabel:'自定义', name:'jingtime'})]\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t },\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t xtype:'textfield',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t width:80,\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t id:'jingnum',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t name:'jingnum',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t \u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t },\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t xtype:'combo',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t width:80,\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t id:'jingunit',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t name:'jingunit',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t \u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t \t textAlign:'center',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t hiddenName:'value',\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t \t triggerAction:'all',\u002F\u002F单击触发按钮显示全部数据\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t store:new Ext.data.SimpleStore({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\tfields:['event','value'],\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\tdata:[['小时','1'],['天','2'],['月','3']]\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t }),\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\tdisplayField:'event',\u002F\u002F定义显示的字段\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\tvalueField:'value',\u002F\u002F定义值字段\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\tmode:'local',\u002F\u002F本地模式\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\tforceSelection:true,\u002F\u002F要求输入值必须在列表中存在\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\tresizable:false,\u002F\u002F是否允许改变下拉框大小\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\ttypeAhead:true,\u002F\u002F允许自动选择匹配的剩余部分文本\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\tvalue:'1',\u002F\u002F默认选择的值\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\thandleHeight:10,\u002F\u002F下拉列表中拖动手柄的高度\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t },\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\u003Cbr \u002F\u003E\n\t\t\t\t\t\t\t\t\t \t\t\t\t\t}\u003Cbr \u002F\u003E\n\t\t\t\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t \t\t\t }\u003Cbr \u002F\u003E\n\u002F\u002F\t\t \t\t\t new Ext.form.Radio({fieldLabel: '加精时限',boxLabel:'不限制', name:'jingtime',checked:true})\u003Cbr \u002F\u003E\n\t\t \t\t\t ],\u003Cbr \u002F\u003E\n\t\t\t\t \t\t\t\u003Cbr \u002F\u003E\n\t\t \t\t\t\t\t}\u003Cbr \u002F\u003E\n\t\t\t \t\t\t ]\u003Cbr \u002F\u003E\n\t\t\t \t\t});\u003Cbr \u002F\u003E\n\t\t\t \t\treturn form;\u003Cbr \u002F\u003E\n\t\t\t \t},\u003Cbr \u002F\u003E\n\t\t\t\t \u003C\u002Fcode\u003E\u003C\u002Fpre\u003E","topicTitle":null,"description":"显示出来几个panel 但是在此调用panel中的数据就是不显示,不知道代码哪里错了???? weblistPanel_bak=function(id,cid,typeid,ctablenum,keyword,panelObj){ var record=new Ext.data.Record.create([ {name:'md5'} ]); var store=new Ext.data.Store({ id:'webliststore', url:urlbase+'searchsource\u002Fg","id":380660493,"contentResourceId":370173550,"bindContentResourceId":0,"communityId":125,"username":"binglingxiaolingling","userNickName":"binglingxiaolingling","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F1d6f1b4e89ed4064a0ab0c5e8c5c7a75_binglingxiaolingling.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3715792161,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2011-09-06 01:01:24","updateTime":"2011-09-06 01:01:55","formatTime":"2011-09-06","userRoleHonorary":{"userName":"binglingxiaolingling","roleId":130,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null}],"maxPageSize":3000},"defaultActiveTab":1284,"recommends":[{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657","title":"\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet v2.2.1 (2009-4-1) 值得一看","desc":"\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet v2.2.1\n\t\n\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有JavaScript,没有CSS,没有Update\u003Cem\u003EPanel\u003C\u002Fem\u003E,没有WebServices的Web应用程序。\n\n支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet基于一些开源的程序\u003Cem\u003EExt\u003C\u002Fem\u003EJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Easp.net\u002F\n开源: http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Easpnet.codeplex.com\u002F\n博客: http:\u002F\u002Fsanshi.cnblogs.com\u002F\n邮箱: sanshi.ustc@gmail.com\n\n\n发布历史:\n\n+2010-03-28 v2.2.1\n\t+为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 \n\t\t-修正此函数通过PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript调用时不能正确\u003Cem\u003E显示\u003C\u002Fem\u003EIcon的BUG(feedback:zhaowenke)。\n\t-修正basic\u002Fhello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。\n\t-隐藏示例首页最外层Region\u003Cem\u003EPanel\u003C\u002Fem\u003E的边框ShowBorder=\"false\"。\n\t+集成\u003Cem\u003EExt\u003C\u002Fem\u003Ejs最新版本v3.1.1。\n\t\t-增加一个新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时页面消失的BUG。\n\t\t-删除\u003Cem\u003EPanel\u003C\u002Fem\u003E的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.aspx。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal=\"false\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会弹出确认对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数\u003Cem\u003E中\u003C\u002Fem\u003E的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon=\"Close\",现在需要这样定义Icon=\"SystemClose\"。\n\t-WindowPosition默认居\u003Cem\u003E中\u003C\u002Fem\u003E,而不是黄金分割位置。\n\t+Button, Window等控件弹出位置属性的变化。\n\t\t-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_self\" -\u003E Target=\"Self\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。\n\t\t-Confirm.GetShowReference的最后一个参数target变为枚举类型。\n\t\t-Alert.GetShowReference\u003Cem\u003E中\u003C\u002Fem\u003E的showInParent参数也变为Target枚举类型。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的\u003Cem\u003E显示\u003C\u002Fem\u003E位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成\u003Cem\u003EExt\u003C\u002Fem\u003Ejs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS问题。\n\t-修正\u003Cem\u003EGrid\u003C\u002Fem\u003E的列名\u003Cem\u003E中\u003C\u002Fem\u003E不能包含\u003Cem\u003E中\u003C\u002Fem\u003E文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。\n\t-修正了在\u003Cem\u003EGrid\u003C\u002Fem\u003E的PageIndexChange事件\u003Cem\u003E中\u003C\u002Fem\u003E不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。\n\t-Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行\u003Cem\u003E显示\u003C\u002Fem\u003E,请为第一个按钮设置CssStyle=\"float:left;\"属性。\n\t-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加EnableEdit属性。\n\t-使用Hidden来\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。\n\t-使用Hidden控制Window控件的\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏,Popup已经标记为Obsolete属性。\n\t-Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其\u003Cem\u003E中\u003C\u002Fem\u003E的Close全部改为Hide。\n\t-增加TabStrip\u003Cem\u003E中\u003C\u002Fem\u003ETab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument\u003Cem\u003E中\u003C\u002Fem\u003EIcon属性映射错误(feedback:nopnop9)。\n\t-修正HtmlEditor不能编辑的BUG(feedback:TheBox)。\n\t-修正IE下有时会\u003Cem\u003E出现\u003C\u002Fem\u003E空白页面的情况(feedback:olivia919)。\n\t\n\t\n\n+2009-12-06 v2.1.8\n\t-修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。\n\t-修正了IE下\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的一个JS问题(feedback:lqm4108)。\n\t-修正Alert消息\u003Cem\u003E中\u003C\u002Fem\u003E引号未编码导致的JS错误(feedback:sun1299shine)。\n\t+集成\u003Cem\u003Eext\u003C\u002Fem\u003Ejs3.0.3。\n\t\t-修正弹出对话框的宽度计算错误(会保持最小的状态)。\n\t\t-增加新的皮肤Gray。\n\t-为示例工程添加改变语言和皮肤的下拉列表。\n\t-为PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E增加静态函数Refresh,在切换语言和皮肤时使用。\t\n\n\n\n+2009-12-01 v2.1.7\n\t-增加示例(iframe\u002Fparent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。\n\t-修正一些书写错误(feedback:bmck)。\n\t-从Region控件\u003Cem\u003E中\u003C\u002Fem\u003E删除SplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。\n\t-Border\u003Cem\u003EPanel\u003C\u002Fem\u003E更名为Region\u003Cem\u003EPanel\u003C\u002Fem\u003E。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加\u003Cem\u003E中\u003C\u002Fem\u003E国的省市县三级联动示例(data\u002Fshengshixian.aspx)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程\u003Cem\u003E中\u003C\u002Fem\u003E会\u003Cem\u003E重复\u003C\u002Fem\u003E加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。\n\t-修正了启用AutoPostBack的\u003Cem\u003EGrid\u003C\u002Fem\u003E,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的\u003Cem\u003E点击\u003C\u002Fem\u003E事件(feedback:yymaoji)。\n\t\n\t\n\t\n+2009-11-26 v2.1.6\n\t+修正动态创建\u003Cem\u003EGrid\u003C\u002Fem\u003E列的BUG(feedback:gxpan)。\n\t\t-增加示例(data\u002F\u003Cem\u003Egrid\u003C\u002Fem\u003E_dynamic_columns.aspx)。\n\t-修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如\u003Cem\u003EPanel\u003C\u002Fem\u003E,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。\n\t-重新设计模拟树的下拉列表的实现,避免选\u003Cem\u003E中\u003C\u002Fem\u003E某项后的闪烁。\n\t\t\t\n\n\n+2009-11-21 v2.1.5\n\t+Tree优化。\n\t\t-修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。\n\t\t-GetNodeById更名为FindNode,保持和FindControl一致命名。\n\t\t-删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。\n\t\t-删除ExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。\n\t\t-增加示例(data\u002Ftree_select_run.aspx),如何选\u003Cem\u003E中\u003C\u002Fem\u003E当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的属性NodeId被重命名为NodeID,这是\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet\u003Cem\u003E中\u003C\u002Fem\u003E的一个命名约定。\n\t\t\t-同时更名的还有\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn的ColumnId-\u003EColumnID,GetColumnId-\u003EGetColumnID。\n\t\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E1.Columns.FindColumnById函数被\u003Cem\u003EGrid\u003C\u002Fem\u003E1.FindColumn所替代。\n\t\t-为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。\n\t-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。\n\t-增加示例(other\u002Fcustom_postback.aspx)(feedback:thebox)。\n\t\t-如何自定义Javascript脚本和C#处理函数来响应键盘事件。\n\t-为Tree增加AutoLeafIdentification属性。\n\t\t-增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。\n\t\n\t\n\n+2009-11-17 v2.1.4\n\t-修正Window的关闭按钮提示信息一直是\u003Cem\u003E中\u003C\u002Fem\u003E文的BUG(feedback:thebox)。\n\t-部分\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件的设计时支持(会在后续版本\u003Cem\u003E中\u003C\u002Fem\u003E逐步完善)。\n\t-v0.2beta2版本\u003Cem\u003E中\u003C\u002Fem\u003E关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003EEnablePostBack)。\n\t-为T\u003Cem\u003Eext\u003C\u002Fem\u003EBox,T\u003Cem\u003Eext\u003C\u002Fem\u003EArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。\n\t+为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,用于指定验证失败时提示信息。\n\t\t-为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。\n\t+为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。\n\t\t-增加示例:form\u002Fform_validate.aspx\n\t\n\t\n\n+2009-10-19 v2.1.3\n\t+增加支持在AJAX时改变的控件属性列表(\u002Fajax.aspx)。\n\t\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程\u003Cem\u003E中\u003C\u002Fem\u003E会反映到页面\u003Cem\u003E中\u003C\u002Fem\u003E,但并不是所有的控件属性都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求\u003Cem\u003Eext\u003C\u002Fem\u003Ejs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.aspx示例,使用验证图片(feedback:kedee)。\n\t-为\u003Cem\u003EGrid\u003C\u002Fem\u003E增加AutoPostBack属性和RowClick事件,示例在\u002Fdata\u002F\u003Cem\u003Egrid\u003C\u002Fem\u003E_autopostback.aspx(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003ETemplateField生成到页面\u003Cem\u003E中\u003C\u002Fem\u003E控件具有唯一ID,例如\u003Cem\u003EGrid\u003C\u002Fem\u003E1_ct5_Label2,\u003Cem\u003EGrid\u003C\u002Fem\u003E1_ct6_Label2(feedback:geruger)。\n\t\n\t\n\n+2009-09-27 v2.1.2\n\t-为Tree控件增加GetExpandAllNodesReference和GetCollapseAllNodesReference两个函数。\n\t-修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。\n\t-增加pt_BR语言,由Ujvari提供。\n\t+为所有\u003Cem\u003EPanel\u003C\u002Fem\u003E(包括\u003Cem\u003EGrid\u003C\u002Fem\u003E,Tree,Form等)增加枚举类型Icon,其\u003Cem\u003E中\u003C\u002Fem\u003E包含1700多个小图标。\n\t\t-如果\u003Cem\u003EPanel\u003C\u002Fem\u003E具有IconUrl属性,则IconUrl优先于Icon。\n\t\t-所有Icon的列表在icon.aspx。\n\t-为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。\n\t\n\t\n\n+2009-09-15 v2.1.1\n\t-修正不能动态修改AccordionPane属性Items的BUG。\n\t+为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。\n\t\t-如果需要在父页面弹出确认对话框,需要设置ConfirmTarget=\"_parent\"(类似Window控件的Target=\"_parent\")。\n\t+为\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Alert.Show增加\u003Cem\u003E点击\u003C\u002Fem\u003E确定的JavaScript回调函数。\n\t\t-一个典型应用,在Window控件\u003Cem\u003E中\u003C\u002Fem\u003E打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。\n\t\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Alert.Show(\"参数错误!\", String.Empty, \u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.ActiveWindow.GetCloseReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Easp.net\u002Fdata\u002Ftree_run.aspx\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E增加GetNoSelectionAlertInParentReference函数,用来表示没有选\u003Cem\u003E中\u003C\u002Fem\u003E任何一项时在父页面弹出对话框的JS代码。\n\t-修正IE7下不能以下划线作为CSS\u003Cem\u003E中\u003C\u002Fem\u003E类名的前缀的BUG(feedback:Steve.Wei)。\n\t-添加定时器控件Timer,用来定时发起AJAX请求。\n\t\n\t\n\n+2009-09-06 v2.1.0\n\t-Button的Pressed属性值能够正确的反映客户端的变化。\n\t-优化Tree控件的AJAX实现。\n\t+为页面的Form添加autocomplete=\"off\"属性。\n\t\t-参考http:\u002F\u002Fwww.cnblogs.com\u002Fsanshi\u002Farchive\u002F2009\u002F09\u002F04\u002F1560146.html#1635830\n\t+添加对\u003Cem\u003Eext\u003C\u002Fem\u003Ejs3.0\u003Cem\u003E中\u003C\u002Fem\u003E所有语言的支持。\n\t\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet扩展的多语言包在js\\languages\\\u003Cem\u003Eext\u003C\u002Fem\u003Easpnet目录下,目前只有en,zh_CN,zh_TW三种实现\n\t\t-你可以向其\u003Cem\u003E中\u003C\u002Fem\u003E添加自己的语言版本,并执行js\\languages下的pack.bat打包,最后编译工程。\n\t\n\t\n\t\n+2009-09-01 v2.0.9\n\t-为\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。\n\t+在aspx页面\u003Cem\u003E中\u003C\u002Fem\u003E必须\u003Cem\u003E显示\u003C\u002Fem\u003E的声明控件的集合属性(比如Tabs(TabStrip), Items(\u003Cem\u003EPanel\u003C\u002Fem\u003EBase), Nodes(TreeNode))。\n\t\t-这将会影响所有的aspx页面,所以要特别关注。\n\t-重命名Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E为AccordionPane (这也是在Asp.net AJAX\u003Cem\u003E中\u003C\u002Fem\u003E使用的名称).\n\t+所有的面板默认有两个集合属性(Toolbars和Items).\n\t\t-尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的).\n\t\t-这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。\n\t-祝你生日快乐 - 小师妹妹。\n\n\n\n+2009-08-29 v2.0.8\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config\u003Cem\u003E中\u003C\u002Fem\u003E修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的一个BUG(定义Mappings属性时)。\n\t+PageManager.Instance应该存在于HttpCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Current,而不是一个全局变量。\n\t -这个BUG导致Asp.net compatibility\u003Cem\u003E中\u003C\u002Fem\u003E的示例无法完成,现在已经修正。\n\t+去除PageManager\u003Cem\u003E中\u003C\u002Fem\u003E方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。\n\t -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility\u003Cem\u003E中\u003C\u002Fem\u003E的示例。\n\t\n\t\n\n+2009-08-25 v2.0.7\n -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止\u003Cem\u003E重复\u003C\u002Fem\u003E提交 - 默认为true。\n -\u003Cem\u003EGrid\u003C\u002Fem\u003E的Values属性访问限制由internal改为public,这就意味这可以自由改变\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E每个单元格的值了。\n -增加示例-如何将\u003Cem\u003EGrid\u003C\u002Fem\u003E控件导出为Excel(data\\\u003Cem\u003Egrid\u003C\u002Fem\u003E_excel_run.aspx)(feedback:503684912)。\n -如果TreeNode的属性Enabled=\"false\",则此项变灰并且不会被选\u003Cem\u003E中\u003C\u002Fem\u003E(feedback:your568)。\n -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.aspx)。\n -修正\u003Cem\u003EPanel\u003C\u002Fem\u003E图标不能\u003Cem\u003E显示\u003C\u002Fem\u003E的BUG(CSS\u003Cem\u003E中\u003C\u002Fem\u003Eclass名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSize\u003Cem\u003EPanel\u003C\u002Fem\u003EID属性来代替。\n\t\t-这样所有需要占据全屏的\u003Cem\u003EPanel\u003C\u002Fem\u003E(不管你是Accordion,\u003Cem\u003EPanel\u003C\u002Fem\u003E,Content\u003Cem\u003EPanel\u003C\u002Fem\u003E,Form,Group\u003Cem\u003EPanel\u003C\u002Fem\u003E,SimpleForm,Tree还是\u003Cem\u003EGrid\u003C\u002Fem\u003E,TabStrip)都可以通过这种方式全屏。\n\t\t-简单方便,示例可以参考 default.aspx 或者 other\\accordion_tree_run.aspx。\n \n \n\n+2009-08-14 v2.0.6\n\t-动态生成菜单实例(other\\menu_dynamic_run.aspx和other\\menu_dynamic2_run.aspx)(feedback:shguo)。\n\t-优化AJAX的内部实现,每个页面保存的ViewState现在减少1\u002F3左右(重要更新)。\n\t-优化Tree节点的NodeId自动生成,减少ViewState占用。\n\t\n\n\n+2009-08-09 v2.0 beta5\n\t+\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet和Asp.net的提交按钮兼容问题(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果Asp.net的按钮AJAX提交,必须设置UseSubmitBehavior=\"false\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load\u003Cem\u003E中\u003C\u002Fem\u003E设置需要在AJAX\u003Cem\u003E中\u003C\u002Fem\u003E需要更新的Asp.net控件了。\n\t\t-在Page_Load\u003Cem\u003E中\u003C\u002Fem\u003E设置了哪些需要在AJAX\u003Cem\u003E中\u003C\u002Fem\u003E更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。\n\t\t-示例在aspnet\\fckeditor_run.aspx和aspnet\\aspnet_run.aspx。\n\t\t-FCKEditor和上传控件兼容。示例在aspnet\\fileupload_run.aspx。\n\t-修正ToolbarT\u003Cem\u003Eext\u003C\u002Fem\u003E的文本在AJAX下更新的BUG。\n\t-Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。\n\t-更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。\n\t\n\n\n+2009-08-02 v2.0 beta4\n\t+和Asp.Net的Forms Authentication兼容[feedback:mgzhenhong]。\n\t\t-采用和Asp.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。\n\t\t-现在支持Response.Redirect,你可以选择Response.Redirect或者\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Redirect重定向页面,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。\n\t-Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不\u003Cem\u003E显示\u003C\u002Fem\u003E(Target=\"_parent\")的BUG[feedback:xmq&mgzhenhong]。\n\t\n\n\n+2009-07-22 v2.0 beta3\n\t-兼容FCKEditor。\n\t-在IE8.0,Firefox3.5下测试通过。以后\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet将不会对IE6.0提供支持。\n\t\n\n\n+2009-07-13 v2.0 beta2\n\t-集成\u003Cem\u003Eext\u003C\u002Fem\u003Ejs最新版本v3.0。\n\t+兼容IE6.0-7.0-8.0。\n\t\t-这应该是\u003Cem\u003EExt\u003C\u002Fem\u003Ejs3.0的一个BUG,在IE6.0-7.0下面设置\u003Cem\u003EExt\u003C\u002Fem\u003E.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。\n\t\t-目前先禁用IE6.0-7.0的QuickTips。\n\t-优化底层JavaScript。\n\t\n\t\n\t\n+2009-07-05 v2.0 beta1\n\t-更新\u003Cem\u003Eext\u003C\u002Fem\u003Ejs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet自身的CSS会紧挨着页面\u003Ctitle\u003E标签引入,这样在\u003Chead\u003E\u003Cem\u003E中\u003C\u002Fem\u003E自定义的样式可以覆盖\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet缺省样式。\n\t+Alert对话框会遮挡所有的Window窗口。\n\t\t-使用一个变通的方法解决,因为无法改变\u003Cem\u003EExt\u003C\u002Fem\u003E.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。\t\n\t-为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。\n\t-因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选\u003Cem\u003E中\u003C\u002Fem\u003E第一项。\n\t-重新绑定模拟树的下拉列表后,选\u003Cem\u003E中\u003C\u002Fem\u003E项的前面有图片的HTML标签的BUG。\n\t-更新自定义JavaScript组件\u003Cem\u003EExt\u003C\u002Fem\u003E.ux.SimplePagingToolbar。\n\t-更新示例工程。\n\t\n\t\n\n+2009-03-25 v1.3.1\n\t-Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed]\n\t-Window\u003Cem\u003E中\u003C\u002Fem\u003E的EnableIFrame==false,则\u003Cem\u003E点击\u003C\u002Fem\u003E关闭按钮时报JS错误。[fixed]\n\t-页面包含FileUpload控件,需要\u003Cem\u003E点击\u003C\u002Fem\u003E按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet\u002Ffileupload.aspx)[fixed]\n\t-HtmlEditor\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果弹出的窗口(\u003Cem\u003EExt\u003C\u002Fem\u003E-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时\u003Cem\u003E出现\u003C\u002Fem\u003EJS错误(http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Ejs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果页面\u003Cem\u003E中\u003C\u002Fem\u003E存在ASP.NET控件(T\u003Cem\u003Eext\u003C\u002Fem\u003EBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed]\n\t-页面上放置\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet-Button和ASP.NET-Button,则\u003Cem\u003E点击\u003C\u002Fem\u003E\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和\u003Cem\u003EExt\u003C\u002Fem\u003Ejs2.2.1\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EExt\u003C\u002Fem\u003E.Ajax.serializeForm的实现有关。[fixed]\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet工程\u003Cem\u003E中\u003C\u002Fem\u003E使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件和ASP.NET标准控件和平共处了。[fixed]\n\t\t-如果一个ASP.NET按钮控件要使用\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet的原生AJAX,只需要设置属性 UseSubmitBehavior=\"false\" 即可。\n\t\t-如果要在一次\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet\u002Faspnet.aspx)。\n\n\n\n+2009-02-27 v1.2 beta9\n\t-网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed]\n\t-自动测试功能会在以后版本\u003Cem\u003E中\u003C\u002Fem\u003E逐步完善。这个版本完成测试框架,采用\u003Cem\u003EExt\u003C\u002Fem\u003Ejs\u003Cem\u003E中\u003C\u002Fem\u003EJS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed]\n\t+系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed]\n\t\t-底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。\t\n\t\t-PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E静态类\u003Cem\u003E中\u003C\u002Fem\u003E的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面\u003Cem\u003E中\u003C\u002Fem\u003E表单修改的确认提示框的脚本”。\n\t\t---[updated]删除PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的GetConfirmFormModifiedReference,使用CurrentActiveWindow\u003Cem\u003E中\u003C\u002Fem\u003E的GetConfirmFormModifiedCloseReference\u002FGetConfirmFormModifiedCloseRefreshReference\u002FGetConfirmFormModifiedClosePostBackReference三个方法代替。\n\t\t-不会修改弹出页面的URL(\u003Cem\u003EExt\u003C\u002Fem\u003E-Window\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.GetFormModifiedConfirmReference获取此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的ASPX页面\u003Cem\u003E中\u003C\u002Fem\u003E查找RegisterPageStateChangedScript属性,并删除,否则会运行错误!\n\t\t-A页面有\u003Cem\u003EExt\u003C\u002Fem\u003E-Window控件弹出B页面,B页面有\u003Cem\u003EExt\u003C\u002Fem\u003E-Window控件弹出C页面,B页面的\u003Cem\u003EExt\u003C\u002Fem\u003E-Window控件设置Target='_parent',则弹出的\u003Cem\u003EExt\u003C\u002Fem\u003E-Window(C页面)会覆盖整个A页面,这是正确的。\n\t\t---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。\n\t\t-Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面\u003Cem\u003E中\u003C\u002Fem\u003E表单改变,然后关闭弹出窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出\u003Cem\u003EExt\u003C\u002Fem\u003E-Window,再然后刷新父页面或回发父页面”。\n\t\t---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。\n\t\t-如果弹出窗口(Window控件)\u003Cem\u003E中\u003C\u002Fem\u003EIFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时\u003Cem\u003E点击\u003C\u002Fem\u003E右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。\n\t\t-Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的\u003Cem\u003EExt\u003C\u002Fem\u003E-Window最终都渲染到最外层的页面,为了保证这些IFrame的name不同,IFrameName使用的是GUID,内部处理)。\n\t\t-CurrentActiveWindow改名为ActiveWindow。\n\t\t-[特别注意]GetWriteBackValueReference(string controlClientIds, string value, params string[] values)函数现在的定义是GetWriteBackValueReference(params string[] values)\n\t\t---所有调用GetWriteBackValueReference的地方,需要删除第一个参数(一般是ActiveWindow.GetLoadStateReference())。\n\t\t\n\t\n\n+2009-02-23 v1.2 beta8\n\t-Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed]\n\t-DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed]\n\t-DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed]\n\t-升级底层\u003Cem\u003EExt\u003C\u002Fem\u003EJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed]\n\t-页面加载过程\u003Cem\u003E中\u003C\u002Fem\u003E的时间信息保存在Javascript变量window.box.timeInfo\u003Cem\u003E中\u003C\u002Fem\u003E。[added]\n\t+增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed]\n\t\n\t\n\n+2008-10-28 v1.2 beta7\n\t-DropDownList没有选\u003Cem\u003E中\u003C\u002Fem\u003E任何一项,回发时报错[feedback:huihuang]。[fixed]\n\t-Window\u003Cem\u003E显示\u003C\u002Fem\u003E位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed]\n\t+PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E优化。[fixed]\n\t\t-去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。\n\t\t-去除RegisterStartupScript的重载函数,只保留最简单的PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript(string script)函数。\n\t\t-Resirect增加重载函数Redirect(string url, string target),其\u003Cem\u003E中\u003C\u002Fem\u003Etarget可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。\n\t-Image控件增加ImageWidth\u002FImageHeight\u002FImageCssStyle\u002FImageCssClass\u002FImageAlt属性[feedback:jqpeng]。[fixed]\n\t-发布包\u003Cem\u003E中\u003C\u002Fem\u003E增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-Content\u003Cem\u003EPanel\u003C\u002Fem\u003E的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时\u003Cem\u003E显示\u003C\u002Fem\u003E不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样一个效果,如果Tab1默认\u003Cem\u003E显示\u003C\u002Fem\u003E,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed]\n\t\t-需要替换新的blowery.Web.HttpCompress.dll,解决方案见http:\u002F\u002Fpohee.com\u002Fit\u002Fhttp-compression-in-aspnet-20\u002F。\n\t+DropDownList优化。[fixed]\n\t\t-去除EnableFirstItem\u002FFirstItemT\u003Cem\u003Eext\u003C\u002Fem\u003E\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.Insert(0, new \u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选\u003Cem\u003E中\u003C\u002Fem\u003E[feedback:jqpeng]。\n\t\t\t-和Asp.net\u003Cem\u003E中\u003C\u002Fem\u003E的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = \"\";\n\t\t-ListItemCollection增加重载函数Add(string t\u003Cem\u003Eext\u003C\u002Fem\u003E, string value),这样方便后台添加列表项。\n\t-处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed]\n\t-注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS\u003Cem\u003E中\u003C\u002Fem\u003E的height不同,CSS\u003Cem\u003E中\u003C\u002Fem\u003E的height是指内容的高度,除去padding\u002Fborder-width\u002Fmargin)。[fixed]\n\t+为所有控件属性增加在VS\u003Cem\u003E中\u003C\u002Fem\u003E的智能提示。[fixed]\n\t\t-需要将\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.XML和\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。\n\t+控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed]\n\t\t-TriggerIconType.Default -\u003E TriggerIconType.None\n\t\t-SystemIconType.Empty -\u003E SystemIconType.None\n\t\t-RegexPattern.USER_DEFINED -\u003E RegexPattern.None\n\t-表单验证属性名称变化(ValueToCompare-\u003ECompareValue,ControlToCompare-\u003ECompareControl)。[fixed]\n\t+注意:一个属性可以拥有多个值的情况。[fixed]\n\t\t-属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。\n\t\t-其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。\n\t+AccordionLink实现为控件。[fixed]\n\t\t-可以方便的在子页面(iframe)\u003Cem\u003E中\u003C\u002Fem\u003E通过js切换父页面\u003Cem\u003E中\u003C\u002Fem\u003E选\u003Cem\u003E中\u003C\u002Fem\u003E的菜单项(Accordion-\u003EAccordionLink)(示例在other\u002Faccordion_links_run.aspx,other\u002Faccordion_links_run_iframe_htm)[feedback:jima]。\n\t+确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form\u002Fform_dynamic_run.aspx)。[fixed]\n\t\n\t\n\t\n+2008-10-15 v1.2 beta5\n\t-验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed]\n\t+优化下拉列表。[fixed]\n\t\t-验证下拉列表时,应该取ListItem的Value属性进行验证,而不是T\u003Cem\u003Eext\u003C\u002Fem\u003E属性。\n\t\t-DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyT\u003Cem\u003Eext\u003C\u002Fem\u003E属性。\n\t\t-ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)\u003Cem\u003E中\u003C\u002Fem\u003E设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E起作用(示例见other\u002Faccordion_run.aspx)。[fixed]\n\t\t-Accordion去除EnableHightlight属性,Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E增加EnableHightlight属性。\n\t\t-影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E增加EnableLargeHeader和EnableHightlight属性。\n\t-Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E增加Links属性,可以绑定列表数据到Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E,呈现的是链接的列表(示例在other\u002Faccordion_links_run.aspx)。[fixed]\n\t\t-原来放置在Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的容器,比如Content\u003Cem\u003EPanel\u003C\u002Fem\u003E需要在外层加上\u003CItems\u003E标签。\n\t\t-适当增大Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少ASPX\u003Cem\u003E中\u003C\u002Fem\u003EHTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed]\n\t\t-\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FGroup\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FContent\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form\u003Cem\u003E中\u003C\u002Fem\u003E动态添加控件的BUG,现在form\u002Fform_dynamic_run.aspx示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordion\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FGroup\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002F\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)属性和\u003Cem\u003EGrid\u003C\u002Fem\u003E的Rows属性(\u003Cem\u003EGrid\u003C\u002Fem\u003ERowCollection)。\n\t\t-保留TabStrip的Tabs(TabCollection)属性。\n\t\t-保留PageLayout\u002FBorderLayout的Regions(RegionCollection)属性。\n\t-预祝今晚神七发射成功。\n\t\n\t\n\t\n+2008-09-22 v1.2 beta2\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E选\u003Cem\u003E中\u003C\u002Fem\u003E项(SelectedRowIndexArray)在ajax回发过程\u003Cem\u003E中\u003C\u002Fem\u003E存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对\u003Cem\u003EGrid\u003C\u002Fem\u003E进行多次删除添加操作后,SelectedRowIndexArray选\u003Cem\u003E中\u003C\u002Fem\u003E项\u003Cem\u003E中\u003C\u002Fem\u003E会存在当前不存在的行序号,导致服务器端遍历选\u003Cem\u003E中\u003C\u002Fem\u003E项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例\u003Cem\u003E中\u003C\u002Fem\u003E表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002FButton\u002FHyperLink\u002FLabel\u002FImage\u002FLinkButton\u002FT\u003Cem\u003Eext\u003C\u002Fem\u003EBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FT\u003Cem\u003Eext\u003C\u002Fem\u003EArea\u002FHtmlEditor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002FRadioButton\u002FRadioButtonList\u002FDropDownList\n\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLinkButton\u002FHyperLink增加一些Ajax可更新属性。[fixed]\n\t+隐藏的方式由HideMode属性控制Visibility\u002FOffsets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm\u003Cem\u003E中\u003C\u002Fem\u003E隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。\n\t-ToolbarT\u003Cem\u003Eext\u003C\u002Fem\u003E\u002FToolbarFill\u002FToolbarSeparator在ASPX\u003Cem\u003E中\u003C\u002Fem\u003E设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed]\n\t-Button去除MarginRight属性(可以通过CssStyle=\"margin-right:5px;\"达到相同的效果)[fixed]\n\t\n\t\n\t\n+2008-09-09 v1.1\n\t+Toolbar去除IsPageMenu属性,在网报\u003Cem\u003E中\u003C\u002Fem\u003E可以用自定义样式实现,而不应该写在控件\u003Cem\u003E中\u003C\u002Fem\u003E。[fixed]\n\t\t-网报:CssClass=\"toolbar-pagemenu\" CssStyle=\"border:0px;\",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(..\u002Fimages\u002Fpagemenu_toolbar_background.gif) repeat-x left top;}。\n\t-Region去除默认的Layout=Fit,如果希望Region使用Fit\u002FAnchor\u002FColumn\u002FRow等布局的话,需要手工指定。[fixed]\n\t-ToolbarSeparator\u002FToolbarFill在Ajax更新Hidden属性的BUG。[fixed]\n\t+布局整理。[fixed]\n\t\t-新增Column\u002FAbsolute\u002FRow三种布局,加上以前的Container\u002FFit\u002FAnchor\u002FAccordion\u002FBorder\u002FForm六种布局,总共有9\u003Cem\u003E中\u003C\u002Fem\u003E布局可供使用。\n\t\t-其\u003Cem\u003E中\u003C\u002Fem\u003E一些控件默认使用一种布局:SimpleForm(Form)\u002FForm(Form)\u002F\u003Cem\u003EPanel\u003C\u002Fem\u003E-Group\u003Cem\u003EPanel\u003C\u002Fem\u003E(Container)\u002FAccordion(Accordion)\u002FPageLayout(Border)\u002FBorderLayout(Border)\u002FTabStrip(Card),所有布局控件默认的布局是Container。\n\t\t-经常用到的布局控件:SimpleForm\u002FForm\u002FAccordion\u002FTabStrip\u002FBorderLayout,经常用到的布局:Fit\u002FRow\u002FAnchor\n\t\n\t\n\t\n+2008-09-08 v1.1 beta7\n\t-MenuButton\u002FMenuHyperLink增加HideOnClick属性,如果一个菜单项的作用仅仅为了弹出下级菜单,\u003Cem\u003E点击\u003C\u002Fem\u003E没反应,则可以这样设置HideOnClick=\"false\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-MenuButton\u002FMenuHyperLink\u002FMenuSeparator\u002FMenuT\u003Cem\u003Eext\u003C\u002Fem\u003E增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏菜单,请使用此属性而不是Visible属性)。[fixed]\n\t+大部分的\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet改造强烈依赖于此属性,这个版本发布后可以继续。\n\t\t-网报\u003Cem\u003E中\u003C\u002Fem\u003E唯一没有用到\u003Cem\u003EExt\u003C\u002Fem\u003EAspNetAjax的地方就是\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Redirect支持普通页面转向和\u003Cem\u003EExt\u003C\u002Fem\u003EAspNetAjax下页面转向。[fixed]\n\t+模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed]\n\t\t-因为if(\"0,2,9,11,\".indexOf('1,')\u003E=0){ok},这显然是不对的,此BUG涉及很多控件(\u003Cem\u003EGrid\u003C\u002Fem\u003E,DropDownList,TabStrip)。\n\t\t-解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) \u003E= 0){ok}。\n\t-DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed]\n\t-Button\u002FMenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed]\n\t-Tree的Ajax支持(尚需优化)。[fixed]\n\t\n\t\n\n+2008-09-02 v1.1 beta5\n\t-DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed]\n\t-模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataT\u003Cem\u003Eext\u003C\u002Fem\u003EField\u002FDataValueField\u002FDataSimulateTreeLevelField\u002FDataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed]\n\t-UserControlConnector导致的Ajax错误,去除Update\u003Cem\u003EPanel\u003C\u002Fem\u003EConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用Asp.net的控件HiddenField,而是使用\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,RadioButtonList\u003Cem\u003E中\u003C\u002Fem\u003E项如果存在汉字,则会换行的BUG。[fixed]\n\t-增加两个Theme[Slate\u002FBlack](样式尚需完善)。[fixed]\n\t\n\t\n\t\n+2008-09-01 v1.1 beta4\n\t-非当前Tab\u003Cem\u003E中\u003C\u002Fem\u003E如果有Content\u003Cem\u003EPanel\u003C\u002Fem\u003E,则在页面上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢页面的加载速度),现在已经解决这个问题。[fixed]\n\t-RadioButtonList去除EnableBackgroundColor\u002FEnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第一个Trigger图标不会先\u003Cem\u003E显示\u003C\u002Fem\u003E再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed]\n\t-Web.config\u003Cem\u003E中\u003C\u002Fem\u003E增加配置项FormLabelWidth=\"80\"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm\u002FForm的表单字段标题的宽度。[fixed]\n\t+完善Ajax。[fixed]\n\t\t-RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue\u002FSelectedItem)。\n\t\t-DropDownList增加Ajax可更新属性Enable\u002FSelectedIndex(SelectedValue\u002FSelectedItem)\u002FDataSource。\n\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E增加Ajax可更新属性Columns(也就是说\u003Cem\u003EGrid\u003C\u002Fem\u003E列在回发时隐藏\u003Cem\u003E显示\u003C\u002Fem\u003E了一些,也能正确的Ajax)。\n\t\t-ToolbarT\u003Cem\u003Eext\u003C\u002Fem\u003E增加Ajax可更新属性T\u003Cem\u003Eext\u003C\u002Fem\u003E。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向页面,使用系统的方法 PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Redirect(string url),使用Response.Redirect方法会出错。[fixed]\n\t+安全的Ajax设计。[fixed]\n\t\t-这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。\n\t\t-基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。\n\t\t-整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。\n\t-网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed]\n\t\n\t\n\t\n+2008-08-29 v1.1 beta1\n\t+Window控件是否弹出的状态在回发时维持。[fixed]\n\t\t-控件设计的一个原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。\n\t+完全抛弃Asp.NetAjax,\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件内置Ajax支持。[fixed]\n\t\t-这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager\u003Cem\u003E中\u003C\u002Fem\u003E有设置启用Ajax回发的属性-EnableAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的\u003Cem\u003E点击\u003C\u002Fem\u003E一个按钮弹出窗口,可以在Button的OnClick事件\u003Cem\u003E中\u003C\u002Fem\u003E设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前\u003Cem\u003EExt\u003C\u002Fem\u003EAspNetAjax的限制。\n\t\t\t-只对\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件起作用,对Asp.net控件不起作用。\n\t\t\t-对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。\n\t\t\t-对改变控件的Visible属性会有错误。\n\t\t\t-Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。\n\t-PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选\u003Cem\u003E中\u003C\u002Fem\u003E的状态在回发后会得到保持。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E选\u003Cem\u003E中\u003C\u002Fem\u003E行的状态在第一次回发时不能保持的BUG。[fixed]\n\t\n\t\n\t\n+2008-08-26 v1.0\n\t+已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。\n\t\t-主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化弹出窗口\u003Cem\u003E中\u003C\u002Fem\u003EIFrame的\u003Cem\u003E显示\u003C\u002Fem\u003E速度。[fixed]\n\t\t-在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报\u003Cem\u003E中\u003C\u002Fem\u003E需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config\u003Cem\u003E中\u003C\u002Fem\u003E设置(推荐方法),也可以为每个页面设置。[fixed]\n\t\t-一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器\u003Cem\u003E中\u003C\u002Fem\u003ECookie设置的值)(示例在default.aspx)。\n\t-TreeNode增加属性SingleClickExpand,表示\u003Cem\u003E点击\u003C\u002Fem\u003E可切换节点的折叠展开状态。[fixed]\n\t+TabStrip\u003Cem\u003E中\u003C\u002Fem\u003E非当前Tab会延迟渲染。[fixed]\n\t\t-这会明显加快页面的渲染速度,网报\u003Cem\u003E中\u003C\u002Fem\u003E一个典型的费用审批页面可以减少200ms的渲染时间。\n\t\t-由于非当前Tab不会在页面加载时渲染,所以那些Tab\u003Cem\u003E中\u003C\u002Fem\u003E的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件\u003Cem\u003E中\u003C\u002Fem\u003E。\n\t-不能比较两个DataPicker大小的BUG。[fixed]\n\t-TabStrip延迟加载引起的BUG(非当前Tab\u003Cem\u003E中\u003C\u002Fem\u003E的Content\u003Cem\u003EPanel\u003C\u002Fem\u003E会占据页面空间,已修正)。[fixed]\n\t-全新的\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Examples(基础知识\u002F表单控件\u002F数据绑定\u002F容器布局\u002FIFrame框架)。[fixed]\n\t\n\t\n\t\n+2008-08-19 v0.4 beta6\n\t+PageManager增加两个属性(EnableInlineStyleJavascript\u002FApplyParentStyleJavascript),可以在IFrame页面\u003Cem\u003E中\u003C\u002Fem\u003E使用父页面的脚本和样式(示例在iframe\u002Fdefault.aspx和iframe\u002Fpage3.aspx)。[fixed]\n\t\t-测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。\n\t-RadioButtonList放在在BorderLayout\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003E显示\u003C\u002Fem\u003E不了的BUG [feedback:zgjiang2]。[fixed]\n\t+\u003Cem\u003Eext\u003C\u002Fem\u003Ejs的BUG,当页面\u003Cem\u003E中\u003C\u002Fem\u003E含有iframe时,\u003Cem\u003EExt\u003C\u002Fem\u003E.onReady会被调用两次(IE6\u002FIE7)(http:\u002F\u002Fwww.\u003Cem\u003Eext\u003C\u002Fem\u003Ejs.net\u002Fforum\u002Fshowthread.php?t=43246)(示例在test.aspx)[fixed]\n\t\t-现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true;\n\t+需要先回发页面再弹出IFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。\n\t\t-另一种做法(推荐):PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.aspx\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-\u003Cem\u003E点击\u003C\u002Fem\u003E关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.aspx。[fixed]\n\t+Radiobuttonlist\u003Cem\u003E显示\u003C\u002Fem\u003E有重影(示例在radio.aspx)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form\u003Cem\u003E中\u003C\u002Fem\u003E添加FormRow,并动态的向FormRow\u003Cem\u003E中\u003C\u002Fem\u003E添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed]\n\t+IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会\u003Cem\u003E重复\u003C\u002Fem\u003E加载IFrame2-3次[feedback:xmzhu]。[fixed]\n\t\t-这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame被添加到页面,而这是不需要的。\n\t\t-现在\"是否弹出窗口、窗口标题、IFrameUrl\"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx)\n\t\n\t\n\t\n+2008-08-13 v0.4 beta4\n\t-\u003Cem\u003E点击\u003C\u002Fem\u003E关闭窗口的按钮,在IE下会有JS错误。[fixed]\n\t-Window的右上角关闭图标增加提示,优化事件响应。[fixed]\t\n\t-Window的代码重构。[fixed]\t\n\t+修正一个的内存泄漏。[fixed]\n\t\t-IE7下测试,打开iframe\u002Fdefault.aspx页面,iexplorer占内存68.368M。\n\t\t-内存存在泄漏时,\u003Cem\u003E点击\u003C\u002Fem\u003Eiframe\u002Fpage3.aspx页面8次后iexplorer占118.792M内存。\n\t\t-修正后,\u003Cem\u003E点击\u003C\u002Fem\u003Eiframe\u002Fpage3.aspx页面8次后iexplorer占76.492M内存。\n\t\t-IE窗口最小化时,IE会自动进行垃圾回收。\n\t\n\t\n\t\n+2008-08-12 v0.4 beta3\n\t-底层的javascript框架\u003Cem\u003EExt\u003C\u002Fem\u003Ejs升级为v2.2,\u003Cem\u003EGrid\u003C\u002Fem\u003E的渲染速度有很大提升。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的EnableDelayRender默认为true(如果没有设置\u003Cem\u003EGrid\u003C\u002Fem\u003E的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"解决)。[fixed]\n\t+页面正在加载的提示尽早的\u003Cem\u003E显示\u003C\u002Fem\u003E出来。[fixed]\n\t\t-首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容\u003Cem\u003E显示\u003C\u002Fem\u003E出来。\n\t\t-加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的\u003Cem\u003E显示\u003C\u002Fem\u003E。\n\t\n\t\n\t\n+2008-08-08 v0.4 beta2\n\t-TabStrip延时加载出错。[fixed]\n\t-Window的IFrameUrl处理的BUG,比如Pages_\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet目录下的页面应该为.\u002FFE_ApplyEditor.aspx或~\u002FPages_\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet\u002FFE_ApplyEditor.aspx。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在页面\u003Cem\u003E显示\u003C\u002Fem\u003E后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed]\n\t-button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed]\n\t-Window\u003Cem\u003E中\u003C\u002Fem\u003E的保存并关闭按钮和Asp.netAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到页面的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed]\n\t\n\t\n\t\n+2008-08-05 v0.4 beta1\n\t-DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed]\n\t-DropDownList增加SelectedT\u003Cem\u003Eext\u003C\u002Fem\u003E属性(去除了模拟树时通过SelectedItem.T\u003Cem\u003Eext\u003C\u002Fem\u003E的多余html字符)。[fixed]\n\t-为了加快渲染速度,去掉一些特效(比如\u003Cem\u003EPanel\u003C\u002Fem\u003E的折叠效果,\u003Cem\u003EGrid\u003C\u002Fem\u003E的拖动列效果等)[feedback:dcding]。[fixed]\n\t-将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed]\n\t+弹出窗口\u003Cem\u003E中\u003C\u002Fem\u003E,\u003Cem\u003E点击\u003C\u002Fem\u003E按钮回发然后\u003Cem\u003E点击\u003C\u002Fem\u003E关闭按钮,\u003Cem\u003E出现\u003C\u002Fem\u003Ejs错误 [feedback:xmzhu]。[fixed]\n\t\t-因为在页面的Page_Load\u003Cem\u003E中\u003C\u002Fem\u003E,if (!IsPostBack){PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。\n\t\t-一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。\n\t\t-另一种办法就是在PageManager控件\u003Cem\u003E中\u003C\u002Fem\u003E增加RegisterPageStateChangedScript(向页面注册监视页面\u003Cem\u003E中\u003C\u002Fem\u003E表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx\u002Fsimpleform.aspx)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报\u003Cem\u003E中\u003C\u002Fem\u003E遇到这种情况)。\n\t-每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性\u003Cem\u003E出现\u003C\u002Fem\u003E)。[fixed]\n\t-T\u003Cem\u003Eext\u003C\u002Fem\u003EField等表单字段增加Readonly属性。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过\u003Cem\u003E点击\u003C\u002Fem\u003E按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx\u002Fpage2.aspx\u002Fsimpleform.aspx)\n\t\t\t-虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target=\"_parent\"),就完成了两种框架的转换,是不是很酷。\n\t\t\t-显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)\u002Fpage2.aspx(B)\u002Fsimpleform.aspx(C)),其\u003Cem\u003E中\u003C\u002Fem\u003EA包含B页面,当你在B\u003Cem\u003E中\u003C\u002Fem\u003E打开包含有页面C的窗口时,窗口不是在B\u003Cem\u003E中\u003C\u002Fem\u003E打开,而是在A\u003Cem\u003E中\u003C\u002Fem\u003E打开,这样才能保证窗口覆盖整个页面,当你从C\u003Cem\u003E中\u003C\u002Fem\u003E返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面\u003Cem\u003E中\u003C\u002Fem\u003E创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E弹出窗口。(default.aspx\u002Fpage3.aspx\u002Fsimpleform.aspx)\t\n\t\t+示例3,TriggerBox弹出窗口。(default.aspx\u002Ftriggerbox.aspx\u002Fsimpleform.aspx)\t\n\t\t\t-在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。\n\t\t-示例4,弹出窗口\u003Cem\u003E中\u003C\u002Fem\u003E的弹出窗口。\n\t-对整个Examples更新测试。[fixed]\n\t\n\t\n\t\n+2008-07-31 v0.3 beta12\n\t-IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab\u003Cem\u003E显示\u003C\u002Fem\u003E为空的BUG。[fixed]\n\t-对TabStrip\u002F\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FWindow\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame重新设计,如果设置IFrameUrl=\"#\"或者\"about:blank\",则不渲染iframe到页面节点,同时第二次打开Window\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame不会有残影\u003Cem\u003E出现\u003C\u002Fem\u003E。[fixed]\n\t-如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed]\n\t-Tree控件,\u003Cem\u003E点击\u003C\u002Fem\u003E一个节点自动回发,则当前\u003Cem\u003E点击\u003C\u002Fem\u003E的那个节点的选\u003Cem\u003E中\u003C\u002Fem\u003E状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe\u003Cem\u003E中\u003C\u002Fem\u003E关闭按钮和window右上角关闭图标的调用方式)(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_iframe.aspx\u002Fsimpleform.aspx)。[fixed]\n\t\t-内部实现上,\u003Cem\u003E点击\u003C\u002Fem\u003E“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。\n\t-参照Yslow的评分规则,将JS文件引用由head移动到body\u003Cem\u003E中\u003C\u002Fem\u003E。[fixed]\n\t-Firefox下,如果页面太长会出滚动条,原来在ViewPort样式\u003Cem\u003E中\u003C\u002Fem\u003E有body{overflow:hidden;}。[fixed]\n\t+IFrame内的页面宽度和高度会自动设置(是不是还在为1px\u002F2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx\u002Fsimpleform.aspx\u002Fsimpleform2.aspx)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSize\u003Cem\u003EPanel\u003C\u002Fem\u003EID,即需要设置宽度和高度为整个页面的宽度和高度的\u003Cem\u003EPanel\u003C\u002Fem\u003E),HideScrollbar属性用于隐藏滚动条(IE\u002FFirefox)。\n\t\n\t\n\t\n+2008-07-24 v0.3 beta11\n\t-web.config配置信息\u003Cem\u003E中\u003C\u002Fem\u003EMessageTarget改名为FormMessageTarget,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed]\n\t-去掉DropDownList控件的T\u003Cem\u003Eext\u003C\u002Fem\u003E属性(强制性),可以通过设置SelectedValue来设置选\u003Cem\u003E中\u003C\u002Fem\u003E哪一项 [feedback:xmzhu]。[fixed]\n\t-过滤提示消息\u003Cem\u003E中\u003C\u002Fem\u003E的换行符(转换为\u003Cbr\u002F\u003E),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed]\n\t\n\t\n\t\n+2008-07-23 v0.3 beta10\n\t+完善Tree控件。[fixed]\n\t\t-如何将数据库\u003Cem\u003E中\u003C\u002Fem\u003E的数据绑定到Tree(示例在tree2_bind_database.aspx)。\n\t\t-ajax加载树节点,放在Update\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E才有ajax的效果(示例在tree2_ajax.aspx)。\n\t\t-更改TreeNode的ID为NodeId,否则两个树\u003Cem\u003E中\u003C\u002Fem\u003E不能有相同ID的TreeNode,这是不合理的。\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn的ID改名成ColumnId,否则同一个页面放置两个\u003Cem\u003EGrid\u003C\u002Fem\u003E,它们的\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E所有类型的列增加DataTooltipField\u002FDataTooltipFormatString两个字段,以\u003Cem\u003E显示\u003C\u002Fem\u003EToolTip(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选\u003Cem\u003E中\u003C\u002Fem\u003E样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确解析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则\u003Cem\u003E显示\u003C\u002Fem\u003E的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能解决\u003Cdiv style=\"width: 60px; white-space: nowrap; overflow: hidden; border: solid 1px red;\"\u003E\u003Cdiv style=\"width: 16px; height: 18px; float: left;\"\u003E##\u003C\u002Fdiv\u003E差旅交通费\u003C\u002Fdiv\u003E在IE和Firefox下\u003Cem\u003E显示\u003C\u002Fem\u003E的不同效果。\n\t\t-但是通过用\u003Cimg src=\"##\" \u002F\u003E来代替\u003Cdiv style=\"background:url(##)\" \u002F\u003E,从而实现FF和IE下样式的统一。\n\t\t-刚看到old9的解决方案:把“差旅交通费”改成“\u003Cspan style=\"margin-right: -1000px;\"\u003E差旅交通费\u003C\u002Fspan\u003E”,在IE下和FF下的都不换行,:-)\n\t-LinkButton增加OnClick事件 [feedback:huihuang]。[fixed]\n\t-Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed]\n\t+增加树控件(Tree)(示例在tree2.aspx)。[fixed]\n\t\t-可以在回发时维持树的状态(选\u003Cem\u003E中\u003C\u002Fem\u003E行,折叠\u002F展开,CheckBox)。\n\t\t-可以通过Inline的方式添加树节点,也可以绑定到XmlDocument\u002FXmlDataSource\u002FSiteMap。\n\t\t-\u003Cem\u003E点击\u003C\u002Fem\u003E树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。\n\t\n\t\n\t\n+2008-07-16 v0.3 beta8\n\t+Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E放置\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件,则渲染时会\u003Cem\u003E出现\u003C\u002Fem\u003E各种问题,比如下拉列表\u003Cem\u003E显示\u003C\u002Fem\u003E样式出错,\u003Cem\u003EGrid\u003C\u002Fem\u003E没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E渲染\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件,如果容器的display='none',则会\u003Cem\u003E出现\u003C\u002Fem\u003E各种问题(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后\u003Cem\u003E显示\u003C\u002Fem\u003E容器。\n\t\t-现在\u003Cem\u003EGrid\u003C\u002Fem\u003E只要\u003Cem\u003E显示\u003C\u002Fem\u003E的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过\u003Cem\u003EGrid\u003C\u002Fem\u003E容器就会\u003Cem\u003E显示\u003C\u002Fem\u003E滚动条。\n\t+IE6下,在应用Asp.NetAjax后,Form\u003Cem\u003E中\u003C\u002Fem\u003E字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。\n\t\t-最后发现IE6下应用Asp.NetAjax后不仅Form\u003Cem\u003E中\u003C\u002Fem\u003E列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数\u003Cem\u003E中\u003C\u002Fem\u003E,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面\u003Cem\u003E中\u003C\u002Fem\u003E所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master 页面。\n\t+集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed]\n\t\t-解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();),\n\t\t 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。\n\t\n\t\n\t\n+2008-07-14 v0.3 beta6\n\t-增加FlashObject控件。[fixed]\n\t-PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed]\n\t-Accordion选\u003Cem\u003E中\u003C\u002Fem\u003E样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E增加EnableDelayRender属性(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s\u003Cem\u003E显示\u003C\u002Fem\u003E出来)。[fixed]\n\t\t-因为延迟加载数据不会改变\u003Cem\u003EGrid\u003C\u002Fem\u003E的大小,所以对于非布局内或不设定高度宽度的\u003Cem\u003EGrid\u003C\u002Fem\u003E,需要设置\"EnableDelayRender=false\"。\n\t-改变\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在\u003Cem\u003E点击\u003C\u002Fem\u003E一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed]\n\t\n\t\n\t\n+2008-07-12 v0.3 beta5\n\t-页面菜单Toolbar的分割符和背景不相融合。[fixed]\n\t-表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed]\n\t\t-如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和T\u003Cem\u003Eext\u003C\u002Fem\u003EBox比较大小需要指定CompareType。\n\t+如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx\u002Fajax_editor.aspx)。[fixed]\n\t\t-这是由于ajax后执行的javascript\u003Cem\u003E中\u003C\u002Fem\u003E不能有return false语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在t\u003Cem\u003Eext\u003C\u002Fem\u003Ebox_blur.aspx) [feedback:xmzhu]。[fixed]\n\t\t-在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-弹出Window默认\u003Cem\u003E显示\u003C\u002Fem\u003E的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是\"#\"。[fixed]\n\t+弹出的窗口\u003Cem\u003E中\u003C\u002Fem\u003E的弹出窗口的如果内容发生变化,则\u003Cem\u003E点击\u003C\u002Fem\u003E右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例\u003Cem\u003E中\u003C\u002Fem\u003Ealert\\alert_1.aspx和alert\\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-\u003Cem\u003E点击\u003C\u002Fem\u003E提交按钮后变成灰色不可再次\u003Cem\u003E点击\u003C\u002Fem\u003E(示例在button_click_gray.aspx)[feedback:jima]。[fixed]\n\t+增加Menu、MenuT\u003Cem\u003Eext\u003C\u002Fem\u003E、MenuSeparator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed]\n\t-增加SplitButton控件。[fixed]\n\t\n\t\n\t\n+2008-07-09 v0.3 beta4\n\t-DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed]\n\t+Form表单字段(T\u003Cem\u003Eext\u003C\u002Fem\u003EBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed]\n\t\t-增加ControlToCompare\u002FValueToCompare\u002FCompareOperator\u002FCompareMessage四个属性,示例在form_compare.aspx。\n\t+TabStrip\u003Cem\u003E中\u003C\u002Fem\u003E放置IFrame会\u003Cem\u003E出现\u003C\u002Fem\u003E渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed]\n\t+表单字段Enable=false时\u003Cem\u003E显示\u003C\u002Fem\u003E颜色太浅 [feedback:jima]。[fixed]\n\t\t-覆盖缺省样式的.x-item-disabled,设置不透明。\n\t\n\t\n\t\n+2008-07-08 v0.3 beta3\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E没有数据,向后翻页按钮可以\u003Cem\u003E点击\u003C\u002Fem\u003E的BUG [feedback:huihuang]。[fixed]\n\t+增加HiddenField控件。[fixed]\n\t\t-其实用T\u003Cem\u003Eext\u003C\u002Fem\u003EBox也能模拟HiddenField的行为,只需要设置CssStyle=\"display:none;\"即可。\n\t+TriggerBox 如果 EnableT\u003Cem\u003Eext\u003C\u002Fem\u003EBox = true,则不能将T\u003Cem\u003Eext\u003C\u002Fem\u003E回发(这是html的限制)。[fixed]\n\t\t-最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在t\u003Cem\u003Eext\u003C\u002Fem\u003Ebox2.aspx)。\n\t-模拟树的下拉列表在失去焦点后\u003Cem\u003E显示\u003C\u002Fem\u003E的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed]\n\t\t-增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-LinkButton和\u003Cem\u003EGrid\u003C\u002Fem\u003E的LinkButtonField增加Enable属性(示例在hyperlink.aspx和\u003Cem\u003Egrid\u003C\u002Fem\u003E.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加Update\u003Cem\u003EPanel\u003C\u002Fem\u003EConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed]\n\t\t-使用Update\u003Cem\u003EPanel\u003C\u002Fem\u003EConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:\u003Cem\u003EPanel\u003C\u002Fem\u003E。\n\t\t-示例在ajax3.aspx\u002Fcontent_page4.aspx。\n\t\t-示例content_page3.aspx\u003Cem\u003E中\u003C\u002Fem\u003E,\u003Cem\u003E点击\u003C\u002Fem\u003E“Ajax查询”按钮和关闭弹出的窗口(\u003Cem\u003E点击\u003C\u002Fem\u003E右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为false。[fixed]\n\t\t-使用Group\u003Cem\u003EPanel\u003C\u002Fem\u003E的地方需要手工添加AutoHeight=\"true\"属性。\n\t+增加UserControlConnector,可以在其\u003Cem\u003E中\u003C\u002Fem\u003E放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t-也可以在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed]\n\t+支持Asp.net ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E使用,示例在ajax1.aspx\u002Fcontent_ajax2.aspx\u003Cem\u003E中\u003C\u002Fem\u003E。\n\t\t-对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。\n\t\n\t\n\t\n+2008-07-02 v0.2 beta12\n\t+关闭前提示当前页面已经被修改(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-支持Iframe内按钮和window右上角关闭按钮。\n\t\t-删除CloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe\u003Cem\u003E中\u003C\u002Fem\u003E做法一致)。\n\t+iframe\u003Cem\u003E中\u003C\u002Fem\u003E的alert\u002Fconfirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed]\n\t\t-在Firefox下还有问题。[fix pending]\n\t+排序时在标题栏\u003Cem\u003E显示\u003C\u002Fem\u003E排序箭头,可以排序的列标题光标为手形(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_sorting.aspx)。[fixed]\n\t\t-可以通过设置\u003Cem\u003EGrid\u003C\u002Fem\u003E1.CurrentSortColumnIndex = 0;来强制某列\u003Cem\u003E显示\u003C\u002Fem\u003E排序箭头。\n\t\t-可以通过 \u003Cem\u003EGrid\u003C\u002Fem\u003E1.Columns[\u003Cem\u003EGrid\u003C\u002Fem\u003E1.CurrentSortColumnIndex].SortExpression 的方式取得当前\u003Cem\u003EGrid\u003C\u002Fem\u003E的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.aspx)。[fixed]\n\t-TabStrip的Tab\u003Cem\u003E中\u003C\u002Fem\u003E如果放置Content\u003Cem\u003EPanel\u003C\u002Fem\u003E,则内容渲染位置不正确。[fixed]\n\t-可以在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed]\n\t-如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+页面\u003Cem\u003E中\u003C\u002Fem\u003E任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EGrid\u003C\u002Fem\u003E的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的LinkButtonField设置ConfirmT\u003Cem\u003Eext\u003C\u002Fem\u003E会出错 [feedback:huihuang]。[fixed]\n\t-增加静态类Confirm。[fixed]\n\t\n\t\n\t\n+2008-06-27 v0.2 beta10\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E完善。[fixed]\n\t\t-CheckBoxField在回发时不能保持状态的BUG (已经更新了\u003Cem\u003Egrid\u003C\u002Fem\u003E_checkboxfield.aspx示例)。\n\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E模拟树\u003Cem\u003E显示\u003C\u002Fem\u003E,\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn增加DataSimulateTreeLevelField属性(一个\u003Cem\u003EGrid\u003C\u002Fem\u003E只能有一个Column指定此属性),指定此列模拟树\u003Cem\u003E显示\u003C\u002Fem\u003E时的层次字段(0,1,2,...)(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_simulate_tree.aspx)。\n\t\t-切换分页时清空选\u003Cem\u003E中\u003C\u002Fem\u003E的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_prerowdatabound.aspx)。\n\t-DropDownList模拟树的方式\u003Cem\u003E显示\u003C\u002Fem\u003E,增加DataSimulateTreeLevelField属性,使用方法和\u003Cem\u003EGrid\u003C\u002Fem\u003E的类似(示例在dropdownlist_simulate_tree.aspx)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体\u003Cem\u003E中\u003C\u002Fem\u003E的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-在simpleform.aspx\u003Cem\u003E中\u003C\u002Fem\u003E:\u003Cem\u003EPanel\u003C\u002Fem\u003E[BodyPadding=5](Toolbar,\u003Cem\u003EPanel\u003C\u002Fem\u003E[Height=450 Layout=Fit](SimpleForm[AutoScroll=true])),则外面窗口的高度=450 + 5*2 + 26 + 32,其\u003Cem\u003E中\u003C\u002Fem\u003E26是Toolbar的高度,32是窗口的标题栏和下边框的高度。\n\t+关闭Iframe的LoadMask,所以需要Iframe页面添加PageLoading控件,这样效果统一。[fixed]\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E完善。\n\t\t-去除EnableClientPaging和EnableClientSort属性,客户端排序和客户端分页在ASP.NET应用\u003Cem\u003E中\u003C\u002Fem\u003E会有很多问题(主要是状态保持的问题)。\n\t\t+EnableServerSort改名AllowSorting。(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_sorting.aspx)\n\t\t\t-使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数\u003Cem\u003E中\u003C\u002Fem\u003E重新绑定数据。\n\t\t+增加AllowPaging属性。(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_paging.aspx)\n\t\t\t-使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EGrid\u003C\u002Fem\u003E1.PageIndex = e.NewPageIndex;OK。\n\t\t+数据库分页支持。(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_database_paging.aspx)\n\t\t\t-使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EGrid\u003C\u002Fem\u003E1.PageIn","createTime":"2010-04-01 09:41:27","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-2190657-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-2190657-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-2190657-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-2190657-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130","title":"\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet_v2.3.2_dll","desc":"\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet - \u003Cem\u003EExt\u003C\u002Fem\u003EJS based ASP.NET Controls with Full AJAX Support\n\t\n\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有ViewState,没有JavaScript,没有CSS,没有Update\u003Cem\u003EPanel\u003C\u002Fem\u003E,没有WebServices的Web应用程序。\n\n支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet基于一些开源的程序\u003Cem\u003EExt\u003C\u002Fem\u003EJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Easp.net\u002F\n开源: http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Easpnet.codeplex.com\u002F\n博客: http:\u002F\u002Fsanshi.cnblogs.com\u002F\n邮箱: sanshi.ustc@gmail.com\n\n\n发布历史:\n\n+2010-09-29 v2.3.2\n\t-不绑定任何数据到\u003Cem\u003EGrid\u003C\u002Fem\u003E时,确保页面不会出错。\n\t-修正了\u003Cem\u003EGrid\u003C\u002Fem\u003E列属性DataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。\n\t-修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。\n\t-增加土耳其语言资料文件(feedback:abdullaharslan)。\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的BoundField增加NullDisplayT\u003Cem\u003Eext\u003C\u002Fem\u003E属性,用于处理数据库\u003Cem\u003E中\u003C\u002Fem\u003E的null值,如果没有设置则默认为空字符串。\n\t-修正DatePicker\u003Cem\u003E中\u003C\u002Fem\u003E的一个bug(31\u002F01\u002F2010将会返回NULL)使用DateFormatString来生成SelectedDate属性(feedback:OktaEndy)。\n\t-修正\u003Cem\u003Eext\u003C\u002Fem\u003Ejs最新版本(v3.2.2)\u003Cem\u003E中\u003C\u002Fem\u003E的一个bug,如果下拉列表\u003Cem\u003E中\u003C\u002Fem\u003E存在两个相同的T\u003Cem\u003Eext\u003C\u002Fem\u003E,则SelectedValue返回值永远是第一个T\u003Cem\u003Eext\u003C\u002Fem\u003E的值(feedback:ben.zhou)。\n\t-应用补丁#6593, #6621(feedback:vbelyaev)。\n\t+修正IE7下\u003Cem\u003EGrid\u003C\u002Fem\u003E分页速度慢(feedback:youwei, StevenGuan, hazardvn, gavindou, ttjacky)。\n\t\t-实际上IE7下所以的回发都慢,原因是客户端的Base64编码速度慢,已经使用encodeURIComponent来代替Base64编码。\n\t-俄语翻译(feedback:vbelyaev)。\n\t\n\t\n\n+2010-06-30 v2.3.1\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件将不在依赖ViewState,减少1\u002F4左右的HTTP数据传输量。\n\t-控件和示例的增强。\n\t\n\t\n\n+2010-03-28 v2.2.1\n\t+为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 \n\t\t-修正此函数通过PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript调用时不能正确\u003Cem\u003E显示\u003C\u002Fem\u003EIcon的BUG(feedback:zhaowenke)。\n\t-修正basic\u002Fhello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。\n\t-隐藏示例首页最外层Region\u003Cem\u003EPanel\u003C\u002Fem\u003E的边框ShowBorder=\"false\"。\n\t+集成\u003Cem\u003EExt\u003C\u002Fem\u003Ejs最新版本v3.1.1。\n\t\t-增加一个新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时页面消失的BUG。\n\t\t-删除\u003Cem\u003EPanel\u003C\u002Fem\u003E的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.aspx。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal=\"false\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会弹出确认对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数\u003Cem\u003E中\u003C\u002Fem\u003E的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon=\"Close\",现在需要这样定义Icon=\"SystemClose\"。\n\t-WindowPosition默认居\u003Cem\u003E中\u003C\u002Fem\u003E,而不是黄金分割位置。\n\t+Button, Window等控件弹出位置属性的变化。\n\t\t-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_self\" -\u003E Target=\"Self\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。\n\t\t-Confirm.GetShowReference的最后一个参数target变为枚举类型。\n\t\t-Alert.GetShowReference\u003Cem\u003E中\u003C\u002Fem\u003E的showInParent参数也变为Target枚举类型。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的\u003Cem\u003E显示\u003C\u002Fem\u003E位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成\u003Cem\u003EExt\u003C\u002Fem\u003Ejs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS问题。\n\t-修正\u003Cem\u003EGrid\u003C\u002Fem\u003E的列名\u003Cem\u003E中\u003C\u002Fem\u003E不能包含\u003Cem\u003E中\u003C\u002Fem\u003E文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。\n\t-修正了在\u003Cem\u003EGrid\u003C\u002Fem\u003E的PageIndexChange事件\u003Cem\u003E中\u003C\u002Fem\u003E不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。\n\t-Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行\u003Cem\u003E显示\u003C\u002Fem\u003E,请为第一个按钮设置CssStyle=\"float:left;\"属性。\n\t-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加EnableEdit属性。\n\t-使用Hidden来\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。\n\t-使用Hidden控制Window控件的\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏,Popup已经标记为Obsolete属性。\n\t-Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其\u003Cem\u003E中\u003C\u002Fem\u003E的Close全部改为Hide。\n\t-增加TabStrip\u003Cem\u003E中\u003C\u002Fem\u003ETab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument\u003Cem\u003E中\u003C\u002Fem\u003EIcon属性映射错误(feedback:nopnop9)。\n\t-修正HtmlEditor不能编辑的BUG(feedback:TheBox)。\n\t-修正IE下有时会\u003Cem\u003E出现\u003C\u002Fem\u003E空白页面的情况(feedback:olivia919)。\n\t\n\t\n\n+2009-12-06 v2.1.8\n\t-修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。\n\t-修正了IE下\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的一个JS问题(feedback:lqm4108)。\n\t-修正Alert消息\u003Cem\u003E中\u003C\u002Fem\u003E引号未编码导致的JS错误(feedback:sun1299shine)。\n\t+集成\u003Cem\u003Eext\u003C\u002Fem\u003Ejs3.0.3。\n\t\t-修正弹出对话框的宽度计算错误(会保持最小的状态)。\n\t\t-增加新的皮肤Gray。\n\t-为示例工程添加改变语言和皮肤的下拉列表。\n\t-为PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E增加静态函数Refresh,在切换语言和皮肤时使用。\t\n\n\n\n+2009-12-01 v2.1.7\n\t-增加示例(iframe\u002Fparent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。\n\t-修正一些书写错误(feedback:bmck)。\n\t-从Region控件\u003Cem\u003E中\u003C\u002Fem\u003E删除SplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。\n\t-Border\u003Cem\u003EPanel\u003C\u002Fem\u003E更名为Region\u003Cem\u003EPanel\u003C\u002Fem\u003E。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加\u003Cem\u003E中\u003C\u002Fem\u003E国的省市县三级联动示例(data\u002Fshengshixian.aspx)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程\u003Cem\u003E中\u003C\u002Fem\u003E会\u003Cem\u003E重复\u003C\u002Fem\u003E加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。\n\t-修正了启用AutoPostBack的\u003Cem\u003EGrid\u003C\u002Fem\u003E,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的\u003Cem\u003E点击\u003C\u002Fem\u003E事件(feedback:yymaoji)。\n\t\n\t\n\t\n+2009-11-26 v2.1.6\n\t+修正动态创建\u003Cem\u003EGrid\u003C\u002Fem\u003E列的BUG(feedback:gxpan)。\n\t\t-增加示例(data\u002F\u003Cem\u003Egrid\u003C\u002Fem\u003E_dynamic_columns.aspx)。\n\t-修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如\u003Cem\u003EPanel\u003C\u002Fem\u003E,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。\n\t-重新设计模拟树的下拉列表的实现,避免选\u003Cem\u003E中\u003C\u002Fem\u003E某项后的闪烁。\n\t\t\t\n\n\n+2009-11-21 v2.1.5\n\t+Tree优化。\n\t\t-修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。\n\t\t-GetNodeById更名为FindNode,保持和FindControl一致命名。\n\t\t-删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。\n\t\t-删除ExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。\n\t\t-增加示例(data\u002Ftree_select_run.aspx),如何选\u003Cem\u003E中\u003C\u002Fem\u003E当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的属性NodeId被重命名为NodeID,这是\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet\u003Cem\u003E中\u003C\u002Fem\u003E的一个命名约定。\n\t\t\t-同时更名的还有\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn的ColumnId-\u003EColumnID,GetColumnId-\u003EGetColumnID。\n\t\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E1.Columns.FindColumnById函数被\u003Cem\u003EGrid\u003C\u002Fem\u003E1.FindColumn所替代。\n\t\t-为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。\n\t-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。\n\t-增加示例(other\u002Fcustom_postback.aspx)(feedback:thebox)。\n\t\t-如何自定义Javascript脚本和C#处理函数来响应键盘事件。\n\t-为Tree增加AutoLeafIdentification属性。\n\t\t-增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。\n\t\n\t\n\n+2009-11-17 v2.1.4\n\t-修正Window的关闭按钮提示信息一直是\u003Cem\u003E中\u003C\u002Fem\u003E文的BUG(feedback:thebox)。\n\t-部分\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件的设计时支持(会在后续版本\u003Cem\u003E中\u003C\u002Fem\u003E逐步完善)。\n\t-v0.2beta2版本\u003Cem\u003E中\u003C\u002Fem\u003E关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003EEnablePostBack)。\n\t-为T\u003Cem\u003Eext\u003C\u002Fem\u003EBox,T\u003Cem\u003Eext\u003C\u002Fem\u003EArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。\n\t+为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,用于指定验证失败时提示信息。\n\t\t-为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。\n\t+为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。\n\t\t-增加示例:form\u002Fform_validate.aspx\n\t\n\t\n\n+2009-10-19 v2.1.3\n\t+增加支持在AJAX时改变的控件属性列表(\u002Fajax.aspx)。\n\t\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程\u003Cem\u003E中\u003C\u002Fem\u003E会反映到页面\u003Cem\u003E中\u003C\u002Fem\u003E,但并不是所有的控件属性都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求\u003Cem\u003Eext\u003C\u002Fem\u003Ejs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.aspx示例,使用验证图片(feedback:kedee)。\n\t-为\u003Cem\u003EGrid\u003C\u002Fem\u003E增加AutoPostBack属性和RowClick事件,示例在\u002Fdata\u002F\u003Cem\u003Egrid\u003C\u002Fem\u003E_autopostback.aspx(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003ETemplateField生成到页面\u003Cem\u003E中\u003C\u002Fem\u003E控件具有唯一ID,例如\u003Cem\u003EGrid\u003C\u002Fem\u003E1_ct5_Label2,\u003Cem\u003EGrid\u003C\u002Fem\u003E1_ct6_Label2(feedback:geruger)。\n\t\n\t\n\n+2009-09-27 v2.1.2\n\t-为Tree控件增加GetExpandAllNodesReference和GetCollapseAllNodesReference两个函数。\n\t-修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。\n\t-增加pt_BR语言,由Ujvari提供。\n\t+为所有\u003Cem\u003EPanel\u003C\u002Fem\u003E(包括\u003Cem\u003EGrid\u003C\u002Fem\u003E,Tree,Form等)增加枚举类型Icon,其\u003Cem\u003E中\u003C\u002Fem\u003E包含1700多个小图标。\n\t\t-如果\u003Cem\u003EPanel\u003C\u002Fem\u003E具有IconUrl属性,则IconUrl优先于Icon。\n\t\t-所有Icon的列表在icon.aspx。\n\t-为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。\n\t\n\t\n\n+2009-09-15 v2.1.1\n\t-修正不能动态修改AccordionPane属性Items的BUG。\n\t+为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。\n\t\t-如果需要在父页面弹出确认对话框,需要设置ConfirmTarget=\"_parent\"(类似Window控件的Target=\"_parent\")。\n\t+为\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Alert.Show增加\u003Cem\u003E点击\u003C\u002Fem\u003E确定的JavaScript回调函数。\n\t\t-一个典型应用,在Window控件\u003Cem\u003E中\u003C\u002Fem\u003E打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。\n\t\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Alert.Show(\"参数错误!\", String.Empty, \u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.ActiveWindow.GetCloseReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Easp.net\u002Fdata\u002Ftree_run.aspx\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E增加GetNoSelectionAlertInParentReference函数,用来表示没有选\u003Cem\u003E中\u003C\u002Fem\u003E任何一项时在父页面弹出对话框的JS代码。\n\t-修正IE7下不能以下划线作为CSS\u003Cem\u003E中\u003C\u002Fem\u003E类名的前缀的BUG(feedback:Steve.Wei)。\n\t-添加定时器控件Timer,用来定时发起AJAX请求。\n\t\n\t\n\n+2009-09-06 v2.1.0\n\t-Button的Pressed属性值能够正确的反映客户端的变化。\n\t-优化Tree控件的AJAX实现。\n\t+为页面的Form添加autocomplete=\"off\"属性。\n\t\t-参考http:\u002F\u002Fwww.cnblogs.com\u002Fsanshi\u002Farchive\u002F2009\u002F09\u002F04\u002F1560146.html#1635830\n\t+添加对\u003Cem\u003Eext\u003C\u002Fem\u003Ejs3.0\u003Cem\u003E中\u003C\u002Fem\u003E所有语言的支持。\n\t\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet扩展的多语言包在js\\languages\\\u003Cem\u003Eext\u003C\u002Fem\u003Easpnet目录下,目前只有en,zh_CN,zh_TW三种实现\n\t\t-你可以向其\u003Cem\u003E中\u003C\u002Fem\u003E添加自己的语言版本,并执行js\\languages下的pack.bat打包,最后编译工程。\n\t\n\t\n\t\n+2009-09-01 v2.0.9\n\t-为\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。\n\t+在aspx页面\u003Cem\u003E中\u003C\u002Fem\u003E必须\u003Cem\u003E显示\u003C\u002Fem\u003E的声明控件的集合属性(比如Tabs(TabStrip), Items(\u003Cem\u003EPanel\u003C\u002Fem\u003EBase), Nodes(TreeNode))。\n\t\t-这将会影响所有的aspx页面,所以要特别关注。\n\t-重命名Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E为AccordionPane (这也是在Asp.net AJAX\u003Cem\u003E中\u003C\u002Fem\u003E使用的名称).\n\t+所有的面板默认有两个集合属性(Toolbars和Items).\n\t\t-尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的).\n\t\t-这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。\n\t-祝你生日快乐 - 小师妹妹。\n\n\n\n+2009-08-29 v2.0.8\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config\u003Cem\u003E中\u003C\u002Fem\u003E修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的一个BUG(定义Mappings属性时)。\n\t+PageManager.Instance应该存在于HttpCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Current,而不是一个全局变量。\n\t -这个BUG导致Asp.net compatibility\u003Cem\u003E中\u003C\u002Fem\u003E的示例无法完成,现在已经修正。\n\t+去除PageManager\u003Cem\u003E中\u003C\u002Fem\u003E方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。\n\t -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility\u003Cem\u003E中\u003C\u002Fem\u003E的示例。\n\t\n\t\n\n+2009-08-25 v2.0.7\n -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止\u003Cem\u003E重复\u003C\u002Fem\u003E提交 - 默认为true。\n -\u003Cem\u003EGrid\u003C\u002Fem\u003E的Values属性访问限制由internal改为public,这就意味这可以自由改变\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E每个单元格的值了。\n -增加示例-如何将\u003Cem\u003EGrid\u003C\u002Fem\u003E控件导出为Excel(data\\\u003Cem\u003Egrid\u003C\u002Fem\u003E_excel_run.aspx)(feedback:503684912)。\n -如果TreeNode的属性Enabled=\"false\",则此项变灰并且不会被选\u003Cem\u003E中\u003C\u002Fem\u003E(feedback:your568)。\n -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.aspx)。\n -修正\u003Cem\u003EPanel\u003C\u002Fem\u003E图标不能\u003Cem\u003E显示\u003C\u002Fem\u003E的BUG(CSS\u003Cem\u003E中\u003C\u002Fem\u003Eclass名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSize\u003Cem\u003EPanel\u003C\u002Fem\u003EID属性来代替。\n\t\t-这样所有需要占据全屏的\u003Cem\u003EPanel\u003C\u002Fem\u003E(不管你是Accordion,\u003Cem\u003EPanel\u003C\u002Fem\u003E,Content\u003Cem\u003EPanel\u003C\u002Fem\u003E,Form,Group\u003Cem\u003EPanel\u003C\u002Fem\u003E,SimpleForm,Tree还是\u003Cem\u003EGrid\u003C\u002Fem\u003E,TabStrip)都可以通过这种方式全屏。\n\t\t-简单方便,示例可以参考 default.aspx 或者 other\\accordion_tree_run.aspx。\n \n \n\n+2009-08-14 v2.0.6\n\t-动态生成菜单实例(other\\menu_dynamic_run.aspx和other\\menu_dynamic2_run.aspx)(feedback:shguo)。\n\t-优化AJAX的内部实现,每个页面保存的ViewState现在减少1\u002F3左右(重要更新)。\n\t-优化Tree节点的NodeId自动生成,减少ViewState占用。\n\t\n\n\n+2009-08-09 v2.0 beta5\n\t+\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet和Asp.net的提交按钮兼容问题(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果Asp.net的按钮AJAX提交,必须设置UseSubmitBehavior=\"false\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load\u003Cem\u003E中\u003C\u002Fem\u003E设置需要在AJAX\u003Cem\u003E中\u003C\u002Fem\u003E需要更新的Asp.net控件了。\n\t\t-在Page_Load\u003Cem\u003E中\u003C\u002Fem\u003E设置了哪些需要在AJAX\u003Cem\u003E中\u003C\u002Fem\u003E更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。\n\t\t-示例在aspnet\\fckeditor_run.aspx和aspnet\\aspnet_run.aspx。\n\t\t-FCKEditor和上传控件兼容。示例在aspnet\\fileupload_run.aspx。\n\t-修正ToolbarT\u003Cem\u003Eext\u003C\u002Fem\u003E的文本在AJAX下更新的BUG。\n\t-Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。\n\t-更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。\n\t\n\n\n+2009-08-02 v2.0 beta4\n\t+和Asp.Net的Forms Authentication兼容[feedback:mgzhenhong]。\n\t\t-采用和Asp.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。\n\t\t-现在支持Response.Redirect,你可以选择Response.Redirect或者\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Redirect重定向页面,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。\n\t-Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不\u003Cem\u003E显示\u003C\u002Fem\u003E(Target=\"_parent\")的BUG[feedback:xmq&mgzhenhong]。\n\t\n\n\n+2009-07-22 v2.0 beta3\n\t-兼容FCKEditor。\n\t-在IE8.0,Firefox3.5下测试通过。以后\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet将不会对IE6.0提供支持。\n\t\n\n\n+2009-07-13 v2.0 beta2\n\t-集成\u003Cem\u003Eext\u003C\u002Fem\u003Ejs最新版本v3.0。\n\t+兼容IE6.0-7.0-8.0。\n\t\t-这应该是\u003Cem\u003EExt\u003C\u002Fem\u003Ejs3.0的一个BUG,在IE6.0-7.0下面设置\u003Cem\u003EExt\u003C\u002Fem\u003E.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。\n\t\t-目前先禁用IE6.0-7.0的QuickTips。\n\t-优化底层JavaScript。\n\t\n\t\n\t\n+2009-07-05 v2.0 beta1\n\t-更新\u003Cem\u003Eext\u003C\u002Fem\u003Ejs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet自身的CSS会紧挨着页面标签引入,这样在\u003Cem\u003E中\u003C\u002Fem\u003E自定义的样式可以覆盖\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet缺省样式。\n\t+Alert对话框会遮挡所有的Window窗口。\n\t\t-使用一个变通的方法解决,因为无法改变\u003Cem\u003EExt\u003C\u002Fem\u003E.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。\t\n\t-为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。\n\t-因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选\u003Cem\u003E中\u003C\u002Fem\u003E第一项。\n\t-重新绑定模拟树的下拉列表后,选\u003Cem\u003E中\u003C\u002Fem\u003E项的前面有图片的HTML标签的BUG。\n\t-更新自定义JavaScript组件\u003Cem\u003EExt\u003C\u002Fem\u003E.ux.SimplePagingToolbar。\n\t-更新示例工程。\n\t\n\t\n\n+2009-03-25 v1.3.1\n\t-Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed]\n\t-Window\u003Cem\u003E中\u003C\u002Fem\u003E的EnableIFrame==false,则\u003Cem\u003E点击\u003C\u002Fem\u003E关闭按钮时报JS错误。[fixed]\n\t-页面包含FileUpload控件,需要\u003Cem\u003E点击\u003C\u002Fem\u003E按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet\u002Ffileupload.aspx)[fixed]\n\t-HtmlEditor\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果弹出的窗口(\u003Cem\u003EExt\u003C\u002Fem\u003E-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时\u003Cem\u003E出现\u003C\u002Fem\u003EJS错误(http:\u002F\u002F\u003Cem\u003Eext\u003C\u002Fem\u003Ejs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果页面\u003Cem\u003E中\u003C\u002Fem\u003E存在ASP.NET控件(T\u003Cem\u003Eext\u003C\u002Fem\u003EBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed]\n\t-页面上放置\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet-Button和ASP.NET-Button,则\u003Cem\u003E点击\u003C\u002Fem\u003E\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和\u003Cem\u003EExt\u003C\u002Fem\u003Ejs2.2.1\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EExt\u003C\u002Fem\u003E.Ajax.serializeForm的实现有关。[fixed]\n\t-\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet工程\u003Cem\u003E中\u003C\u002Fem\u003E使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件和ASP.NET标准控件和平共处了。[fixed]\n\t\t-如果一个ASP.NET按钮控件要使用\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet的原生AJAX,只需要设置属性 UseSubmitBehavior=\"false\" 即可。\n\t\t-如果要在一次\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet\u002Faspnet.aspx)。\n\n\n\n+2009-02-27 v1.2 beta9\n\t-网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed]\n\t-自动测试功能会在以后版本\u003Cem\u003E中\u003C\u002Fem\u003E逐步完善。这个版本完成测试框架,采用\u003Cem\u003EExt\u003C\u002Fem\u003Ejs\u003Cem\u003E中\u003C\u002Fem\u003EJS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed]\n\t+系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed]\n\t\t-底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。\t\n\t\t-PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E静态类\u003Cem\u003E中\u003C\u002Fem\u003E的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面\u003Cem\u003E中\u003C\u002Fem\u003E表单修改的确认提示框的脚本”。\n\t\t---[updated]删除PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的GetConfirmFormModifiedReference,使用CurrentActiveWindow\u003Cem\u003E中\u003C\u002Fem\u003E的GetConfirmFormModifiedCloseReference\u002FGetConfirmFormModifiedCloseRefreshReference\u002FGetConfirmFormModifiedClosePostBackReference三个方法代替。\n\t\t-不会修改弹出页面的URL(\u003Cem\u003EExt\u003C\u002Fem\u003E-Window\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.GetFormModifiedConfirmReference获取此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的ASPX页面\u003Cem\u003E中\u003C\u002Fem\u003E查找RegisterPageStateChangedScript属性,并删除,否则会运行错误!\n\t\t-A页面有\u003Cem\u003EExt\u003C\u002Fem\u003E-Window控件弹出B页面,B页面有\u003Cem\u003EExt\u003C\u002Fem\u003E-Window控件弹出C页面,B页面的\u003Cem\u003EExt\u003C\u002Fem\u003E-Window控件设置Target='_parent',则弹出的\u003Cem\u003EExt\u003C\u002Fem\u003E-Window(C页面)会覆盖整个A页面,这是正确的。\n\t\t---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。\n\t\t-Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面\u003Cem\u003E中\u003C\u002Fem\u003E表单改变,然后关闭弹出窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出\u003Cem\u003EExt\u003C\u002Fem\u003E-Window,再然后刷新父页面或回发父页面”。\n\t\t---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。\n\t\t-如果弹出窗口(Window控件)\u003Cem\u003E中\u003C\u002Fem\u003EIFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时\u003Cem\u003E点击\u003C\u002Fem\u003E右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。\n\t\t-Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的\u003Cem\u003EExt\u003C\u002Fem\u003E-Window最终都渲染到最外层的页面,为了保证这些IFrame的name不同,IFrameName使用的是GUID,内部处理)。\n\t\t-CurrentActiveWindow改名为ActiveWindow。\n\t\t-[特别注意]GetWriteBackValueReference(string controlClientIds, string value, params string[] values)函数现在的定义是GetWriteBackValueReference(params string[] values)\n\t\t---所有调用GetWriteBackValueReference的地方,需要删除第一个参数(一般是ActiveWindow.GetLoadStateReference())。\n\t\t\n\t\n\n+2009-02-23 v1.2 beta8\n\t-Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed]\n\t-DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed]\n\t-DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed]\n\t-升级底层\u003Cem\u003EExt\u003C\u002Fem\u003EJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed]\n\t-页面加载过程\u003Cem\u003E中\u003C\u002Fem\u003E的时间信息保存在Javascript变量window.box.timeInfo\u003Cem\u003E中\u003C\u002Fem\u003E。[added]\n\t+增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed]\n\t\n\t\n\n+2008-10-28 v1.2 beta7\n\t-DropDownList没有选\u003Cem\u003E中\u003C\u002Fem\u003E任何一项,回发时报错[feedback:huihuang]。[fixed]\n\t-Window\u003Cem\u003E显示\u003C\u002Fem\u003E位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed]\n\t+PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E优化。[fixed]\n\t\t-去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。\n\t\t-去除RegisterStartupScript的重载函数,只保留最简单的PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript(string script)函数。\n\t\t-Resirect增加重载函数Redirect(string url, string target),其\u003Cem\u003E中\u003C\u002Fem\u003Etarget可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。\n\t-Image控件增加ImageWidth\u002FImageHeight\u002FImageCssStyle\u002FImageCssClass\u002FImageAlt属性[feedback:jqpeng]。[fixed]\n\t-发布包\u003Cem\u003E中\u003C\u002Fem\u003E增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-Content\u003Cem\u003EPanel\u003C\u002Fem\u003E的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时\u003Cem\u003E显示\u003C\u002Fem\u003E不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样一个效果,如果Tab1默认\u003Cem\u003E显示\u003C\u002Fem\u003E,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed]\n\t\t-需要替换新的blowery.Web.HttpCompress.dll,解决方案见http:\u002F\u002Fpohee.com\u002Fit\u002Fhttp-compression-in-aspnet-20\u002F。\n\t+DropDownList优化。[fixed]\n\t\t-去除EnableFirstItem\u002FFirstItemT\u003Cem\u003Eext\u003C\u002Fem\u003E\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.Insert(0, new \u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选\u003Cem\u003E中\u003C\u002Fem\u003E[feedback:jqpeng]。\n\t\t\t-和Asp.net\u003Cem\u003E中\u003C\u002Fem\u003E的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = \"\";\n\t\t-ListItemCollection增加重载函数Add(string t\u003Cem\u003Eext\u003C\u002Fem\u003E, string value),这样方便后台添加列表项。\n\t-处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed]\n\t-注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS\u003Cem\u003E中\u003C\u002Fem\u003E的height不同,CSS\u003Cem\u003E中\u003C\u002Fem\u003E的height是指内容的高度,除去padding\u002Fborder-width\u002Fmargin)。[fixed]\n\t+为所有控件属性增加在VS\u003Cem\u003E中\u003C\u002Fem\u003E的智能提示。[fixed]\n\t\t-需要将\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.XML和\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。\n\t+控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed]\n\t\t-TriggerIconType.Default -\u003E TriggerIconType.None\n\t\t-SystemIconType.Empty -\u003E SystemIconType.None\n\t\t-RegexPattern.USER_DEFINED -\u003E RegexPattern.None\n\t-表单验证属性名称变化(ValueToCompare-\u003ECompareValue,ControlToCompare-\u003ECompareControl)。[fixed]\n\t+注意:一个属性可以拥有多个值的情况。[fixed]\n\t\t-属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。\n\t\t-其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。\n\t+AccordionLink实现为控件。[fixed]\n\t\t-可以方便的在子页面(iframe)\u003Cem\u003E中\u003C\u002Fem\u003E通过js切换父页面\u003Cem\u003E中\u003C\u002Fem\u003E选\u003Cem\u003E中\u003C\u002Fem\u003E的菜单项(Accordion-\u003EAccordionLink)(示例在other\u002Faccordion_links_run.aspx,other\u002Faccordion_links_run_iframe_htm)[feedback:jima]。\n\t+确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form\u002Fform_dynamic_run.aspx)。[fixed]\n\t\n\t\n\t\n+2008-10-15 v1.2 beta5\n\t-验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed]\n\t+优化下拉列表。[fixed]\n\t\t-验证下拉列表时,应该取ListItem的Value属性进行验证,而不是T\u003Cem\u003Eext\u003C\u002Fem\u003E属性。\n\t\t-DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyT\u003Cem\u003Eext\u003C\u002Fem\u003E属性。\n\t\t-ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)\u003Cem\u003E中\u003C\u002Fem\u003E设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E起作用(示例见other\u002Faccordion_run.aspx)。[fixed]\n\t\t-Accordion去除EnableHightlight属性,Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E增加EnableHightlight属性。\n\t\t-影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E增加EnableLargeHeader和EnableHightlight属性。\n\t-Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E增加Links属性,可以绑定列表数据到Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E,呈现的是链接的列表(示例在other\u002Faccordion_links_run.aspx)。[fixed]\n\t\t-原来放置在Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的容器,比如Content\u003Cem\u003EPanel\u003C\u002Fem\u003E需要在外层加上标签。\n\t\t-适当增大Accordion\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少ASPX\u003Cem\u003E中\u003C\u002Fem\u003EHTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed]\n\t\t-\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FGroup\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FContent\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form\u003Cem\u003E中\u003C\u002Fem\u003E动态添加控件的BUG,现在form\u002Fform_dynamic_run.aspx示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordion\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FGroup\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002F\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)属性和\u003Cem\u003EGrid\u003C\u002Fem\u003E的Rows属性(\u003Cem\u003EGrid\u003C\u002Fem\u003ERowCollection)。\n\t\t-保留TabStrip的Tabs(TabCollection)属性。\n\t\t-保留PageLayout\u002FBorderLayout的Regions(RegionCollection)属性。\n\t-预祝今晚神七发射成功。\n\t\n\t\n\t\n+2008-09-22 v1.2 beta2\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E选\u003Cem\u003E中\u003C\u002Fem\u003E项(SelectedRowIndexArray)在ajax回发过程\u003Cem\u003E中\u003C\u002Fem\u003E存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对\u003Cem\u003EGrid\u003C\u002Fem\u003E进行多次删除添加操作后,SelectedRowIndexArray选\u003Cem\u003E中\u003C\u002Fem\u003E项\u003Cem\u003E中\u003C\u002Fem\u003E会存在当前不存在的行序号,导致服务器端遍历选\u003Cem\u003E中\u003C\u002Fem\u003E项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例\u003Cem\u003E中\u003C\u002Fem\u003E表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002FButton\u002FHyperLink\u002FLabel\u002FImage\u002FLinkButton\u002FT\u003Cem\u003Eext\u003C\u002Fem\u003EBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FT\u003Cem\u003Eext\u003C\u002Fem\u003EArea\u002FHtmlEditor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002FRadioButton\u002FRadioButtonList\u002FDropDownList\n\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLinkButton\u002FHyperLink增加一些Ajax可更新属性。[fixed]\n\t+隐藏的方式由HideMode属性控制Visibility\u002FOffsets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm\u003Cem\u003E中\u003C\u002Fem\u003E隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。\n\t-ToolbarT\u003Cem\u003Eext\u003C\u002Fem\u003E\u002FToolbarFill\u002FToolbarSeparator在ASPX\u003Cem\u003E中\u003C\u002Fem\u003E设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed]\n\t-Button去除MarginRight属性(可以通过CssStyle=\"margin-right:5px;\"达到相同的效果)[fixed]\n\t\n\t\n\t\n+2008-09-09 v1.1\n\t+Toolbar去除IsPageMenu属性,在网报\u003Cem\u003E中\u003C\u002Fem\u003E可以用自定义样式实现,而不应该写在控件\u003Cem\u003E中\u003C\u002Fem\u003E。[fixed]\n\t\t-网报:CssClass=\"toolbar-pagemenu\" CssStyle=\"border:0px;\",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(..\u002Fimages\u002Fpagemenu_toolbar_background.gif) repeat-x left top;}。\n\t-Region去除默认的Layout=Fit,如果希望Region使用Fit\u002FAnchor\u002FColumn\u002FRow等布局的话,需要手工指定。[fixed]\n\t-ToolbarSeparator\u002FToolbarFill在Ajax更新Hidden属性的BUG。[fixed]\n\t+布局整理。[fixed]\n\t\t-新增Column\u002FAbsolute\u002FRow三种布局,加上以前的Container\u002FFit\u002FAnchor\u002FAccordion\u002FBorder\u002FForm六种布局,总共有9\u003Cem\u003E中\u003C\u002Fem\u003E布局可供使用。\n\t\t-其\u003Cem\u003E中\u003C\u002Fem\u003E一些控件默认使用一种布局:SimpleForm(Form)\u002FForm(Form)\u002F\u003Cem\u003EPanel\u003C\u002Fem\u003E-Group\u003Cem\u003EPanel\u003C\u002Fem\u003E(Container)\u002FAccordion(Accordion)\u002FPageLayout(Border)\u002FBorderLayout(Border)\u002FTabStrip(Card),所有布局控件默认的布局是Container。\n\t\t-经常用到的布局控件:SimpleForm\u002FForm\u002FAccordion\u002FTabStrip\u002FBorderLayout,经常用到的布局:Fit\u002FRow\u002FAnchor\n\t\n\t\n\t\n+2008-09-08 v1.1 beta7\n\t-MenuButton\u002FMenuHyperLink增加HideOnClick属性,如果一个菜单项的作用仅仅为了弹出下级菜单,\u003Cem\u003E点击\u003C\u002Fem\u003E没反应,则可以这样设置HideOnClick=\"false\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-MenuButton\u002FMenuHyperLink\u002FMenuSeparator\u002FMenuT\u003Cem\u003Eext\u003C\u002Fem\u003E增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏菜单,请使用此属性而不是Visible属性)。[fixed]\n\t+大部分的\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet改造强烈依赖于此属性,这个版本发布后可以继续。\n\t\t-网报\u003Cem\u003E中\u003C\u002Fem\u003E唯一没有用到\u003Cem\u003EExt\u003C\u002Fem\u003EAspNetAjax的地方就是\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Redirect支持普通页面转向和\u003Cem\u003EExt\u003C\u002Fem\u003EAspNetAjax下页面转向。[fixed]\n\t+模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed]\n\t\t-因为if(\"0,2,9,11,\".indexOf('1,')\u003E=0){ok},这显然是不对的,此BUG涉及很多控件(\u003Cem\u003EGrid\u003C\u002Fem\u003E,DropDownList,TabStrip)。\n\t\t-解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) \u003E= 0){ok}。\n\t-DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed]\n\t-Button\u002FMenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed]\n\t-Tree的Ajax支持(尚需优化)。[fixed]\n\t\n\t\n\n+2008-09-02 v1.1 beta5\n\t-DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed]\n\t-模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataT\u003Cem\u003Eext\u003C\u002Fem\u003EField\u002FDataValueField\u002FDataSimulateTreeLevelField\u002FDataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed]\n\t-UserControlConnector导致的Ajax错误,去除Update\u003Cem\u003EPanel\u003C\u002Fem\u003EConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用Asp.net的控件HiddenField,而是使用\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要\u003Cem\u003E显示\u003C\u002Fem\u003E隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,RadioButtonList\u003Cem\u003E中\u003C\u002Fem\u003E项如果存在汉字,则会换行的BUG。[fixed]\n\t-增加两个Theme[Slate\u002FBlack](样式尚需完善)。[fixed]\n\t\n\t\n\t\n+2008-09-01 v1.1 beta4\n\t-非当前Tab\u003Cem\u003E中\u003C\u002Fem\u003E如果有Content\u003Cem\u003EPanel\u003C\u002Fem\u003E,则在页面上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢页面的加载速度),现在已经解决这个问题。[fixed]\n\t-RadioButtonList去除EnableBackgroundColor\u002FEnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第一个Trigger图标不会先\u003Cem\u003E显示\u003C\u002Fem\u003E再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed]\n\t-Web.config\u003Cem\u003E中\u003C\u002Fem\u003E增加配置项FormLabelWidth=\"80\"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm\u002FForm的表单字段标题的宽度。[fixed]\n\t+完善Ajax。[fixed]\n\t\t-RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue\u002FSelectedItem)。\n\t\t-DropDownList增加Ajax可更新属性Enable\u002FSelectedIndex(SelectedValue\u002FSelectedItem)\u002FDataSource。\n\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E增加Ajax可更新属性Columns(也就是说\u003Cem\u003EGrid\u003C\u002Fem\u003E列在回发时隐藏\u003Cem\u003E显示\u003C\u002Fem\u003E了一些,也能正确的Ajax)。\n\t\t-ToolbarT\u003Cem\u003Eext\u003C\u002Fem\u003E增加Ajax可更新属性T\u003Cem\u003Eext\u003C\u002Fem\u003E。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向页面,使用系统的方法 PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.Redirect(string url),使用Response.Redirect方法会出错。[fixed]\n\t+安全的Ajax设计。[fixed]\n\t\t-这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。\n\t\t-基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。\n\t\t-整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。\n\t-网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed]\n\t\n\t\n\t\n+2008-08-29 v1.1 beta1\n\t+Window控件是否弹出的状态在回发时维持。[fixed]\n\t\t-控件设计的一个原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。\n\t+完全抛弃Asp.NetAjax,\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件内置Ajax支持。[fixed]\n\t\t-这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager\u003Cem\u003E中\u003C\u002Fem\u003E有设置启用Ajax回发的属性-EnableAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的\u003Cem\u003E点击\u003C\u002Fem\u003E一个按钮弹出窗口,可以在Button的OnClick事件\u003Cem\u003E中\u003C\u002Fem\u003E设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前\u003Cem\u003EExt\u003C\u002Fem\u003EAspNetAjax的限制。\n\t\t\t-只对\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件起作用,对Asp.net控件不起作用。\n\t\t\t-对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。\n\t\t\t-对改变控件的Visible属性会有错误。\n\t\t\t-Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。\n\t-PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选\u003Cem\u003E中\u003C\u002Fem\u003E的状态在回发后会得到保持。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E选\u003Cem\u003E中\u003C\u002Fem\u003E行的状态在第一次回发时不能保持的BUG。[fixed]\n\t\n\t\n\t\n+2008-08-26 v1.0\n\t+已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。\n\t\t-主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化弹出窗口\u003Cem\u003E中\u003C\u002Fem\u003EIFrame的\u003Cem\u003E显示\u003C\u002Fem\u003E速度。[fixed]\n\t\t-在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报\u003Cem\u003E中\u003C\u002Fem\u003E需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config\u003Cem\u003E中\u003C\u002Fem\u003E设置(推荐方法),也可以为每个页面设置。[fixed]\n\t\t-一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器\u003Cem\u003E中\u003C\u002Fem\u003ECookie设置的值)(示例在default.aspx)。\n\t-TreeNode增加属性SingleClickExpand,表示\u003Cem\u003E点击\u003C\u002Fem\u003E可切换节点的折叠展开状态。[fixed]\n\t+TabStrip\u003Cem\u003E中\u003C\u002Fem\u003E非当前Tab会延迟渲染。[fixed]\n\t\t-这会明显加快页面的渲染速度,网报\u003Cem\u003E中\u003C\u002Fem\u003E一个典型的费用审批页面可以减少200ms的渲染时间。\n\t\t-由于非当前Tab不会在页面加载时渲染,所以那些Tab\u003Cem\u003E中\u003C\u002Fem\u003E的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件\u003Cem\u003E中\u003C\u002Fem\u003E。\n\t-不能比较两个DataPicker大小的BUG。[fixed]\n\t-TabStrip延迟加载引起的BUG(非当前Tab\u003Cem\u003E中\u003C\u002Fem\u003E的Content\u003Cem\u003EPanel\u003C\u002Fem\u003E会占据页面空间,已修正)。[fixed]\n\t-全新的\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet.Examples(基础知识\u002F表单控件\u002F数据绑定\u002F容器布局\u002FIFrame框架)。[fixed]\n\t\n\t\n\t\n+2008-08-19 v0.4 beta6\n\t+PageManager增加两个属性(EnableInlineStyleJavascript\u002FApplyParentStyleJavascript),可以在IFrame页面\u003Cem\u003E中\u003C\u002Fem\u003E使用父页面的脚本和样式(示例在iframe\u002Fdefault.aspx和iframe\u002Fpage3.aspx)。[fixed]\n\t\t-测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。\n\t-RadioButtonList放在在BorderLayout\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003E显示\u003C\u002Fem\u003E不了的BUG [feedback:zgjiang2]。[fixed]\n\t+\u003Cem\u003Eext\u003C\u002Fem\u003Ejs的BUG,当页面\u003Cem\u003E中\u003C\u002Fem\u003E含有iframe时,\u003Cem\u003EExt\u003C\u002Fem\u003E.onReady会被调用两次(IE6\u002FIE7)(http:\u002F\u002Fwww.\u003Cem\u003Eext\u003C\u002Fem\u003Ejs.net\u002Fforum\u002Fshowthread.php?t=43246)(示例在test.aspx)[fixed]\n\t\t-现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true;\n\t+需要先回发页面再弹出IFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。\n\t\t-另一种做法(推荐):PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.aspx\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-\u003Cem\u003E点击\u003C\u002Fem\u003E关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.aspx。[fixed]\n\t+Radiobuttonlist\u003Cem\u003E显示\u003C\u002Fem\u003E有重影(示例在radio.aspx)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form\u003Cem\u003E中\u003C\u002Fem\u003E添加FormRow,并动态的向FormRow\u003Cem\u003E中\u003C\u002Fem\u003E添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed]\n\t+IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会\u003Cem\u003E重复\u003C\u002Fem\u003E加载IFrame2-3次[feedback:xmzhu]。[fixed]\n\t\t-这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame被添加到页面,而这是不需要的。\n\t\t-现在\"是否弹出窗口、窗口标题、IFrameUrl\"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx)\n\t\n\t\n\t\n+2008-08-13 v0.4 beta4\n\t-\u003Cem\u003E点击\u003C\u002Fem\u003E关闭窗口的按钮,在IE下会有JS错误。[fixed]\n\t-Window的右上角关闭图标增加提示,优化事件响应。[fixed]\t\n\t-Window的代码重构。[fixed]\t\n\t+修正一个的内存泄漏。[fixed]\n\t\t-IE7下测试,打开iframe\u002Fdefault.aspx页面,iexplorer占内存68.368M。\n\t\t-内存存在泄漏时,\u003Cem\u003E点击\u003C\u002Fem\u003Eiframe\u002Fpage3.aspx页面8次后iexplorer占118.792M内存。\n\t\t-修正后,\u003Cem\u003E点击\u003C\u002Fem\u003Eiframe\u002Fpage3.aspx页面8次后iexplorer占76.492M内存。\n\t\t-IE窗口最小化时,IE会自动进行垃圾回收。\n\t\n\t\n\t\n+2008-08-12 v0.4 beta3\n\t-底层的javascript框架\u003Cem\u003EExt\u003C\u002Fem\u003Ejs升级为v2.2,\u003Cem\u003EGrid\u003C\u002Fem\u003E的渲染速度有很大提升。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的EnableDelayRender默认为true(如果没有设置\u003Cem\u003EGrid\u003C\u002Fem\u003E的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"解决)。[fixed]\n\t+页面正在加载的提示尽早的\u003Cem\u003E显示\u003C\u002Fem\u003E出来。[fixed]\n\t\t-首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容\u003Cem\u003E显示\u003C\u002Fem\u003E出来。\n\t\t-加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的\u003Cem\u003E显示\u003C\u002Fem\u003E。\n\t\n\t\n\t\n+2008-08-08 v0.4 beta2\n\t-TabStrip延时加载出错。[fixed]\n\t-Window的IFrameUrl处理的BUG,比如Pages_\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet目录下的页面应该为.\u002FFE_ApplyEditor.aspx或~\u002FPages_\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet\u002FFE_ApplyEditor.aspx。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在页面\u003Cem\u003E显示\u003C\u002Fem\u003E后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed]\n\t-button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed]\n\t-Window\u003Cem\u003E中\u003C\u002Fem\u003E的保存并关闭按钮和Asp.netAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到页面的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed]\n\t\n\t\n\t\n+2008-08-05 v0.4 beta1\n\t-DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed]\n\t-DropDownList增加SelectedT\u003Cem\u003Eext\u003C\u002Fem\u003E属性(去除了模拟树时通过SelectedItem.T\u003Cem\u003Eext\u003C\u002Fem\u003E的多余html字符)。[fixed]\n\t-为了加快渲染速度,去掉一些特效(比如\u003Cem\u003EPanel\u003C\u002Fem\u003E的折叠效果,\u003Cem\u003EGrid\u003C\u002Fem\u003E的拖动列效果等)[feedback:dcding]。[fixed]\n\t-将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed]\n\t+弹出窗口\u003Cem\u003E中\u003C\u002Fem\u003E,\u003Cem\u003E点击\u003C\u002Fem\u003E按钮回发然后\u003Cem\u003E点击\u003C\u002Fem\u003E关闭按钮,\u003Cem\u003E出现\u003C\u002Fem\u003Ejs错误 [feedback:xmzhu]。[fixed]\n\t\t-因为在页面的Page_Load\u003Cem\u003E中\u003C\u002Fem\u003E,if (!IsPostBack){PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。\n\t\t-一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。\n\t\t-另一种办法就是在PageManager控件\u003Cem\u003E中\u003C\u002Fem\u003E增加RegisterPageStateChangedScript(向页面注册监视页面\u003Cem\u003E中\u003C\u002Fem\u003E表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx\u002Fsimpleform.aspx)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报\u003Cem\u003E中\u003C\u002Fem\u003E遇到这种情况)。\n\t-每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性\u003Cem\u003E出现\u003C\u002Fem\u003E)。[fixed]\n\t-T\u003Cem\u003Eext\u003C\u002Fem\u003EField等表单字段增加Readonly属性。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过\u003Cem\u003E点击\u003C\u002Fem\u003E按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx\u002Fpage2.aspx\u002Fsimpleform.aspx)\n\t\t\t-虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target=\"_parent\"),就完成了两种框架的转换,是不是很酷。\n\t\t\t-显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)\u002Fpage2.aspx(B)\u002Fsimpleform.aspx(C)),其\u003Cem\u003E中\u003C\u002Fem\u003EA包含B页面,当你在B\u003Cem\u003E中\u003C\u002Fem\u003E打开包含有页面C的窗口时,窗口不是在B\u003Cem\u003E中\u003C\u002Fem\u003E打开,而是在A\u003Cem\u003E中\u003C\u002Fem\u003E打开,这样才能保证窗口覆盖整个页面,当你从C\u003Cem\u003E中\u003C\u002Fem\u003E返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面\u003Cem\u003E中\u003C\u002Fem\u003E创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E弹出窗口。(default.aspx\u002Fpage3.aspx\u002Fsimpleform.aspx)\t\n\t\t+示例3,TriggerBox弹出窗口。(default.aspx\u002Ftriggerbox.aspx\u002Fsimpleform.aspx)\t\n\t\t\t-在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。\n\t\t-示例4,弹出窗口\u003Cem\u003E中\u003C\u002Fem\u003E的弹出窗口。\n\t-对整个Examples更新测试。[fixed]\n\t\n\t\n\t\n+2008-07-31 v0.3 beta12\n\t-IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab\u003Cem\u003E显示\u003C\u002Fem\u003E为空的BUG。[fixed]\n\t-对TabStrip\u002F\u003Cem\u003EPanel\u003C\u002Fem\u003E\u002FWindow\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame重新设计,如果设置IFrameUrl=\"#\"或者\"about:blank\",则不渲染iframe到页面节点,同时第二次打开Window\u003Cem\u003E中\u003C\u002Fem\u003E的IFrame不会有残影\u003Cem\u003E出现\u003C\u002Fem\u003E。[fixed]\n\t-如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed]\n\t-Tree控件,\u003Cem\u003E点击\u003C\u002Fem\u003E一个节点自动回发,则当前\u003Cem\u003E点击\u003C\u002Fem\u003E的那个节点的选\u003Cem\u003E中\u003C\u002Fem\u003E状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe\u003Cem\u003E中\u003C\u002Fem\u003E关闭按钮和window右上角关闭图标的调用方式)(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_iframe.aspx\u002Fsimpleform.aspx)。[fixed]\n\t\t-内部实现上,\u003Cem\u003E点击\u003C\u002Fem\u003E“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageCont\u003Cem\u003Eext\u003C\u002Fem\u003E.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。\n\t-参照Yslow的评分规则,将JS文件引用由head移动到body\u003Cem\u003E中\u003C\u002Fem\u003E。[fixed]\n\t-Firefox下,如果页面太长会出滚动条,原来在ViewPort样式\u003Cem\u003E中\u003C\u002Fem\u003E有body{overflow:hidden;}。[fixed]\n\t+IFrame内的页面宽度和高度会自动设置(是不是还在为1px\u002F2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx\u002Fsimpleform.aspx\u002Fsimpleform2.aspx)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSize\u003Cem\u003EPanel\u003C\u002Fem\u003EID,即需要设置宽度和高度为整个页面的宽度和高度的\u003Cem\u003EPanel\u003C\u002Fem\u003E),HideScrollbar属性用于隐藏滚动条(IE\u002FFirefox)。\n\t\n\t\n\t\n+2008-07-24 v0.3 beta11\n\t-web.config配置信息\u003Cem\u003E中\u003C\u002Fem\u003EMessageTarget改名为FormMessageTarget,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed]\n\t-去掉DropDownList控件的T\u003Cem\u003Eext\u003C\u002Fem\u003E属性(强制性),可以通过设置SelectedValue来设置选\u003Cem\u003E中\u003C\u002Fem\u003E哪一项 [feedback:xmzhu]。[fixed]\n\t-过滤提示消息\u003Cem\u003E中\u003C\u002Fem\u003E的换行符(转换为),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed]\n\t\n\t\n\t\n+2008-07-23 v0.3 beta10\n\t+完善Tree控件。[fixed]\n\t\t-如何将数据库\u003Cem\u003E中\u003C\u002Fem\u003E的数据绑定到Tree(示例在tree2_bind_database.aspx)。\n\t\t-ajax加载树节点,放在Update\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E才有ajax的效果(示例在tree2_ajax.aspx)。\n\t\t-更改TreeNode的ID为NodeId,否则两个树\u003Cem\u003E中\u003C\u002Fem\u003E不能有相同ID的TreeNode,这是不合理的。\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn的ID改名成ColumnId,否则同一个页面放置两个\u003Cem\u003EGrid\u003C\u002Fem\u003E,它们的\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E所有类型的列增加DataTooltipField\u002FDataTooltipFormatString两个字段,以\u003Cem\u003E显示\u003C\u002Fem\u003EToolTip(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选\u003Cem\u003E中\u003C\u002Fem\u003E样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确解析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则\u003Cem\u003E显示\u003C\u002Fem\u003E的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能解决##差旅交通费在IE和Firefox下\u003Cem\u003E显示\u003C\u002Fem\u003E的不同效果。\n\t\t-但是通过用来代替,从而实现FF和IE下样式的统一。\n\t\t-刚看到old9的解决方案:把“差旅交通费”改成“差旅交通费”,在IE下和FF下的都不换行,:-)\n\t-LinkButton增加OnClick事件 [feedback:huihuang]。[fixed]\n\t-Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed]\n\t+增加树控件(Tree)(示例在tree2.aspx)。[fixed]\n\t\t-可以在回发时维持树的状态(选\u003Cem\u003E中\u003C\u002Fem\u003E行,折叠\u002F展开,CheckBox)。\n\t\t-可以通过Inline的方式添加树节点,也可以绑定到XmlDocument\u002FXmlDataSource\u002FSiteMap。\n\t\t-\u003Cem\u003E点击\u003C\u002Fem\u003E树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。\n\t\n\t\n\t\n+2008-07-16 v0.3 beta8\n\t+Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E放置\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件,则渲染时会\u003Cem\u003E出现\u003C\u002Fem\u003E各种问题,比如下拉列表\u003Cem\u003E显示\u003C\u002Fem\u003E样式出错,\u003Cem\u003EGrid\u003C\u002Fem\u003E没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E渲染\u003Cem\u003EExt\u003C\u002Fem\u003EAspNet控件,如果容器的display='none',则会\u003Cem\u003E出现\u003C\u002Fem\u003E各种问题(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后\u003Cem\u003E显示\u003C\u002Fem\u003E容器。\n\t\t-现在\u003Cem\u003EGrid\u003C\u002Fem\u003E只要\u003Cem\u003E显示\u003C\u002Fem\u003E的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过\u003Cem\u003EGrid\u003C\u002Fem\u003E容器就会\u003Cem\u003E显示\u003C\u002Fem\u003E滚动条。\n\t+IE6下,在应用Asp.NetAjax后,Form\u003Cem\u003E中\u003C\u002Fem\u003E字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。\n\t\t-最后发现IE6下应用Asp.NetAjax后不仅Form\u003Cem\u003E中\u003C\u002Fem\u003E列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数\u003Cem\u003E中\u003C\u002Fem\u003E,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面\u003Cem\u003E中\u003C\u002Fem\u003E所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master 页面。\n\t+集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed]\n\t\t-解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();),\n\t\t 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。\n\t\n\t\n\t\n+2008-07-14 v0.3 beta6\n\t-增加FlashObject控件。[fixed]\n\t-PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed]\n\t-Accordion选\u003Cem\u003E中\u003C\u002Fem\u003E样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E增加EnableDelayRender属性(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s\u003Cem\u003E显示\u003C\u002Fem\u003E出来)。[fixed]\n\t\t-因为延迟加载数据不会改变\u003Cem\u003EGrid\u003C\u002Fem\u003E的大小,所以对于非布局内或不设定高度宽度的\u003Cem\u003EGrid\u003C\u002Fem\u003E,需要设置\"EnableDelayRender=false\"。\n\t-改变\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在\u003Cem\u003E点击\u003C\u002Fem\u003E一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed]\n\t\n\t\n\t\n+2008-07-12 v0.3 beta5\n\t-页面菜单Toolbar的分割符和背景不相融合。[fixed]\n\t-表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed]\n\t\t-如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和T\u003Cem\u003Eext\u003C\u002Fem\u003EBox比较大小需要指定CompareType。\n\t+如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx\u002Fajax_editor.aspx)。[fixed]\n\t\t-这是由于ajax后执行的javascript\u003Cem\u003E中\u003C\u002Fem\u003E不能有return false语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在t\u003Cem\u003Eext\u003C\u002Fem\u003Ebox_blur.aspx) [feedback:xmzhu]。[fixed]\n\t\t-在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-弹出Window默认\u003Cem\u003E显示\u003C\u002Fem\u003E的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是\"#\"。[fixed]\n\t+弹出的窗口\u003Cem\u003E中\u003C\u002Fem\u003E的弹出窗口的如果内容发生变化,则\u003Cem\u003E点击\u003C\u002Fem\u003E右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例\u003Cem\u003E中\u003C\u002Fem\u003Ealert\\alert_1.aspx和alert\\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-\u003Cem\u003E点击\u003C\u002Fem\u003E提交按钮后变成灰色不可再次\u003Cem\u003E点击\u003C\u002Fem\u003E(示例在button_click_gray.aspx)[feedback:jima]。[fixed]\n\t+增加Menu、MenuT\u003Cem\u003Eext\u003C\u002Fem\u003E、MenuSeparator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed]\n\t-增加SplitButton控件。[fixed]\n\t\n\t\n\t\n+2008-07-09 v0.3 beta4\n\t-DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed]\n\t+Form表单字段(T\u003Cem\u003Eext\u003C\u002Fem\u003EBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed]\n\t\t-增加ControlToCompare\u002FValueToCompare\u002FCompareOperator\u002FCompareMessage四个属性,示例在form_compare.aspx。\n\t+TabStrip\u003Cem\u003E中\u003C\u002Fem\u003E放置IFrame会\u003Cem\u003E出现\u003C\u002Fem\u003E渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed]\n\t+表单字段Enable=false时\u003Cem\u003E显示\u003C\u002Fem\u003E颜色太浅 [feedback:jima]。[fixed]\n\t\t-覆盖缺省样式的.x-item-disabled,设置不透明。\n\t\n\t\n\t\n+2008-07-08 v0.3 beta3\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E没有数据,向后翻页按钮可以\u003Cem\u003E点击\u003C\u002Fem\u003E的BUG [feedback:huihuang]。[fixed]\n\t+增加HiddenField控件。[fixed]\n\t\t-其实用T\u003Cem\u003Eext\u003C\u002Fem\u003EBox也能模拟HiddenField的行为,只需要设置CssStyle=\"display:none;\"即可。\n\t+TriggerBox 如果 EnableT\u003Cem\u003Eext\u003C\u002Fem\u003EBox = true,则不能将T\u003Cem\u003Eext\u003C\u002Fem\u003E回发(这是html的限制)。[fixed]\n\t\t-最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在t\u003Cem\u003Eext\u003C\u002Fem\u003Ebox2.aspx)。\n\t-模拟树的下拉列表在失去焦点后\u003Cem\u003E显示\u003C\u002Fem\u003E的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed]\n\t\t-增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-LinkButton和\u003Cem\u003EGrid\u003C\u002Fem\u003E的LinkButtonField增加Enable属性(示例在hyperlink.aspx和\u003Cem\u003Egrid\u003C\u002Fem\u003E.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加Update\u003Cem\u003EPanel\u003C\u002Fem\u003EConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed]\n\t\t-使用Update\u003Cem\u003EPanel\u003C\u002Fem\u003EConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:\u003Cem\u003EPanel\u003C\u002Fem\u003E。\n\t\t-示例在ajax3.aspx\u002Fcontent_page4.aspx。\n\t\t-示例content_page3.aspx\u003Cem\u003E中\u003C\u002Fem\u003E,\u003Cem\u003E点击\u003C\u002Fem\u003E“Ajax查询”按钮和关闭弹出的窗口(\u003Cem\u003E点击\u003C\u002Fem\u003E右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为false。[fixed]\n\t\t-使用Group\u003Cem\u003EPanel\u003C\u002Fem\u003E的地方需要手工添加AutoHeight=\"true\"属性。\n\t+增加UserControlConnector,可以在其\u003Cem\u003E中\u003C\u002Fem\u003E放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t-也可以在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed]\n\t+支持Asp.net ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E使用,示例在ajax1.aspx\u002Fcontent_ajax2.aspx\u003Cem\u003E中\u003C\u002Fem\u003E。\n\t\t-对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。\n\t\n\t\n\t\n+2008-07-02 v0.2 beta12\n\t+关闭前提示当前页面已经被修改(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-支持Iframe内按钮和window右上角关闭按钮。\n\t\t-删除CloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe\u003Cem\u003E中\u003C\u002Fem\u003E做法一致)。\n\t+iframe\u003Cem\u003E中\u003C\u002Fem\u003E的alert\u002Fconfirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed]\n\t\t-在Firefox下还有问题。[fix pending]\n\t+排序时在标题栏\u003Cem\u003E显示\u003C\u002Fem\u003E排序箭头,可以排序的列标题光标为手形(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_sorting.aspx)。[fixed]\n\t\t-可以通过设置\u003Cem\u003EGrid\u003C\u002Fem\u003E1.CurrentSortColumnIndex = 0;来强制某列\u003Cem\u003E显示\u003C\u002Fem\u003E排序箭头。\n\t\t-可以通过 \u003Cem\u003EGrid\u003C\u002Fem\u003E1.Columns[\u003Cem\u003EGrid\u003C\u002Fem\u003E1.CurrentSortColumnIndex].SortExpression 的方式取得当前\u003Cem\u003EGrid\u003C\u002Fem\u003E的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.aspx)。[fixed]\n\t-TabStrip的Tab\u003Cem\u003E中\u003C\u002Fem\u003E如果放置Content\u003Cem\u003EPanel\u003C\u002Fem\u003E,则内容渲染位置不正确。[fixed]\n\t-可以在Content\u003Cem\u003EPanel\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed]\n\t-如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+页面\u003Cem\u003E中\u003C\u002Fem\u003E任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EGrid\u003C\u002Fem\u003E的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E的LinkButtonField设置ConfirmT\u003Cem\u003Eext\u003C\u002Fem\u003E会出错 [feedback:huihuang]。[fixed]\n\t-增加静态类Confirm。[fixed]\n\t\n\t\n\t\n+2008-06-27 v0.2 beta10\n\t+\u003Cem\u003EGrid\u003C\u002Fem\u003E完善。[fixed]\n\t\t-CheckBoxField在回发时不能保持状态的BUG (已经更新了\u003Cem\u003Egrid\u003C\u002Fem\u003E_checkboxfield.aspx示例)。\n\t\t-\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E模拟树\u003Cem\u003E显示\u003C\u002Fem\u003E,\u003Cem\u003EGrid\u003C\u002Fem\u003EColumn增加DataSimulateTreeLevelField属性(一个\u003Cem\u003EGrid\u003C\u002Fem\u003E只能有一个Column指定此属性),指定此列模拟树\u003Cem\u003E显示\u003C\u002Fem\u003E时的层次字段(0,1,2,...)(示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_simulate_tree.aspx)。\n\t\t-切换分页时清空选\u003Cem\u003E中\u003C\u002Fem\u003E的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在\u003Cem\u003Egrid\u003C\u002Fem\u003E_prerowdatabound.aspx)。\n\t-DropDownList模拟树的方式\u003Cem\u003E显示\u003C\u002Fem\u003E,增加DataSimulateTreeLevelField属性,使用方法和\u003Cem\u003EGrid\u003C\u002Fem\u003E的类似(示例在dropdownlist_simulate_tree.aspx)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体\u003Cem\u003E中\u003C\u002Fem\u003E的","createTime":"2010-09-29 14:37:08","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fcsdn\u002F3307801","title":"\u003Cem\u003Eext\u003C\u002Fem\u003Ejs表格、树控件","desc":"\u003Cem\u003Eext\u003C\u002Fem\u003Ejs表格、树控件","createTime":"2009-06-01 13:06:19","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fcsdn\u002F3307801\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fcsdn\u002F3307801\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-3307801-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Flovesunny56\u002F3899455","title":"\u003Cem\u003EExt\u003C\u002Fem\u003Ejs4 API文档阅读(二)——MVC构架(上)","desc":"对于 \u003Cem\u003Eext\u003C\u002Fem\u003Ejs 来说,大客户端程序一直很难写,当你为大客户端程序添加更多的功能和项目的时候,项目的体积往往迅速增长。这样的大客户端程序很难组\n织和维持 ,所以,\u003Cem\u003Eext\u003C\u002Fem\u003Ejs4 配备了一个新的应用程序体系结构,它能结构化你的代码,那就是 \u003Cem\u003Eext\u003C\u002Fem\u003Ejs4 MVC。","createTime":"2011-12-09 12:26:17","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Flovesunny56\u002F3899455\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Flovesunny56\u002F3899455\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-3899455-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fweixin_30346033\u002Farticle\u002Fdetails\u002F99339337","title":"关于在\u003Cem\u003EExt\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E预览图片的实现","desc":"  最近在做项目\u003Cem\u003E中\u003C\u002Fem\u003E,需要实现一个在\u003Cem\u003EExt\u003C\u002Fem\u003E的\u003Cem\u003EGrid\u003C\u002Fem\u003E\u003Cem\u003E中\u003C\u002Fem\u003E预览图片的功能,刚开始以为很简单,但是做起来发现……其实也是很简单的,只是当时没有找准方向\r\n  这里是该把弯路也说一下呢?还是直接上正确思路呢?!走一步算一步吧,毕竟垒砖还是很累的。\r\n  刚开始我这样考虑的,需要在每行\u003Cem\u003E中\u003C\u002Fem\u003E放一个专门用于\u003Cem\u003E显示\u003C\u002Fem\u003E图片的\u003Cem\u003Epanel\u003C\u002Fem\u003E,后来这个地方是使用的开发平台的linkColumn,在\u003Cem\u003Eext\u003C\u002Fem\u003EApi\u003Cem\u003E中\u003C\u002Fem\u003E找到的事Templa...","createTime":"2014-03-29 15:45:00","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_30346033\u002Farticle\u002Fdetails\u002F99339337\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_30346033\u002Farticle\u002Fdetails\u002F99339337\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-99339337-bbs-370173550.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1752533975203_28256\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"}],"staffDOList":[{"id":null,"communityId":125,"username":"community_6","userNickname":"开源资源社区","roleCode":1,"status":1,"createUsername":"","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2021-05-12 18:04:14","updateTime":"2021-05-12 18:04:14","lastLoginTime":"2021-05-12 18:04:14"},{"id":null,"communityId":125,"username":"phpstory","userNickname":"phpstory","roleCode":2,"status":1,"createUsername":"bbs_assistant","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fb3875e26d1334ef09541ecbb7eafdc28_phpstory.jpg!1","createTime":"2021-07-22 14:16:31","updateTime":"2021-07-22 14:16:31","lastLoginTime":"2021-07-22 14:16:31"},{"id":null,"communityId":125,"username":"xuzuning","userNickname":"xuzuning","roleCode":2,"status":1,"createUsername":"community_6","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F096fa290fdcd400db84eabf91d9332f1_xuzuning.jpg!1","createTime":"2021-06-28 18:19:07","updateTime":"2021-06-28 18:19:07","lastLoginTime":"2021-06-28 18:19:07"}],"communityConfig":{"scoreType":0,"scoreItems":{"0":"给本帖投票","1":"锋芒小试,眼前一亮","2":"潜力巨大,未来可期","3":"持续贡献,值得关注","4":"成绩优异,大力学习","5":"贡献巨大,全力支持"}},"shouldApply":false,"subscribeAble":false,"operatorAble":false,"commentNeedJoinCommunity":false},"default2014LiveRoom":[{"itemType":"","description":"高峰论坛","title":"2022 技术英雄会","url":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002Fcsdnnews\u002FfsNR5NWp?chat=1&title=1&footer=1","images":["https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221016050009.png"],"ext":{"time":"9:00","liveRoomUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fcsdnnews\u002FfsNR5NWp"}}]},"isGooglebot":false,"canonical":"https:\u002F\u002Fwww.csdn.net\u002Ftopics\u002F370173550","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F370173550","typeId":"index","hasIndex":false},"CFG":{"ALIPLAYER_VERSION":"v4","ALIPLAYER_H5_VERSION":"mobile_v1","ENV":"prod","ROOT_URL":"https:\u002F\u002Fcms-mall.csdn.net\u002F","VUE_APP_API_URL_SERVER":"http:\u002F\u002Fcms-community-api.internal.csdn.net\u002F","VUE_APP_API_URL":"https:\u002F\u002Fcms-api.csdn.net\u002F","LOGIN_URL":"https:\u002F\u002Fpassport.csdn.net\u002Faccount\u002Flogin","VUE_APP_DOMAIN_SKILL":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_DOMAIN_PATH":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_COMMUNITY_API_URL":"https:\u002F\u002Fcommunity-api.csdn.net\u002F","VUE_APP_CCLOUD_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fcommunity-cloud\u002Fv1\u002F","VUE_APP_SKILL_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fskilltree\u002Fapi\u002F","VUE_APP_SEARCH_PLUGIN_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fsearchplugin\u002F","VUE_APP_COMMUNITY_ASK_API_URL":"https:\u002F\u002Fmp-ask.csdn.net\u002F","VUE_APP_ME_URL":"https:\u002F\u002Fme.csdn.net\u002F","VUE_APP_CCLOUD_RESUME":"https:\u002F\u002Fbizapi.csdn.net\u002Fjob-api\u002F","VUE_APP_CCLOUD_MAIN":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_UC":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_BZP_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002F","VUE_APP_CCLOUD_START_API_URL":"https:\u002F\u002Fmp-action.csdn.net\u002F","VUE_APP_PRACTIVE":"https:\u002F\u002Fbizapi.csdn.net\u002Fdaily-practice\u002F","VUE_APP_CCLOUD_HOSTPATH":"https:\u002F\u002Fbbs.csdn.net\u002F"},"queries":{"pageId":[],"domain":["ccloud.csdn.net\u002Fccloud\u002Fdetail1"],"id":["370173550"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F370173550","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F370173550","active":0,"navBarFixed":false,"title":"为何Ext 中的panel中的grid不显示呢?当点击好几次的时候才出现,而且还是重复的呢?","isLive":false,"contentType":{"text":"text","picture":"picture","link":"link","video":"video","vote":"vote","live":"live","blog":"blog","long_text":"long_text","task_text":"task_text"},"liveUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002F","spmExtra":{"id":125,"topicId":370173550},"keywords":"","description":"以下内容是CSDN社区关于为何Ext 中的panel中的grid不显示呢?当点击好几次的时候才出现,而且还是重复的呢?相关内容,如果想了解更多关于PHP社区其他内容,请访问CSDN社区。","mounted":false,"infoNoticeData":{"src":"","href":"","spm":"","delay":5},"showDialogInfoNotice":false};</script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/runtime.2c8d4172.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/common.9ac324e8.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/tpl/ccloud-detail/index.93a5f007.js"></script></body> <!----> <script> window.csdn.sideToolbar = { options: { qr: { isShow: true, data: [ { imgSrc: 'https://csdnimg.cn/release/cmsfe/public/img/ewm.9010d6e5.png', desc: "关注公众号" }, ] }, help: { isShow: false, }, contentEl: document.getElementsByClassName("cloud-maintainer")[0] }, }; </script> <script src="https://g.csdnimg.cn/side-toolbar/2.9/side-toolbar.js" ></script> <!----> <!----> <!----> <script src="https://csdnimg.cn/release/blog_editor_html/release1.7.5/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js"></script> <script src="https://g.csdnimg.cn/lib/editor-page-detail/v2.2.0/js/runDetail.min.js"></script> <!----> <!----> <!----> <!----> <!----> <!----> <script src="https://g.csdnimg.cn/collection-box/2.1.0/collection-box.js"></script> <!----> <!----> <!----> <!----> <script src="https://g.csdnimg.cn/common/csdn-cert/csdn-cert.js"></script> <!----></html>