提交通过 serialize 获取radio 不是目标值问题

鬼善 2017-10-30 10:11:33
<div class="form-group suspend-cardForm" id="isBusinessTrip">
<label for="isBusinessTrip" >是否暂估:</label>
<div class="radiobox form-control">
<label class="radiobox-click">
<i class='icon-sameAttr16 radiobox-active'></i>
<input type="radio" name="isBusinessTrip" id="isBusinessTripY" value="1"><span>是</span>
</label>
<label class="radiobox-click">
<i class='icon-sameAttr16 defined-radiobox'></i>
<input type="radio" name="isBusinessTrip" id="isBusinessTripN" value="0"><span>否</span>
</label>
</div>

</div>

<script>
$("#isBusinessTrip .radiobox .radiobox-click i").click(function(){
if(!$(this).hasClass('radiobox-active')){
$("#isBusinessTrip .radiobox-active").removeClass('radiobox-active').addClass('defined-radiobox');
$(this).removeClass('defined-radiobox').addClass('radiobox-active');
var oldZanGu=$("input[name=isBusinessTrip]:checked").val();
}
$(this).next().attr("checked",true);
var zanGu=$("input[name=isBusinessTrip]:checked").val();
if(zanGu=="1"&&$("#payTypeId").val()!="DEPOSIT"){//是代开票据 & 暂估为是
//-------------------------------
$("#isBusinessTrip .radiobox-active").removeClass('radiobox-active').addClass('defined-radiobox');
$("#isBusinessTrip .radiobox .radiobox-click i:eq(1)").removeClass('defined-radiobox').addClass('radiobox-active');
$("input[name='isBusinessTrip'][value=1]").attr("checked",false);
$("input[name='isBusinessTrip'][value=0]").attr("checked",true);
top.$.jBox.alert("是否暂估不能选择是","提示");
return;
}

提交的前 是否暂估选择是 js修改成否 我用过 function saveDraftHead(){
if(!$("#inputForm").valid()){
return;
}
globalLoading();
$.ajax({
url:"${ctx}/account/claim/companyCost/saveDraftHead",
data:$("#inputForm").serialize(),
dataType:"json",
type:"post",
success:function(data){

获取到的值却为是
...全文
161 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
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。 -增加TabStrip中Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocument中Icon属性映射错误(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)。 -Grid中TemplateField生成到页面中控件具有唯一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(CSS中class名不能有$字符)。 +去除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>中自定义的样式可以覆盖ExtAspNet缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法解决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的z<em>se</em>ed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。 -因为下拉列表不可编辑,所以不能为空,如果不设置<em>Se</em>lectedIndex或<em>Se</em>lectedValue,则默认选中第一项。 -重新绑定模拟树的下拉列表后,选中项的前面有图片的HTML标签的BUG。 -更新自定义JavaScript组件Ext.ux.SimplePagingToolbar。 -更新示例工程。 +2009-03-25 v1.3.1 -Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed] -Window中的EnableIFrame==fal<em>se</em>,则点击关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet/fileupload.aspx)[fixed] -HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(Ext-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http://extjs.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面中存在ASP.NET控件(TextBox),则第二次<em>提交</em>表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的<em>问题</em>)。[fixed] -页面上放置ExtAspNet-Button和ASP.NET-Button,则点击ExtAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.<em>se</em><em>ria</em><em>lize</em>Form的实现有关。[fixed] -ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在ExtAspNet工程中使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和ASP.NET标准控件和平共处了。[fixed] -如果一个ASP.NET按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 U<em>se</em>SubmitBehavior="fal<em>se</em>" 即可。 -如果要在一次ExtAspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet/aspnet.aspx)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“<em>获取</em>当前页面中表单修改的确认提示框的脚本”。 ---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedClo<em>se</em>Reference/GetConfirmFormModifiedClo<em>se</em>RefreshReference/GetConfirmFormModifiedClo<em>se</em>PostBackReference三个方法代替。 -不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference<em>获取</em>此方法的客户端脚本。 ---注意:以前的项目需要在所有的ASPX页面中查找RegisterPageStateChangedScript属性,并删除,否则会运行错误! -A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedClo<em>se</em>Reference,表示“<em>获取</em>先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedClo<em>se</em>RefreshReference和GetConfirmFormModifiedClo<em>se</em>PostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientClo<em>se</em>ButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedClo<em>se</em>Reference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-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 -ContentPanel中内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed] -DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed] -DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed] -升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏<em>问题</em>的修正)。[fixed] -页面加载过程中的时间信息保存在Javascript变量window.box.timeInfo中。[added] +增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed] +2008-10-28 v1.2 beta7 -DropDownList没有选中任何一项,回发时报错[feedback:huihuang]。[fixed] -Window显示位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed] +PageContext优化。[fixed] -去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。 -去除RegisterStartupScript的重载函数,只保留最简单的PageContext.RegisterStartupScript(string script)函数。 -Resirect增加重载函数Redirect(string url, string target),其中target可能的取值为_<em>se</em>lf,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。 -Image控件增加ImageWidth/ImageHeight/ImageCssStyle/ImageCssClass/ImageAlt属性[feedback:jqpeng]。[fixed] -发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时显示不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的<em>问题</em>。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,解决方案见http://pohee.com/it/http-compression-in-aspnet-20/。 +DropDownList优化。[fixed] -去除EnableFirstItem/FirstItemText/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.In<em>se</em>rt(0, new ExtAspNet.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过<em>Se</em>lectedIndex和<em>Se</em>lectedValue不能选中[feedback:jqpeng]。 -和Asp.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.<em>Se</em>lectedValue = ""; -ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。 -处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为fal<em>se</em>(避免开发人员发生此类错误)。[fixed] -注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding/border-width/margin)。[fixed] +为所有控件属性增加在VS中的智能提示。[fixed] -需要将ExtAspNet.XML和ExtAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.U<em>SE</em>R_DEFINED -> RegexPattern.None -表单验证属性名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个属性可以拥有多个值的情况。[fixed] -属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(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属性进行验证,而不是Text属性。 -DropDownList的Items增加In<em>se</em>rt方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyText属性。 -ListItem启用Enable<em>Se</em>lect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加EnableSimulateTree属性(默认为fal<em>se</em>),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other/accordion_run.aspx)。[fixed] -Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。 -影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。 -AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other/accordion_links_run.aspx)。[fixed] -原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上<Items>标签。 -适当增大AccordionPanel中链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed] -Panel/GroupPanel/ContentPanel/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed] -向Form中动态添加控件的BUG,现在form/form_dynamic_run.aspx示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/AccordionPanel/GroupPanel/Panel/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。 -保留TabStrip的Tabs(TabCollection)属性。 -保留PageLayout/BorderLayout的Regions(RegionCollection)属性。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +Grid选中项(<em>Se</em>lectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed] -表现为对Grid进行多次删除添加操作后,<em>Se</em>lectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/Button/HyperLink/Label/Image/LinkButton/TextBox -TriggerBox/TwinTriggerBox/Window/TextArea/HtmlEditor/DatePicker/NumberBox -CheckBox/<em>Radio</em>Button/<em>Radio</em>ButtonList/DropDownList -Grid +2008-09-19 v1.2 beta1 -Image/LinkButton/HyperLink增加一些Ajax可更新属性。[fixed] +隐藏的方式由HideMode属性控制Visibility/Off<em>se</em>ts/Display。[fixed] -修正Form/SimpleForm中隐藏一个表单字段(Hidden=fal<em>se</em>)会占据页面空间的BUG。 -ToolbarText/ToolbarFill/Toolbar<em>Se</em>parator在ASPX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -Button去除MarginRight属性(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu属性,在网报中可以用自定义样式实现,而不应该写在控件中。[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] -Toolbar<em>Se</em>parator/ToolbarFill在Ajax更新Hidden属性的BUG。[fixed] +布局整理。[fixed] -新增Column/Absolute/Row三种布局,加上以前的Container/Fit/Anchor/Accordion/Border/Form六种布局,总共有9中布局可供使用。 -其中一些控件默认使用一种布局:SimpleForm(Form)/Form(Form)/Panel-GroupPanel(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属性,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick="fal<em>se</em>" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -MenuButton/MenuHyperLink/Menu<em>Se</em>parator/MenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed] +大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=fal<em>se</em>的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。 -网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageContext.Redirect支持普通页面转向和ExtAspNetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,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后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField/DataValueField/DataSimulateTreeLevelField/DataEnable<em>Se</em>lectField等属性的值,否则Ajax回发时会出错)。[fixed] -U<em>se</em>rControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed] -不要使用Asp.net的控件HiddenField,而是使用ExtAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,<em>Radio</em>ButtonList中项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置EnableDeferredRender=fal<em>se</em>解决,但会减慢页面的加载速度),现在已经解决这个<em>问题</em>。[fixed] -<em>Radio</em>ButtonList去除EnableBackgroundColor/EnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=fal<em>se</em>)。[fixed] -Web.config中增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -<em>Radio</em>ButtonList增加Ajax可更新属性<em>Se</em>lectedIndex(<em>Se</em>lectedValue/<em>Se</em>lectedItem)。 -DropDownList增加Ajax可更新属性Enable/<em>Se</em>lectedIndex(<em>Se</em>lectedValue/<em>Se</em>lectedItem)/DataSource。 -Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。 -ToolbarText增加Ajax可更新属性Text。 +2008-08-31 v1.1 beta3 -TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Respon<em>se</em>.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,ExtAspNet控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的点击一个按钮弹出窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前ExtAspNetAjax的限制。 -只对ExtAspNet控件起作用,对Asp.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible属性会有错误。 -Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -Grid中的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=fal<em>se</em>))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed] -Grid选中行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知<em>问题</em>:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化弹出窗口中IFrame的显示速度。[fixed] -在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。 -PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加属性Theme、Language、FormMessageTarget、FormOff<em>se</em>tRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。 -TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed] +TabStrip中非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed] -全新的ExtAspNet.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个属性(EnableInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe/default.aspx和iframe/page3.aspx)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。 -<em>Radio</em>ButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed] +extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6/IE7)(http://www.extjs.net/forum/showthread.php?t=43246)(示例在test.aspx)[fixed] -现在的解决方法是在初始化时:if(this.initia<em>lize</em>d){return;}this.initia<em>lize</em>d=true; +需要先回发页面再弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=fal<em>se</em>。 -另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference("./simpleform.aspx"));。 +2008-08-15 v0.4 beta5 -点击关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.aspx。[fixed] +<em>Radio</em>buttonlist显示有重影(示例在<em>radio</em>.aspx)。[fixed] -全新的样式。 -去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此<em>问题</em>解决。(示例在button_iframe.aspx) +2008-08-13 v0.4 beta4 -点击关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.aspx页面,iexplorer占内存68.368M。 -内存存在泄漏时,点击iframe/page3.aspx页面8次后iexplorer占118.792M内存。 -修正后,点击iframe/page3.aspx页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed] -Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"解决)。[fixed] +页面正在加载的提示尽早的显示出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容显示出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的页面应该为./FE_ApplyEditor.aspx或~/Pages_ExtAspNet/FE_ApplyEditor.aspx。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed] -Window中的保存并关闭按钮和Asp.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClo<em>se</em>PostBackReference());,示例在(simpleform.aspx)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed] -DropDownList增加<em>Se</em>lectedText属性(去除了模拟树时通过<em>Se</em>lectedItem.Text的多余html字符)。[fixed] -为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed] -将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed] +弹出窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed] -因为在页面的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。 -一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx/simpleform.aspx)。 +PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed] -TextField等表单字段增加Readonly属性。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx/page2.aspx/simpleform.aspx) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)/page2.aspx(B)/simpleform.aspx(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,Grid中弹出窗口。(default.aspx/page3.aspx/simpleform.aspx) +示例3,TriggerBox弹出窗口。(default.aspx/triggerbox.aspx/simpleform.aspx) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。 -示例4,弹出窗口中的弹出窗口。 -对整个Examples更新测试。[fixed] +2008-07-31 v0.3 beta12 -IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab显示为空的BUG。[fixed] -对TabStrip/Panel/Window中的IFrame重新设计,如果设置IFrameUrl="#"或者"about:blank",则不渲染iframe到页面节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed] -如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed] -Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx/simpleform.aspx)。[fixed] -内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx/simpleform.aspx/simpleform2.aspx)[fixed] -增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar属性用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormOff<em>se</em>tRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加Off<em>se</em>tRight属性 [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为fal<em>se</em>,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed] -去掉DropDownList控件的Text属性(强制性),可以通过设置<em>Se</em>lectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息中的换行符(转换为<br/>),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库中的数据绑定到Tree(示例在tree2_bind_databa<em>se</em>.aspx)。 -ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。 -更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。 -Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -Grid所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确解析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[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下显示的不同效果。 -但是通过用<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] -可以在回发时维持树的状态(选中行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +ContentPanel中放置ExtAspNet控件,则渲染时会出现各种<em>问题</em>,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed] -隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种<em>问题</em>(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。 -现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。 +IE6下,在应用Asp.NetAjax后,Form中字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现<em>问题</em>的经历,你就能明白。 -最后发现IE6下应用Asp.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.<em>se</em>tWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.<em>se</em>tSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加EnableFadeOut属性(默认fal<em>se</em>),可以启用淡出效果。[fixed] -Accordion选中样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +Grid增加EnableDelayRender属性(默认fal<em>se</em>),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed] -因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置"EnableDelayRender=fal<em>se</em>"。 -改变Grid中静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。 +如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx/ajax_editor.aspx)。[fixed] -这是由于ajax后执行的javascript中不能有return fal<em>se</em>语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认显示的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例中alert\alert_1.aspx和alert\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。 -点击<em>提交</em>按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed] +增加Menu、MenuText、Menu<em>Se</em>parator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed] -增加SplitButton控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个属性,示例在form_compare.aspx。 +TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -<em>Radio</em>ButtonList增加AutoPostBack属性(示例在<em>radio</em>.aspx) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed] +表单字段Enable=fal<em>se</em>时显示颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disabled,设置不透明。 +2008-07-08 v0.3 beta3 -Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed] -最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。 -模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed] -增加 DataEnable<em>Se</em>lectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。 -LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed] +2008-07-07 v0.3 beta2 +增加UpdatePanelConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed] -使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。 -示例在ajax3.aspx/content_page4.aspx。 -示例content_page3.aspx中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为fal<em>se</em>。[fixed] -使用GroupPanel的地方需要手工添加AutoHeight="true"属性。 +增加U<em>se</em>rControlConnector,可以在其中放置用户控件(示例在page_u<em>se</em>rcontrol.aspx)。[fixed] -也可以在ContentPanel中放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed] +支持Asp.net ajax异步加载。[fixed] -有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx/content_ajax2.aspx中。 -对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.aspx/simpleform.aspx)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除Clo<em>se</em>Action属性,可以在后台通过OnClientClo<em>se</em>ButtonClick属性指定(为了和iframe中做法一致)。 +iframe中的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有<em>问题</em>。[fix pending] +排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed] -可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。 -可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.aspx)。[fixed] -TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed] -可以在ContentPanel中放置用户控件(示例在page_u<em>se</em>rcontrol.aspx)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed] -Grid的数据库分页需要增加属性IsDataba<em>se</em>Paging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClo<em>se</em>可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx/simpleform.aspx)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +Grid完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。 -Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(一个Grid只能有一个Column指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。 -切换分页时清空选中的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。 -DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。 +2008-06-25 v0.2 beta9 +Window窗体中的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.aspx/simpleform.aspx)[fixed] -在simpleform.aspx中:Panel[BodyPadding=5](Toolbar,Panel[Height=450 Layout=Fit](SimpleForm[AutoScroll=true])),则外面窗口的高度=450 + 5*2 + 26 + 32,其中26是Toolbar的高度,32是窗口的标题栏和下边框的高度。 +关闭Iframe的LoadMask,所以需要Iframe页面添加PageLoading控件,这样效果统一。[fixed] +Grid完善。 -去除EnableClientPaging和EnableClientSort属性,客户端排序和客户端分页在ASP.NET应用中会有很多<em>问题</em>(主要是状态保持的<em>问题</em>)。 +Enable<em>Se</em>rverSort改名AllowSorting。(示例在grid_sorting.aspx) -使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数中重新绑定数据。 +增加AllowPaging属性。(示例在grid_paging.aspx) -使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数中Grid1.PageIndex = e.NewPageIndex;OK。 +数据库分页支持。(示例在grid_databa<em>se</em>_paging.aspx) -使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数中Grid1.PageIn</a></div><div data-report-view="{"mod":"popu_645","index":"3","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-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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":"3","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-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate" class="title" data-v-ca2d15ac>ExtAspNet_v2.3.2_dll</a></div> <a target="_blank" href="https://download.csdn.net/download/wode2600/2726130" data-report-click="{"mod":"popu_645","index":"3","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-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate" class="desc" data-v-ca2d15ac>ExtAspNet - ExtJS ba<em>se</em>d ASP.NET Controls with Full AJAX Support ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有Web<em>Se</em>rvices的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-09-29 v2.3.2 -不绑定任何数据到Grid时,确保页面不会出错。 -修正了Grid列属性DataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。 -修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。 -增加土耳其语言资料文件(feedback:abdullaharslan)。 -Grid的BoundField增加NullDisplayText属性,用于处理数据库中的null值,如果没有设置则默认为空字符串。 -修正DatePicker中的一个bug(31/01/2010将会返回NULL)使用DateFormatString来生成<em>Se</em>lectedDate属性(feedback:OktaEndy)。 -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则<em>Se</em>lectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页速度慢(feedback:youwei, StevenGuan, hazardvn, gavindou, ttjacky)。 -实际上IE7下所以的回发都慢,原因是客户端的Ba<em>se</em>64编码速度慢,已经使用encodeURIComponent来代替Ba<em>se</em>64编码。 -俄语翻译(feedback:vbelyaev)。 +2010-06-30 v2.3.1 -ExtAspNet控件将不在依赖ViewState,减少1/4左右的HTTP数据传输量。 -控件和示例的增强。 +2010-03-28 v2.2.1 +为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel的边框ShowBorder="fal<em>se</em>"。 +集成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<em>提交</em>)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。 -增加示例tabstrip/tabstrip_addtab.aspx。 -重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加EnableTabClo<em>se</em>Menu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal="fal<em>se</em>")(feedback:zqmars)。 -Window控件更新。 -关闭按钮默认直接关闭,不会弹出确认对话框。 -GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个属性EnableConfirmOnClo<em>se</em>(默认fal<em>se</em>),Clo<em>se</em>Action(Hide, HideRefresh, HidePostBack)。 -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Clo<em>se</em>",现在需要这样定义Icon="SystemClo<em>se</em>"。 -WindowPosition默认居中,而不是黄金分割位置。 +Button, Window等控件弹出位置属性的变化。 -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_<em>se</em>lf" -> Target="<em>Se</em>lf", Target="_parent" -> Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值<em>Se</em>lf, 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<em>问题</em>。 -修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。 -为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。 -修正了在Grid的PageIndexChange事件中不能<em>获取</em><em>Se</em>lectedRowIndexArray属性的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的实例方法GetClo<em>se</em>Reference等以及ActiveWindow的静态方法GetClo<em>se</em>Reference等,其中的Clo<em>se</em>全部改为Hide。 -增加TabStrip中Tab控件可关闭属性EnableClo<em>se</em>(默认为fal<em>se</em>)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。 -修正了IE下Grid中的一个JS<em>问题</em>(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属性,增加Collap<em>se</em>Mode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。 -BorderPanel更名为RegionPanel。 -DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。 -增加中国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程中会重复加载的<em>问题</em>,这是一个在v2.1.6引入的<em>问题</em>(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_<em>se</em>lect_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)。 -Grid中TemplateField生成到页面中控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。 +2009-09-27 v2.1.2 -为Tree控件增加GetExpandAllNodesReference和GetCollap<em>se</em>AllNodesReference两个函数。 -修正RELEA<em>SE</em>版本下多语言加载的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.GetClo<em>se</em>Reference()); +TreeNode的前面的多选框可以自动回发了。 -为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://extasp.net/data/tree_run.aspx -Grid增加GetNo<em>Se</em>lectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的JS代码。 -修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pres<em>se</em>d属性值能够正确的反映客户端的变化。 -优化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(PanelBa<em>se</em>), 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属性 - 回发之前是否禁用按钮,防止重复<em>提交</em> - 默认为true。 -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。 -增加示例-如何将Grid控件导出为Excel(data\grid_excel_run.aspx)(feedback:503684912)。 -如果TreeNode的属性Enabled="fal<em>se</em>",则此项变灰并且不会被选中(feedback:your568)。 -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~/开头)的BUG。 -增加Accordion和Tree配合使用的示例(other\accordion_tree_run.aspx)。 -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。 +去除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的<em>提交</em>按钮兼容<em>问题</em>(feedback:千帆)。 -在2009-03-03 v1.3.0曾经提到这个兼容<em>问题</em>,并有这样的规则,如果Asp.net的按钮AJAX<em>提交</em>,必须设置U<em>se</em>SubmitBehavior="fal<em>se</em>" --也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个Asp.net的按钮能够AJAX<em>提交</em>,你不需要做任何设置(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的Pres<em>se</em>d属性在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。 -现在支持Respon<em>se</em>.Redirect,你可以选择Respon<em>se</em>.Redirect或者ExtAspNet.PageContext.Redirect重定向页面,两者效果一样。 -支持FormsAuthentication.RedirectFromLoginPage(accountID, fal<em>se</em>);这样的方法。 -Button增加Type属性(button,re<em>se</em>t,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下无此<em>问题</em>)。 -目前先禁用IE6.0-7.0的QuickTips。 -优化底层JavaScript。 +2009-07-05 v2.0 beta1 -更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。 -使用YUI Compressor压缩JavaScript和CSS文件。 -Relea<em>se</em>版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。 -ExtAspNet自身的CSS会紧挨着页面标签引入,这样在中自定义的样式可以覆盖ExtAspNet缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法解决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的z<em>se</em>ed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。 -因为下拉列表不可编辑,所以不能为空,如果不设置<em>Se</em>lectedIndex或<em>Se</em>lectedValue,则默认选中第一项。 -重新绑定模拟树的下拉列表后,选中项的前面有图片的HTML标签的BUG。 -更新自定义JavaScript组件Ext.ux.SimplePagingToolbar。 -更新示例工程。 +2009-03-25 v1.3.1 -Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed] -Window中的EnableIFrame==fal<em>se</em>,则点击关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet/fileupload.aspx)[fixed] -HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(Ext-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http://extjs.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面中存在ASP.NET控件(TextBox),则第二次<em>提交</em>表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的<em>问题</em>)。[fixed] -页面上放置ExtAspNet-Button和ASP.NET-Button,则点击ExtAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.<em>se</em><em>ria</em><em>lize</em>Form的实现有关。[fixed] -ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在ExtAspNet工程中使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和ASP.NET标准控件和平共处了。[fixed] -如果一个ASP.NET按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 U<em>se</em>SubmitBehavior="fal<em>se</em>" 即可。 -如果要在一次ExtAspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet/aspnet.aspx)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“<em>获取</em>当前页面中表单修改的确认提示框的脚本”。 ---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedClo<em>se</em>Reference/GetConfirmFormModifiedClo<em>se</em>RefreshReference/GetConfirmFormModifiedClo<em>se</em>PostBackReference三个方法代替。 -不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference<em>获取</em>此方法的客户端脚本。 ---注意:以前的项目需要在所有的ASPX页面中查找RegisterPageStateChangedScript属性,并删除,否则会运行错误! -A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedClo<em>se</em>Reference,表示“<em>获取</em>先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedClo<em>se</em>RefreshReference和GetConfirmFormModifiedClo<em>se</em>PostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientClo<em>se</em>ButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedClo<em>se</em>Reference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-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 -ContentPanel中内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed] -DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed] -DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed] -升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏<em>问题</em>的修正)。[fixed] -页面加载过程中的时间信息保存在Javascript变量window.box.timeInfo中。[added] +增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed] +2008-10-28 v1.2 beta7 -DropDownList没有选中任何一项,回发时报错[feedback:huihuang]。[fixed] -Window显示位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed] +PageContext优化。[fixed] -去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。 -去除RegisterStartupScript的重载函数,只保留最简单的PageContext.RegisterStartupScript(string script)函数。 -Resirect增加重载函数Redirect(string url, string target),其中target可能的取值为_<em>se</em>lf,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。 -Image控件增加ImageWidth/ImageHeight/ImageCssStyle/ImageCssClass/ImageAlt属性[feedback:jqpeng]。[fixed] -发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时显示不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的<em>问题</em>。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,解决方案见http://pohee.com/it/http-compression-in-aspnet-20/。 +DropDownList优化。[fixed] -去除EnableFirstItem/FirstItemText/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.In<em>se</em>rt(0, new ExtAspNet.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过<em>Se</em>lectedIndex和<em>Se</em>lectedValue不能选中[feedback:jqpeng]。 -和Asp.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.<em>Se</em>lectedValue = ""; -ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。 -处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为fal<em>se</em>(避免开发人员发生此类错误)。[fixed] -注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding/border-width/margin)。[fixed] +为所有控件属性增加在VS中的智能提示。[fixed] -需要将ExtAspNet.XML和ExtAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.U<em>SE</em>R_DEFINED -> RegexPattern.None -表单验证属性名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个属性可以拥有多个值的情况。[fixed] -属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(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属性进行验证,而不是Text属性。 -DropDownList的Items增加In<em>se</em>rt方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyText属性。 -ListItem启用Enable<em>Se</em>lect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加EnableSimulateTree属性(默认为fal<em>se</em>),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other/accordion_run.aspx)。[fixed] -Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。 -影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。 -AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other/accordion_links_run.aspx)。[fixed] -原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上标签。 -适当增大AccordionPanel中链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed] -Panel/GroupPanel/ContentPanel/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed] -向Form中动态添加控件的BUG,现在form/form_dynamic_run.aspx示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/AccordionPanel/GroupPanel/Panel/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。 -保留TabStrip的Tabs(TabCollection)属性。 -保留PageLayout/BorderLayout的Regions(RegionCollection)属性。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +Grid选中项(<em>Se</em>lectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed] -表现为对Grid进行多次删除添加操作后,<em>Se</em>lectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/Button/HyperLink/Label/Image/LinkButton/TextBox -TriggerBox/TwinTriggerBox/Window/TextArea/HtmlEditor/DatePicker/NumberBox -CheckBox/<em>Radio</em>Button/<em>Radio</em>ButtonList/DropDownList -Grid +2008-09-19 v1.2 beta1 -Image/LinkButton/HyperLink增加一些Ajax可更新属性。[fixed] +隐藏的方式由HideMode属性控制Visibility/Off<em>se</em>ts/Display。[fixed] -修正Form/SimpleForm中隐藏一个表单字段(Hidden=fal<em>se</em>)会占据页面空间的BUG。 -ToolbarText/ToolbarFill/Toolbar<em>Se</em>parator在ASPX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -Button去除MarginRight属性(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu属性,在网报中可以用自定义样式实现,而不应该写在控件中。[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] -Toolbar<em>Se</em>parator/ToolbarFill在Ajax更新Hidden属性的BUG。[fixed] +布局整理。[fixed] -新增Column/Absolute/Row三种布局,加上以前的Container/Fit/Anchor/Accordion/Border/Form六种布局,总共有9中布局可供使用。 -其中一些控件默认使用一种布局:SimpleForm(Form)/Form(Form)/Panel-GroupPanel(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属性,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick="fal<em>se</em>" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -MenuButton/MenuHyperLink/Menu<em>Se</em>parator/MenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed] +大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=fal<em>se</em>的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。 -网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageContext.Redirect支持普通页面转向和ExtAspNetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,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后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField/DataValueField/DataSimulateTreeLevelField/DataEnable<em>Se</em>lectField等属性的值,否则Ajax回发时会出错)。[fixed] -U<em>se</em>rControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed] -不要使用Asp.net的控件HiddenField,而是使用ExtAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,<em>Radio</em>ButtonList中项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置EnableDeferredRender=fal<em>se</em>解决,但会减慢页面的加载速度),现在已经解决这个<em>问题</em>。[fixed] -<em>Radio</em>ButtonList去除EnableBackgroundColor/EnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=fal<em>se</em>)。[fixed] -Web.config中增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -<em>Radio</em>ButtonList增加Ajax可更新属性<em>Se</em>lectedIndex(<em>Se</em>lectedValue/<em>Se</em>lectedItem)。 -DropDownList增加Ajax可更新属性Enable/<em>Se</em>lectedIndex(<em>Se</em>lectedValue/<em>Se</em>lectedItem)/DataSource。 -Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。 -ToolbarText增加Ajax可更新属性Text。 +2008-08-31 v1.1 beta3 -TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Respon<em>se</em>.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,ExtAspNet控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的点击一个按钮弹出窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前ExtAspNetAjax的限制。 -只对ExtAspNet控件起作用,对Asp.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible属性会有错误。 -Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -Grid中的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=fal<em>se</em>))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed] -Grid选中行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知<em>问题</em>:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化弹出窗口中IFrame的显示速度。[fixed] -在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。 -PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加属性Theme、Language、FormMessageTarget、FormOff<em>se</em>tRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。 -TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed] +TabStrip中非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed] -全新的ExtAspNet.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个属性(EnableInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe/default.aspx和iframe/page3.aspx)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。 -<em>Radio</em>ButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed] +extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6/IE7)(http://www.extjs.net/forum/showthread.php?t=43246)(示例在test.aspx)[fixed] -现在的解决方法是在初始化时:if(this.initia<em>lize</em>d){return;}this.initia<em>lize</em>d=true; +需要先回发页面再弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=fal<em>se</em>。 -另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference("./simpleform.aspx"));。 +2008-08-15 v0.4 beta5 -点击关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.aspx。[fixed] +<em>Radio</em>buttonlist显示有重影(示例在<em>radio</em>.aspx)。[fixed] -全新的样式。 -去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此<em>问题</em>解决。(示例在button_iframe.aspx) +2008-08-13 v0.4 beta4 -点击关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.aspx页面,iexplorer占内存68.368M。 -内存存在泄漏时,点击iframe/page3.aspx页面8次后iexplorer占118.792M内存。 -修正后,点击iframe/page3.aspx页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed] -Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"解决)。[fixed] +页面正在加载的提示尽早的显示出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容显示出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的页面应该为./FE_ApplyEditor.aspx或~/Pages_ExtAspNet/FE_ApplyEditor.aspx。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed] -Window中的保存并关闭按钮和Asp.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClo<em>se</em>PostBackReference());,示例在(simpleform.aspx)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed] -DropDownList增加<em>Se</em>lectedText属性(去除了模拟树时通过<em>Se</em>lectedItem.Text的多余html字符)。[fixed] -为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed] -将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed] +弹出窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed] -因为在页面的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。 -一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx/simpleform.aspx)。 +PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed] -TextField等表单字段增加Readonly属性。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx/page2.aspx/simpleform.aspx) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)/page2.aspx(B)/simpleform.aspx(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,Grid中弹出窗口。(default.aspx/page3.aspx/simpleform.aspx) +示例3,TriggerBox弹出窗口。(default.aspx/triggerbox.aspx/simpleform.aspx) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。 -示例4,弹出窗口中的弹出窗口。 -对整个Examples更新测试。[fixed] +2008-07-31 v0.3 beta12 -IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab显示为空的BUG。[fixed] -对TabStrip/Panel/Window中的IFrame重新设计,如果设置IFrameUrl="#"或者"about:blank",则不渲染iframe到页面节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed] -如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed] -Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx/simpleform.aspx)。[fixed] -内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx/simpleform.aspx/simpleform2.aspx)[fixed] -增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar属性用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormOff<em>se</em>tRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加Off<em>se</em>tRight属性 [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为fal<em>se</em>,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed] -去掉DropDownList控件的Text属性(强制性),可以通过设置<em>Se</em>lectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息中的换行符(转换为),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库中的数据绑定到Tree(示例在tree2_bind_databa<em>se</em>.aspx)。 -ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。 -更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。 -Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -Grid所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确解析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed] -虽然最后未能解决##差旅交通费在IE和Firefox下显示的不同效果。 -但是通过用来代替,从而实现FF和IE下样式的统一。 -刚看到old9的解决方案:把“差旅交通费”改成“差旅交通费”,在IE下和FF下的都不换行,:-) -LinkButton增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.aspx)。[fixed] -可以在回发时维持树的状态(选中行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +ContentPanel中放置ExtAspNet控件,则渲染时会出现各种<em>问题</em>,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed] -隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种<em>问题</em>(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。 -现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。 +IE6下,在应用Asp.NetAjax后,Form中字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现<em>问题</em>的经历,你就能明白。 -最后发现IE6下应用Asp.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.<em>se</em>tWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.<em>se</em>tSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加EnableFadeOut属性(默认fal<em>se</em>),可以启用淡出效果。[fixed] -Accordion选中样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +Grid增加EnableDelayRender属性(默认fal<em>se</em>),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed] -因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置"EnableDelayRender=fal<em>se</em>"。 -改变Grid中静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。 +如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx/ajax_editor.aspx)。[fixed] -这是由于ajax后执行的javascript中不能有return fal<em>se</em>语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认显示的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例中alert\alert_1.aspx和alert\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。 -点击<em>提交</em>按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed] +增加Menu、MenuText、Menu<em>Se</em>parator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed] -增加SplitButton控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个属性,示例在form_compare.aspx。 +TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -<em>Radio</em>ButtonList增加AutoPostBack属性(示例在<em>radio</em>.aspx) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed] +表单字段Enable=fal<em>se</em>时显示颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disabled,设置不透明。 +2008-07-08 v0.3 beta3 -Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed] -最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。 -模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed] -增加 DataEnable<em>Se</em>lectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。 -LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed] +2008-07-07 v0.3 beta2 +增加UpdatePanelConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed] -使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。 -示例在ajax3.aspx/content_page4.aspx。 -示例content_page3.aspx中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为fal<em>se</em>。[fixed] -使用GroupPanel的地方需要手工添加AutoHeight="true"属性。 +增加U<em>se</em>rControlConnector,可以在其中放置用户控件(示例在page_u<em>se</em>rcontrol.aspx)。[fixed] -也可以在ContentPanel中放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed] +支持Asp.net ajax异步加载。[fixed] -有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx/content_ajax2.aspx中。 -对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.aspx/simpleform.aspx)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除Clo<em>se</em>Action属性,可以在后台通过OnClientClo<em>se</em>ButtonClick属性指定(为了和iframe中做法一致)。 +iframe中的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有<em>问题</em>。[fix pending] +排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed] -可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。 -可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.aspx)。[fixed] -TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed] -可以在ContentPanel中放置用户控件(示例在page_u<em>se</em>rcontrol.aspx)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed] -Grid的数据库分页需要增加属性IsDataba<em>se</em>Paging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClo<em>se</em>可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx/simpleform.aspx)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +Grid完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。 -Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(一个Grid只能有一个Column指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。 -切换分页时清空选中的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。 -DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。 +2008-06-25 v0.2 beta9 +Window窗体中的</a></div><div data-report-view="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/ajax_yuren/548005","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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/ajax_yuren/548005" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/ajax_yuren/548005","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate" class="title" data-v-ca2d15ac>jquery-1.1.3 效率提高800%</a></div> <a target="_blank" href="https://download.csdn.net/download/ajax_yuren/548005" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/ajax_yuren/548005","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate" class="desc" data-v-ca2d15ac>选择器速度提升<br>选择器的速度大幅度提高了,下表为jQuery1.1.2和1.1.3的选择器速度对比,提高了8倍多<br>Brow<em>se</em>r jQuery 1.1.2 jQuery 1.1.3 % Improvement <br>IE 6 4890ms 661ms 740% <br>Firefox 2 5629ms 567ms 993% <br>Safari 2 3575ms 475ms 753% <br>Opera 9.1 3196ms 326ms 980% <br>Average improvement: 867% <br><br>下表为jQuery1.1.3与常用的一些JS库选择器的对比:<br>Brow<em>se</em>r Prototype jQuery Mootools Ext Dojo <br>IE 6 1476ms 661ms 1238ms 672ms 738ms <br>Firefox 2 219ms 567ms 220ms 951ms 440ms <br>Safari 2 1568ms 475ms 909ms 417ms 527ms <br>Opera 9.1 220ms 326ms 217ms 296ms 220ms <br><br><br>更新项目<br><br><br>New <em>Se</em>lectors<br>Unicode <em>Se</em>lectors: This is a huge addition for tho<em>se</em> of you who want to u<em>se</em> Unicode attribute values, IDs, class names, or tag names. You can now u<em>se</em> them directly in jQuery <em>se</em>lectors:<br><br>$("div.台北")<br>$("div#台北")<br>$("foo_bar台北")<br>$("div[@id=台北]")Escape <em>Se</em>lectors: A frequently requested feature you can now <em>se</em>lect elements by ID (or other <em>se</em>lector) that u<em>se</em>s a special character, for example this will find the div that has the ID of “foo.bar”:<br><br>$("div#foo\\.bar")Inequality <em>Se</em>lector: While this <em>se</em>lector isn’t part of the CSS specification, it’s frequently u<em>se</em>d and included in other <em>se</em>lector libraries, so we decided to add it in:<br><br>$("div[@id!=test]"):nth-child() improvements: This <em>se</em>lector allows you to locate specific child elements. We’ve supported <em>se</em>lectors like :nth-child(1) and :nth-child(odd) since the beginning of jQuery, now we’ve added advanced :nth-child <em>se</em>lectors, such as:<br><br>$("div:nth-child(2n)")<br>$("div:nth-child(2n+1)")<br>$("div:nth-child(n)")Space-<em>se</em>parated attributes: After being removed in jQuery 1.0, this <em>se</em>lector has now been brought back by popular demand. It allows you to locate individual items in a space-<em>se</em>parated attribute (such as a class or rel attribute).<br><br>$("a[@rel~=test]")Animation Improvements<br><br>参数: <br>options <br>返回值: <br>XMLHttpRequest <br>使用HTTP请求一个页面。<br>这是jQuery的低级AJAX实现。要查看高级抽象,见$.<em>se</em>t、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。<br>警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入) <br>$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。 <br>注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如. xml 的类型是 "text/xml")。错误的MIME类型能够导致脚本出现意想不到的<em>问题</em>。请查看AJAX的范例来了解数据类型的更多信息。 <br>$.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。 <br>在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。 <br>参数选项: <br>async(true) 数据类型: Boolean <br>默认情况下,所有的请求都是异步发送的(默认为true)。 如果需要发送同步请求, 设置选项为fal<em>se</em>。注意,同步请求可能会暂时的锁定浏览器, 当请求激活时不能进行任何操作。 <br>before<em>Se</em>nd 数据类型: Function <br>一个预处理函数用于在发送前修改XMLHttpRequest对象,设置自定义头部等。 XMLHttpRequest作为惟一的参数被传递。这是一个 Ajax 事件。 function (XMLHttpRequest) {<br> this; // the options for this ajax request<br>}cache(true) 数据类型: Boolean <br>jQuery 1.2中新添加的参数, 如果设为fal<em>se</em>,则会强制浏览器不缓存请求的页面。 <br>complete 数据类型: Function <br>当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。 这是一个 Ajax 事件。 function (XMLHttpRequest, textStatus) {<br> this; // the options for this ajax request<br>}contentType("application/x-www-form-urlencoded") 数据类型: String <br>发送到服务器的数据的内容类型。默认是 "application/x-www-form-urlencoded", 适合大多数情况。 <br>data 数据类型: Object,String <br>要发送给服务器的数据。如果不是字符串,那么它会被转化为一个查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动转化,请查看processData选项。 数据对象必须是一组键/值对。如果键对应的值是数组,jQuery会将其值赋给同一个键属性。 例如 {foo:["bar1", "bar2"]} 变为 '&foo=bar1&foo=bar2'。 <br>dataType( Intelligent Guess (xml or html)) 数据类型: String <br>期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动的将respon<em>se</em>XML或respon<em>se</em>Text传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第一个参数传递给success指定的回调函数)有: "xml": 返回一个可以由jQuery处理的XML文档。 <br>"html": 返回文本格式的HTML代码。包括求值后的脚本标记。 <br>"script": 将响应作为Javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为"script"类型会将post方法转换为get方法。 <br>"json": 将响应作为JSON求值,并返回一个Javascript对象。 <br>"jsonp": 使用JSONP载入一个JSON代码块. 会在URL的末尾添加"?callback=?"来指明回调函数。(jQuery 1.2以上的版本支持) <br>"text": 文本格式的字符串 <br>error 数据类型: Function <br>请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的化。 这是一个Ajax 事件。function (XMLHttpRequest, textStatus, errorThrown) {<br> // typically only one of textStatus or errorThrown <br> // will have info<br> this; // the options for this ajax request<br>}global(true) 数据类型: Boolean <br>是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为fal<em>se</em>可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。 <br>ifModified(fal<em>se</em>) 数据类型: Boolean <br>只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为fal<em>se</em>,即忽略对头部的检查 <br>jsonp 数据类型: String <br>在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置 {jsonp:'onJsonPLoad'} 会将 'onJsonPLoad=?' 传送给服务器。 <br>processData(true) 数据类型: Boolean <br>在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串,以适应默认的content-type--"application/x-www-form-urlencoded"。如果想发送DOMDocuments,就要把这个选项设置为fal<em>se</em>。 <br>success 数据类型: Function <br>当请求成功时调用的函数。这个函数会得到二个参数:从服务器返回的数据(根据“dataType”进行了格式化)和一个描述HTTP相应的状态字符串。这是一个 Ajax 事件。 function (data, textStatus) {<br> // data could be xmlDoc, jsonObj, html, text, etc...<br> this; // the options for this ajax request<br>}timeout 数据类型: Number <br>如果通过$.ajax<em>Se</em>tup设置了一个全局timeout,那么此函数使用一个局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给一个特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。 <br>type("GET") 数据类型: String <br>请求的类型 ("POST" 或 "GET"), 默认是 "GET"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的浏览器支持。 <br>url(The current page) 数据类型: String <br>请求发送的目标URL地址 <br>u<em>se</em>rname 数据类型: String <br>u<em>se</em>rname可用于在响应一个HTTP连接时的认证请求。 实例 <br>载入并执行一个JavaScript文件。 <br>$.ajax({<br> type: "GET",<br> url: "test.js",<br> dataType: "script"<br>});保存数据到服务器,完成后通知用户。 <br> $.ajax({<br> type: "POST",<br> url: "some.php",<br> data: "name=John&location=Boston",<br> success: function(msg){<br> alert( "Data Saved: " + msg );<br> }<br> });取得一个HTML页面的最新版本。 <br>$.ajax({<br> url: "test.html",<br> cache: fal<em>se</em>,<br> success: function(html){<br> $("#results").append(html);<br> }<br>});同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。 <br> var html = $.ajax({<br> url: "some.php",<br> async: fal<em>se</em><br> }).respon<em>se</em>Text;向服务器发送xml文档数据。通过设置processData选项为fal<em>se</em>,将数据自动转换为string的动作被禁止了。 <br>var xmlDocument = [create xml document];<br> $.ajax({<br> url: "page.php",<br> processData: fal<em>se</em>,<br> data: xmlDocument,<br> success: handleRespon<em>se</em><br> });load( url, [data], [callback] )参数: <br>url (String): 装入页面的URL地址。 <br>params (Map): (可选)发送到服务端的键/值对参数。 <br>callback (Function): (可选) 当数据装入完成时执行的函数. function (respon<em>se</em>Text, textStatus, XMLHttpRequest) {<br> this; // dom element<br>}返回值: <br>jQuery <br>装入一个远程HTML内容到一个DOM结点。 默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > <em>se</em>lector"。 <br>实例 <br>载入文档的sidebar的导航部分到一个无序列表中。 <br>$("#links").load("/Main_Page #p-Getting-Started li");将feeds.html文件载入到id为feeds的div中。 <br>$("#feeds").load("feeds.html");同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。 <br> $("#feeds").load("feeds.php", {limit: 25}, function(){<br> alert("The last 25 entries in the feed have been loaded");<br> });jQuery.get( url, [data], [callback] )参数: <br>url (String): 装入页面的URL地址 <br>Map(可选): (可选)发送到服务端的键/值对参数 <br>callback (Function): (可选) 当远程页面装入完成时执行的函数 function (data, textStatus) {<br> // data可以是xmlDoc, jsonObj, html, text, 等...<br> this; // the options for this ajax request<br>}返回值: <br>XMLHttpRequest <br>使用GET请求一个页面。 <br>这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。 <br>实例 <br>请求test.php页,忽略返回值. <br>$.get("test.php");请求test.php页并发送附加数据(忽略返回值). <br>$.get("test.php", { name: "John", time: "2pm" } );显示从test.php请求的返回值(HTML 或 XML, 根据不同返回值). <br>$.get("test.php", function(data){<br> alert("Data Loaded: " + data);<br>});显示向test.cgi发送附加数据请求的返回值 (HTML 或 XML, 根据不同返回值). <br>$.get("test.cgi", { name: "John", time: "2pm" },<br> function(data){<br> alert("Data Loaded: " + data);<br> });jQuery.getJSON( url, [data], [callback] )参数: <br>url (String): 装入页面的URL地址 <br>Map(可选): (可选)发送到服务端的键/值对参数 <br>callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {<br> // data will be a jsonObj<br> this; // the options for this ajax request<br>}返回值: <br>XMLHttpRequest <br>使用GET请求JSON数据。 <br>在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback. <br>实例 <br>从Flickr JSONP API中载入最新的四幅猫的图片 <br>$.getJSON("http://api.flickr.com/<em>se</em>rvices/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",<br> function(data){<br> $.each(data.items, function(i,item){<br> $("<img/>").attr("src", item.media.m).appendTo("#images");<br> if ( i == 3 ) return fal<em>se</em>;<br> });<br> });从test.js载入JSON数据, 从返回的JSON数据读取name值。 <br>$.getJSON("test.js", function(json){<br> alert("JSON Data: " + json.u<em>se</em>rs[3].name);<br>});从test.js载入JSON数据, 传递一个附加参数,从返回的JSON数据读取name值。 <br>$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){<br> alert("JSON Data: " + json.u<em>se</em>rs[3].name);<br>});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值). <br>$.getIfModified("test.php", function(data){<br> alert("Data Loaded: " + data);<br>});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值),提供了一个附加的参数. <br>$.getIfModified("test.php", { name: "John", time: "2pm" },<br> function(data){<br> alert("Data Loaded: " + data);<br> });列出从pages.php返回的查询结果,将返回的数组转化为一段HTML代码。 <br>var id=$("#id").attr("value");<br> $.getJSON("pages.php",{id:id},dates);<br>function dates(datos)<br>{ <br> $("#list").html("Name:"+datos[1].name+"<br>"+"Last Name:"+datos[1].lastname+"<br>"+"Address:"+datos[1].address);<br>}jQuery.getScript( url, [callback] )参数: <br>url (String): 装入页面的URL地址 <br>callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {<br> // data应该是javascript<br> this; // the options for this ajax request<br>}返回值: <br>XMLHttpRequest <br>使用GET请求JavaScript文件并执行。 <br>在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。 <br>实例 <br>我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。 <br>$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){<br> $("#go").click(function(){<br> $(".block").animate( { backgroundColor: 'pink' }, 1000)<br> .animate( { backgroundColor: 'blue' }, 1000);<br> });<br>});载入test.js JavaScript文件并执行。 <br>$.getScript("test.js");载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。 <br>$.getScript("test.js", function(){<br> alert("Script loaded and executed.");<br>});jQuery.post( url, [data], [callback], [type] )参数: <br>url (String): 装入页面的URL地址 <br>Map(可选): (可选)发送到服务端的键/值对参数 <br>callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {<br> // data可能是 xmlDoc, jsonObj, html, text, 等...<br> this; // the options for this ajax request<br>}String $.postJSON = function(url, data, callback) {<br> $.post(url, data, callback, "json");<br>};返回值: <br>XMLHttpRequest <br>使用POST请求一个页面。 <br>这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。 <br>ajaxComplete( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件 <br>实例 <br>当AJAX请求完成时显示一条信息。 <br>$("#msg").ajaxComplete(function(request, <em>se</em>ttings){<br> $(this).append("<li>Request Complete.</li>");<br> });ajaxError( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions, thrownError) {<br> // thrownError only pas<em>se</em>d if an error was caught<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件. <br>实例 <br>当AJAX请求错误时显示一条信息。 <br> $("#msg").ajaxError(function(request, <em>se</em>ttings){<br> $(this).append("<li>Error requesting page " + <em>se</em>ttings.url + "</li>");<br> });ajax<em>Se</em>nd( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件. <br>实例 <br>当AJAX请求发出后显示一条信息。 <br> $("#msg").ajax<em>Se</em>nd(function(evt, request, <em>se</em>ttings){<br> $(this).append("<li<Starting request at " + <em>se</em>ttings.url + "</li<");<br> });ajaxStart( callback )参数: <br>callback (Function): 要执行的函数 function () {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件. <br>实例 <br>当AJAX请求开始(并还没有激活时)显示loading信息。 <br>$("#loading").ajaxStart(function(){<br> $(this).show();<br> });ajaxStop( callback )参数: <br>callback (Function): 要执行的函数 function () {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件. <br>实例 <br>当所有AJAX请求都停止时,隐藏loading信息。 <br>$("#loading").ajaxStop(function(){<br> $(this).hide();<br> });ajaxSuccess( callback )参数: <br>callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {<br> this; // dom element listening<br>}返回值: <br>jQuery <br>当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件 <br>实例 <br>当AJAX请求成功完成时,显示信息。 <br> $("#msg").ajaxSuccess(function(evt, request, <em>se</em>ttings){<br> $(this).append("<li>Successful Request!</li>");<br> });jQuery.ajax<em>Se</em>tup( options )参数: <br>Options: 用于Ajax请求的键/值对 <br>为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。 <br>实例 <br>设置默认的全局AJAX请求选项。 <br>$.ajax<em>Se</em>tup({<br> url: "/xmlhttp/",<br> global: fal<em>se</em>,<br> type: "POST"<br>});<br>$.ajax({ data: myData });<em>se</em><em>ria</em><em>lize</em>( )返回值: <br>jQuery <br>以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&<em>radio</em>=<em>radio</em>2 。在jQuery 1.2中。<em>se</em><em>ria</em><em>lize</em>方法实现了正确表单元素序列,而不再需要插件支持。 <br>实例 <br>连接表单元素的一组查询字符串,可用于发送Ajax请求。 <br> function showValues() {<br> var str = $("form").<em>se</em><em>ria</em><em>lize</em>();<br> $("#results").text(str);<br> }<br><br> $(":checkbox, :<em>radio</em>").click(showValues);<br> $("<em>se</em>lect").change(showValues);<br> showValues();<em>se</em><em>ria</em><em>lize</em>Array( )返回值: <br>jQuery <br>连接所有的表单和表单元素(类似于.<em>se</em><em>ria</em><em>lize</em>()方法),但是返回一个JSON数据格式。 <br>实例 <br>从form中取得一组值,显示出来 <br> function showValues() {<br> var fields = $(":input").<em>se</em><em>ria</em><em>lize</em>Array();<br> alert(fields);<br> $("#results").empty();<br> jQuery.each(fields, function(i, field){<br> $("#results").append(field.value + " ");<br> });<br> }<br><br> $(":checkbox, :<em>radio</em>").click(showValues);<br> $("<em>se</em>lect").change(showValues);<br> showValues();</a></div><div data-report-view="{"mod":"popu_645","index":"5","dest":"https://download.csdn.net/download/dengfeng_dengfeng/6530741","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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/dengfeng_dengfeng/6530741" data-report-click="{"mod":"popu_645","index":"5","dest":"https://download.csdn.net/download/dengfeng_dengfeng/6530741","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate" class="title" data-v-ca2d15ac>fckedit编辑器</a></div> <a target="_blank" href="https://download.csdn.net/download/dengfeng_dengfeng/6530741" data-report-click="{"mod":"popu_645","index":"5","dest":"https://download.csdn.net/download/dengfeng_dengfeng/6530741","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\",\"dist_request_id\":\"1765216025469_25105\"}","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-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate" class="desc" data-v-ca2d15ac>编辑器 FCKeditor2.4 使用说明 .下载 FCKeditor2.3 (FCKeditot for java) FCKeditor2.4 (FCKeditor基本文件) 以下是下载地址: http://www.fckeditor.net/download/default.html 2.建立项目: 建立项目tomcat/webapps/TestFCKeditor. 3.将FCKeditor2.4解压缩 将FCKeditor2.4解压缩,将整个目录FCKeditor复制到项目的根目录下,并将解压缩出来的文件夹fckeditor重命名为FCKeditor 目录结构为:tomcat/webapps/TestFCKeditor/FCKeditor 然后将FCKeditor-2.3.zip(java)压缩包中\web\WEB-INF\lib\目录下的两个jar文件拷到项目的\WEB-INF\ lib\目录下把其中的src目录下的FCKeditor.tld文件copy到TestFCKedit/WEB-INF/下 4.合并web.xml: 将FCKeditor-2.3.zip压缩包中\web\WEB-INF\目录下的web.xml文件合并到项目的\WEB-INF\目录下的web.xml文件中 5. 修改合并后的web.xml文件 修改合并后的web.xml文件,将名为SimpleUploader的<em>Se</em>rvlet的enabled参数值改为true, 以允许上传功能,Connector <em>Se</em>rvlet的ba<em>se</em>Dir参数值用于设置上传文件存放的位置 在web.xml最后添加标签定义: <taglib> <taglib-uri>/TestFCKeditor</taglib-uri> <taglib-location>/WEB-INF/FCKeditor.tld</taglib-location> </taglib> 现在的web.xml文件没有<taglib>标签了,应该直接在jsp文件中使用:<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %> 6. 映射: 上面文件中两个<em>se</em>rvlet的映射分别为:/editor/filemanager/brow<em>se</em>r/default/connectors/jsp/connector 和/editor/filemanager/upload/simpleuploader,需要在两个映射前面加上/FCKeditor, 即改为/FCKeditor/editor/filemanager/brow<em>se</em>r/default/connectors/jsp/connector和 /FCKeditor/editor/filemanager/upload/simpleuploader 这两个名字根据你放在工程中的FCKeditor文件夹名称而定 7.修改skin文件夹 进入skin文件夹,如果你想使用fckeditor默认的这种奶黄色, 那就把除了default文件夹外的另两个文件夹直接删除.(建议不删除,以后要用到其中的一个文件夹) 8.删除无用文件 删除/FCKeditor/目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文件以外的所有文件,保留文件夹editor 删除目录/editor/_source, 删除/editor/filemanager/brow<em>se</em>r/default/connectors/下的所有文件 删除/editor/filemanager/upload/下的所有文件 删除/editor/lang/下的除了fcklanguagemanager.js(我下载的没有这个文件), en.js, zh.js, zh-cn.js四个文件的所有文件 9.修改配置: 打开/FCKeditor/fckconfig.js 修改 FCKConfig.DefaultLanguage = 'zh-cn' ; 把FCKConfig.LinkBrow<em>se</em>rURL等的值替换成以下内容: FCKConfig.LinkBrow<em>se</em>rURL = FCKConfig.Ba<em>se</em>Path + "filemanager/brow<em>se</em>r/default/brow<em>se</em>r.html?Connector=connectors/jsp/connector" ; FCKConfig.ImageBrow<em>se</em>rURL = FCKConfig.Ba<em>se</em>Path + "filemanager/brow<em>se</em>r/default/brow<em>se</em>r.html?Type=Image&Connector=connectors/jsp/connector" ; FCKConfig.FlashBrow<em>se</em>rURL = FCKConfig.Ba<em>se</em>Path + "filemanager/brow<em>se</em>r/default/brow<em>se</em>r.html?Type=Flash&Connector=connectors/jsp/connector" ; FCKConfig.LinkUploadURL = FCKConfig.Ba<em>se</em>Path + 'filemanager/upload/simpleuploader?Type=File' ; FCKConfig.FlashUploadURL = FCKConfig.Ba<em>se</em>Path + 'filemanager/upload/simpleuploader?Type=Flash' ; FCKConfig.ImageUploadURL = FCKConfig.Ba<em>se</em>Path + 'filemanager/upload/simpleuploader?Type=Image' ; 10.其它 fckconfig.js总配置文件,可用记录本打开,修改后将文件存为utf-8 编码格式找到: FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键 如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了, 在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic, 也就是基本的toolbar,找到: FCKConfig.Toolbar<em>Se</em>ts["Basic"] = [ ['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-', 'Smiley','SpecialChar','Replace','Preview'] ] ; 这是改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台 页直接访问和上传文件, fckeditor还支持编辑域内的鼠标右键功能 FCKConfig.ContextMenu = ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','<em>Se</em>lect','Textarea','Checkbox','<em>Radio</em>','TextField','HiddenField', /*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ; 这也是改过的把鼠标右键的链接图像,FLASH,图像按钮功能都去掉 找到: FCKConfig.FontNames = 'A<em>ria</em>l;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ; 加上几种我们常用的字体 FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;A<em>ria</em>l;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ; 11.添加文件 添加文件 /TestFCKeditor/test.jsp: <%@ page language="java" import="com.fredck.FCKeditor.*" %> <%@ taglib uri="/TestFCKeditor" prefix="FCK" %> <script type="text/javascript" src="/TestFCKeditor/FCKeditor/fckeditor.js"></script> <%-- 三种方法调用FCKeditor 1.FCKeditor自定义标签 (必须加头文件 <%@ taglib uri="/TestFCKeditor" prefix="FCK" %> ) 2.script脚本语言调用 (必须引用 脚本文件 <script type="text/javascript" src="/TestFCKeditor/FCKeditor/fckeditor.js"></script> ) 3.FCKeditor API 调用 (必须加头文件 <%@ page language="java" import="com.fredck.FCKeditor.*" %> ) --%> //标签调用方式 <%-- <form action="show.jsp" method="post" target="_blank"> <FCK:editor ba<em>se</em>Path="/TestFCKeditor/FCKeditor/" width="700" height="500" skinPath="/TestFCKeditor/FCKeditor/editor/skins/silver/" toolbar<em>Se</em>t = "Default" > input </FCK:editor> <input type="submit" value="Submit"> </form> --%> //JS调用方式 <form action="show.jsp" method="post" target="_blank"> <table border="0" width="700"><tr><td> <textarea style="WIDTH: 100%; HEIGHT: 400px">input</textarea> <script type="text/javascript"> var oFCKeditor = new FCKeditor('content') ; oFCKeditor.Ba<em>se</em>Path = "/TestFCKeditor/FCKeditor/" ; oFCKeditor.Height = 400; oFCKeditor.Toolbar<em>Se</em>t = "Default" ; oFCKeditor.ReplaceTextarea(); </script> <input type="submit" value="Submit"> </td></tr></table> </form> //FCKeditor API 调用 <%-- <form action="show.jsp" method="post" target="_blank"> <% FCKeditor oFCKeditor ; oFCKeditor = new FCKeditor( request, "content" ) ; oFCKeditor.<em>se</em>tBa<em>se</em>Path( "/TestFCKeditor/FCKeditor/" ) ; oFCKeditor.<em>se</em>tValue( "input" ); out.println( oFCKeditor.create() ) ; %> <br> <input type="submit" value="Submit"> </form> --%> 添加文件/TestFCKeditor/show.jsp: <% String content = request.getParameter("content"); out.print(content); %> 12.测试 浏览http://localhost:8080/TestFCKeditor/test.jsp 最后注意不同的版本 变量名称可能不一样请参考你使用的API文档 配置选项: AutoDetectLanguage=true/fal<em>se</em> 自动检测语言 Ba<em>se</em>Href="" 相对链接的基地址 ContentLangDirection="ltr/rtl" 默认文字方向 ContextMenu=字符串数组,右键菜单的内容 CustomConfigurationsPath="" 自定义配置文件路径和名称 Debug=true/fal<em>se</em> 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容 DefaultLanguage="" 缺省语言 EditorAreaCss="" 编辑区的样式表文件 EnableSourceXHTML=true/fal<em>se</em> 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML EnableXHTML=true/fal<em>se</em> 是否允许使用XHTML取代HTML FillEmptyBlocks=true/fal<em>se</em> 使用这个功能,可以将空的块级元素用空格来替代 FontColors="" 设置显示颜色拾取器时文字颜色列表 FontFormats="" 设置显示在文字格式列表中的命名 FontNames="" 字体列表中的字体名 FontSizes="" 字体大小中的字号列表 ForcePasteAsPlainText=true/fal<em>se</em> 强制粘贴为纯文本 ForceSimpleAmpersand=true/fal<em>se</em> 是否不把&符号转换为XML实体 FormatIndentator="" 当在源码格式下缩进代码使用的字符 FormatOutput=true/fal<em>se</em> 当输出内容时是否自动格式化代码 FormatSource=true/fal<em>se</em> 在切换到代码视图时是否自动格式化代码 FullPage=true/fal<em>se</em> 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容 GeckoU<em>se</em>SPAN=true/fal<em>se</em> 是否允许SPAN标记代替B,I,U标记 IeSpellDownloadUrl=""下载拼写检查器的网址 ImageBrow<em>se</em>r=true/fal<em>se</em> 是否允许浏览服务器功能 ImageBrow<em>se</em>rURL="" 浏览服务器时运行的URL ImageBrow<em>se</em>rWindowHeight="" 图像浏览器窗口高度 ImageBrow<em>se</em>rWindowWidth="" 图像浏览器窗口宽度 LinkBrow<em>se</em>r=true/fal<em>se</em> 是否允许在插入链接时浏览服务器 LinkBrow<em>se</em>rURL="" 插入链接时浏览服务器的URL LinkBrow<em>se</em>rWindowHeight=""链接目标浏览器窗口高度 LinkBrow<em>se</em>rWindowWidth=""链接目标浏览器窗口宽度 Plugins=object 注册插件 PluginsPath="" 插件文件夹 ShowBorders=true/fal<em>se</em> 合并边框 SkinPath="" 皮肤文件夹位置 SmileyColumns=12 图符窗列数 SmileyImages=字符数组 图符窗中图片文件名数组 SmileyPath="" 图符文件夹路径 SmileyWindowHeight 图符窗口高度 SmileyWindowWidth 图符窗口宽度 SpellChecker="ieSpell/Spellerpages" 设置拼写检查器 StartupFocus=true/fal<em>se</em> 开启时FOCUS到编辑器 StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置 TabSpaces=4 TAB键产生的空格字符数 ToolBarCanCollap<em>se</em>=true/fal<em>se</em> 是否允许展开/折叠工具栏 Toolbar<em>Se</em>ts=object 允许使用TOOLBAR集合 ToolbarStartExpanded=true/fal<em>se</em> 开启是TOOLBAR是否展开 U<em>se</em>BROnCar<em>ria</em>geReturn=true/fal<em>se</em> 当回车时是产生BR标记还是P或者DIV标记 解决上传乱码: 在SimpleUploader<em>Se</em>rvlet.java和Connector<em>Se</em>rvlet.java两个文件里找到 DiskFileUpload upload = new DiskFileUpload(); 分别在其后加入 upload.<em>se</em>tHeaderEncoding("utf-8"); 这样解决了文件上传的中文乱码<em>问题</em>. 但是在控制台显示的中文内容还是乱码,但是没关系,我们没必要去看控制台下的中文 ----------------------------------------------------------------another FCKeditor2.4.2 Java版使用说明 下载地址以及基本配置请参考:http://hi.baidu.com/wain19/blog/item/c33fb0fab74f24dfb48f312d.html 我的开发环境是ubuntu7.04, 系统默认编码是utf-8, 期间,本人遇到了下面这些<em>问题</em>: <em>问题</em>一:XML request error: Internel <em>Se</em>rver Error(500) 出现错误的地方是在:点插入图片,点Brow<em>se</em>按钮的时候: XML request error: Internel <em>Se</em>rver Error(500) 找资料:http://lamono.javaeye.com/blog/49135 拷贝xalan.jar和<em>se</em><em>ria</em><em>lize</em>.jar到/WEB-INF/lib,<em>问题</em>解决 FCKeditor-java没有很好的解决中文<em>问题</em>需要我们修改它的源代码后重新编译打包打包过程如下: 1 新建一个web工程名字为FCKeditor-java-2.3,然后把FCKeditor-2.3-java.zip解压缩后的代码拷贝到工程目录下 2如果是用的Eclip<em>se</em>,使用快捷键Ctrl+Shift+R 在SimpleUploader<em>Se</em>rvlet.java和Connector<em>Se</em>rvlet.java两个文件里找到 DiskFileUpload upload = new DiskFileUpload(); 分别在其后加入 upload.<em>se</em>tHeaderEncoding("utf-8"); 现在如果直接运行ant任务,会报下面的错误: taskdef class org.apache.catalina.ant.DeployTask cannot be found 3 把tomcat安装目录下/<em>se</em>rver/lib中的catalina-ant.jar拷贝到/WEB-INF/lib目录 下 4 打开build.xml 找到 <property 修改成你自己的tomcat安装目录 <property value="/home/uniquejava/tool/tomcat5028/"/> 找到 <taskdef 修改成如下内容 <taskdef classname="org.apache.catalina.ant.DeployTask"> <classpath refid="compile.classpath"> </classpath> </taskdef> <taskdef classname="org.apache.catalina.ant.ListTask"> <classpath refid="compile.classpath"> </classpath> </taskdef> <taskdef classname="org.apache.catalina.ant.ReloadTask"> <classpath refid="compile.classpath"> </classpath> </taskdef> <taskdef classname="org.apache.catalina.ant.UndeployTask"> <classpath refid="compile.classpath"> </classpath> </taskdef> 运行ant任务dist, 就可以生成新的FCKeditor-2.3.jar包 <em>问题</em>三: 上传时新建的中文目录全部乱码 虽然上传到服务器上的文件名正常,但在JSP页面点下载链接时文件名乱码导致不能正常下载 查找资料:TOMCAT 链接参数有中文时,乱码解决方法 http://hi.baidu.com/jadestone/blog/item/7564deefc9192d36acafd5be.html 修改tomcat-home/conf/<em>se</em>rver.xml 方法一: 在两处地方加上URIEncoding="utf-8": <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="fal<em>se</em>" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" /> <Connector port="8009" enableLookups="fal<em>se</em>" redirectPort="8443" debug="0" protocol="AJP/1.3" URIEncoding="utf-8" /> 方法二: 使用u<em>se</em>BodyEncodingForURI="true". 这个方法适合你的TOMCAT实例下需要跑多个不同Encoding的程序时(有点怀疑?!) <... maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="fal<em>se</em>" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" u<em>se</em>BodyEncodingForURI="true" /> enableLookups="fal<em>se</em>" redirectPort="8443" protocol="AJP/1.3" u<em>se</em>BodyEncodingForURI="true" / 我只试了方法一,<em>问题</em>解决! 这样, FCKeditor终于可以正常使用了 ================================================================= 以下为个人原创 http://blog.csdn.net/nickshen3/ 怎么将FCKeditor2.4使用在自己的web中 1. 在webapps创建test文件夹webapps\test 2. 将下载的FCKeditor2.3的Java包FCKeditor-2.3.zip解压缩,并将web文件夹下的两个文件夹_samples,WEB-INF拷贝到刚才建立的webapps\test下再将src文件夹下的FCKeditor.tld拷贝到WEB-INF下 3. 在webapps\test\下建立文件夹FCKeditor 4. 将刚才下载的 FCKeditor_2.4.3.zip 解压缩,然后将fckeditor文件夹下的 editor(文件夹),fckconfig.js,fckeditor.js,fckstyles.xml,fcktemplates.xml四个文件拷贝到刚才建立的文件夹FCKeditor下 5.修改test\_samples\jsp\sample02.jsp文件,将原来的 <FCK:editor ba<em>se</em>Path="/FCKeditor/" 改为<FCK:editor ba<em>se</em>Path="/test/FCKeditor/"以后使用的时候只需将test换成项目的名称即可 6.打开tomcat测试Http://localhost:8080/test/_samples/jsp/sample02.jsp ok</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/JavaScript" class="community-img" data-v-4722a3ae><img src="https://img-community.csdnimg.cn/avatar/ca46c476a908476d9927eaee4b0afc10.png?x-oss-process=image/resize,m_fixed,h_88,w_88" alt data-v-4722a3ae> <div title="JavaScript" class="community-name" data-v-4722a3ae> JavaScript </div></a></div></div> <div class="content" data-v-4722a3ae><div class="detail" data-v-4722a3ae><div title="87993" class="item" data-v-4722a3ae><p class="num" data-v-4722a3ae> 87,993 </p> <p class="desc" data-v-4722a3ae> 社区成员 </p></div> <div title="224694" class="item" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/JavaScript" target="_blank" data-v-4722a3ae><p class="num" data-v-4722a3ae> 224,694 </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-8973" 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/shareBg5.9eaaa691.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/ca46c476a908476d9927eaee4b0afc10.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>JavaScript</div> <div class="share-dec" data-v-ca030a68>Web 开发 JavaScript</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 开发 JavaScript </span></div></div> <div class="introduce-text" data-v-4722a3ae><div class="label-box" data-v-4722a3ae><!----> <!----> <!----></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_91" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/default.jpg!1" alt="JavaScript" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li><li data-v-4722a3ae><a href="https://blog.csdn.net/sysdzw" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/45dcec50fd694b578374e7167ff7914a_sysdzw.jpg!1" alt="无·法" 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></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:///JavaScript/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" 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":"mupvbd1K-SC_wD-hsqP_V7CRbj9o5dFiNXbk","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_3083493560-1765216025432-736900;","ip":"18.97.9.172","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\"] }","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":"JavaScript","communityHomePage":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJavaScript","owner":{"userName":"community_91","nickName":"JavaScript","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":"JavaScript","description":"Web 开发 JavaScript","avatarUrl":"https:\u002F\u002Fimg-community.csdnimg.cn\u002Favatar\u002Fca46c476a908476d9927eaee4b0afc10.png?x-oss-process=image\u002Fresize,m_fixed,h_88,w_88","qrCode":"","createTime":"2007-09-28","communityAvatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","communityNotice":null,"userCount":87993,"contentCount":224694,"followersCount":53140,"communityRule":"","communityId":209,"bgImage":"","hashId":"y3w0yonz","domain":"","uriName":"JavaScript","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,"hideLeftSideBar":0,"topicMoveAble":0,"allowActions":{},"communityOwner":"community_91","tagNameInfo":{"provinceTag":null,"areaTag":null,"technologyTags":null,"customTags":null}},"tabList":[{"tabId":1368,"tabName":"全部","tabUrl":"","tabSwitch":1,"tabType":4,"tabContribute":0,"cardType":0,"indexOrder":-1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJavaScript?typeId=1368","iframe":false,"sortType":1},{"tabId":873,"tabName":"问答","tabUrl":"https:\u002F\u002Fask.csdn.net\u002Flist\u002F11\u002Ftag\u002F190","tabSwitch":1,"tabType":0,"tabContribute":0,"indexOrder":0,"iframe":true,"sortType":1},{"tabId":4055678,"tabName":"博文收录","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":19,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJavaScript?typeId=4055678","iframe":false,"sortType":1},{"tabId":1620032,"tabName":"Ada助手","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJavaScript?typeId=1620032","iframe":false,"sortType":1}],"dataResource":{"mediaType":"c_cloud","subResourceType":"8_c_cloud_long_text","showType":"long_text","tabId":0,"communityName":"JavaScript","communityHomePageUrl":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJavaScript","communityType":1,"content":{"id":"392280338","contentId":392280338,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F392280338","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F392280338","createTime":"2017-10-30 10:11:33","updateTime":"2021-05-28 20:19:55","resourceUsername":"qq_33458228","best":0,"top":0,"text":null,"publishDate":"2017-10-30","lastReplyDate":"2017-10-30","type":"13","nickname":"鬼善","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fa5784745ac20445287a01d469fb95606_qq_33458228.jpg!1","username":"qq_33458228","commentCount":0,"diggNum":0,"digg":false,"viewCount":161,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":"提交通过 serialize 获取radio 不是目标值问题 ","insertFirst":false,"likeInfo":null,"description":" 是否暂估: \u003Cinput type=\"radio\" name=\"isBu","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221109053740.png","content":"<div class="form-group suspend-cardForm" id="isBusinessTrip">\u003Cbr \u002F\u003E\n<label for="isBusinessTrip" >是否暂估:<\u002Flabel>\u003Cbr \u002F\u003E\n<div class="radiobox form-control">\u003Cbr \u002F\u003E\n<label class="radiobox-click">\u003Cbr \u002F\u003E\n<i class='icon-sameAttr16 radiobox-active'><\u002Fi>\u003Cbr \u002F\u003E\n<input type="radio" name="isBusinessTrip" id="isBusinessTripY" value="1"><span>是<\u002Fspan>\u003Cbr \u002F\u003E\n<\u002Flabel>\u003Cbr \u002F\u003E\n<label class="radiobox-click">\u003Cbr \u002F\u003E\n<i class='icon-sameAttr16 defined-radiobox'><\u002Fi>\u003Cbr \u002F\u003E\n<input type="radio" name="isBusinessTrip" id="isBusinessTripN" value="0"><span>否<\u002Fspan>\u003Cbr \u002F\u003E\n<\u002Flabel>\u003Cbr \u002F\u003E\n<\u002Fdiv>\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n<\u002Fdiv>\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n<script>\u003Cbr \u002F\u003E\n $("#isBusinessTrip .radiobox .radiobox-click i").click(function(){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n if(!$(this).hasClass('radiobox-active')){\u003C!-- --\u003E\u003Cbr \u002F\u003E\n $("#isBusinessTrip .radiobox-active").removeClass('radiobox-active').addClass('defined-radiobox');\u003Cbr \u002F\u003E\n $(this).removeClass('defined-radiobox').addClass('radiobox-active');\u003Cbr \u002F\u003E\n var oldZanGu=$("input[name=isBusinessTrip]:checked").val();\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n $(this).next().attr("checked",true);\u003Cbr \u002F\u003E\n var zanGu=$("input[name=isBusinessTrip]:checked").val();\u003Cbr \u002F\u003E\n if(zanGu=="1"&&$("#payTypeId").val()!="DEPOSIT"){\u002F\u002F是代开票据 & 暂估为是\u003Cbr \u002F\u003E\n \u002F\u002F-------------------------------\u003Cbr \u002F\u003E\n \t $("#isBusinessTrip .radiobox-active").removeClass('radiobox-active').addClass('defined-radiobox');\u003Cbr \u002F\u003E\n $("#isBusinessTrip .radiobox .radiobox-click i:eq(1)").removeClass('defined-radiobox').addClass('radiobox-active');\u003Cbr \u002F\u003E\n $("input[name='isBusinessTrip'][value=1]").attr("checked",false);\u003Cbr \u002F\u003E\n $("input[name='isBusinessTrip'][value=0]").attr("checked",true); \u003Cbr \u002F\u003E\n \t top.$.jBox.alert("是否暂估不能选择是","提示");\u003Cbr \u002F\u003E\n return;\u003Cbr \u002F\u003E\n \t }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n 提交的前 是否暂估选择是 js修改成否 我用过 function saveDraftHead(){\u003C!-- --\u003E\u003Cbr \u002F\u003E\nif(!$("#inputForm").valid()){\u003C!-- --\u003E\u003Cbr \u002F\u003E\nreturn;\u003Cbr \u002F\u003E\n} \u003Cbr \u002F\u003E\nglobalLoading();\u003Cbr \u002F\u003E\n $.ajax({\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \turl:"${ctx}\u002Faccount\u002Fclaim\u002FcompanyCost\u002FsaveDraftHead",\u003Cbr \u002F\u003E\n \tdata:$("#inputForm").serialize(),\u003Cbr \u002F\u003E\n \tdataType:"json",\u003Cbr \u002F\u003E\n \ttype:"post",\u003Cbr \u002F\u003E\n \tsuccess:function(data){\u003C!-- --\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":"初级java工程师"},"userCertification":[],"dependId":"0","dependSubType":null,"videoUrl":null,"favoriteCount":0,"favoriteStatus":false,"taskType":null,"defaultScore":null,"syncAsk":false,"videoPlayLength":null},"communityUser":null,"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F10.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fa5784745ac20445287a01d469fb95606_qq_33458228.jpg!1","nickname":"鬼善","selfdesc":"","createdate":"2015-12-21 20:26:10","days":"3641","years":"10","username":"qq_33458228","school":null,"company":null,"job":null},"userName":"qq_33458228","event":"创建了帖子","body":"2017-10-30 10:11","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":0,"total":0,"list":[],"maxPageSize":3000},"defaultActiveTab":1368,"recommends":[{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fqq_27489007\u002F87075302","title":"html5单选框表单\u003Cem\u003E提交\u003C\u002Fem\u003E代码.zip","desc":"html5单选框表单\u003Cem\u003E提交\u003C\u002Fem\u003E代码.zip","createTime":"2022-11-18 22:13:34","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-87075302-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-87075302-bbs-392280338.264^v3^pc_relevant_bbs_down_cate","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fqq_27489007\u002F87075302\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-87075302-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fqq_27489007\u002F87075302\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-87075302-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657","title":"ExtAspNet v2.2.1 (2009-4-1) 值得一看","desc":"ExtAspNet v2.2.1\n\t\nExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有Web\u003Cem\u003ESe\u003C\u002Fem\u003Ervices的Web应用程序。\n\n支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002Fextasp.net\u002F\n开源: http:\u002F\u002Fextaspnet.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-修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。\n\t-修正basic\u002Fhello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。\n\t-隐藏示例首页最外层RegionPanel的边框ShowBorder=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\"。\n\t+集成Extjs最新版本v3.1.1。\n\t\t-增加一个新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时页面消失的BUG。\n\t\t-删除Panel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax\u003Cem\u003E提交\u003C\u002Fem\u003E)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.aspx。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加EnableTabClo\u003Cem\u003Ese\u003C\u002Fem\u003EMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会弹出确认对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个属性EnableConfirmOnClo\u003Cem\u003Ese\u003C\u002Fem\u003E(默认fal\u003Cem\u003Ese\u003C\u002Fem\u003E),Clo\u003Cem\u003Ese\u003C\u002Fem\u003EAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon=\"Clo\u003Cem\u003Ese\u003C\u002Fem\u003E\",现在需要这样定义Icon=\"SystemClo\u003Cem\u003Ese\u003C\u002Fem\u003E\"。\n\t-WindowPosition默认居中,而不是黄金分割位置。\n\t+Button, Window等控件弹出位置属性的变化。\n\t\t-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_\u003Cem\u003Ese\u003C\u002Fem\u003Elf\" -\u003E Target=\"\u003Cem\u003ESe\u003C\u002Fem\u003Elf\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值\u003Cem\u003ESe\u003C\u002Fem\u003Elf, Parent, Top。\n\t\t-Confirm.GetShowReference的最后一个参数target变为枚举类型。\n\t\t-Alert.GetShowReference中的showInParent参数也变为Target枚举类型。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成Extjs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS\u003Cem\u003E问题\u003C\u002Fem\u003E。\n\t-修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。\n\t-修正了在Grid的PageIndexChange事件中不能\u003Cem\u003E获取\u003C\u002Fem\u003E\u003Cem\u003ESe\u003C\u002Fem\u003ElectedRowIndexArray属性的BUG(feedback:Violet)。\n\t-Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=\"float:left;\"属性。\n\t-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加EnableEdit属性。\n\t-使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。\n\t-使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。\n\t-Window的实例方法GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference等以及ActiveWindow的静态方法GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference等,其中的Clo\u003Cem\u003Ese\u003C\u002Fem\u003E全部改为Hide。\n\t-增加TabStrip中Tab控件可关闭属性EnableClo\u003Cem\u003Ese\u003C\u002Fem\u003E(默认为fal\u003Cem\u003Ese\u003C\u002Fem\u003E)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。\n\t-修正HtmlEditor不能编辑的BUG(feedback:TheBox)。\n\t-修正IE下有时会出现空白页面的情况(feedback:olivia919)。\n\t\n\t\n\n+2009-12-06 v2.1.8\n\t-修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。\n\t-修正了IE下Grid中的一个JS\u003Cem\u003E问题\u003C\u002Fem\u003E(feedback:lqm4108)。\n\t-修正Alert消息中引号未编码导致的JS错误(feedback:sun1299shine)。\n\t+集成extjs3.0.3。\n\t\t-修正弹出对话框的宽度计算错误(会保持最小的状态)。\n\t\t-增加新的皮肤Gray。\n\t-为示例工程添加改变语言和皮肤的下拉列表。\n\t-为PageContext增加静态函数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控件中删除SplitColor属性,增加Collap\u003Cem\u003Ese\u003C\u002Fem\u003EMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。\n\t-BorderPanel更名为RegionPanel。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加中国的省市县三级联动示例(data\u002Fshengshixian.aspx)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程中会重复加载的\u003Cem\u003E问题\u003C\u002Fem\u003E,这是一个在v2.1.6引入的\u003Cem\u003E问题\u003C\u002Fem\u003E(feedback:eroach)。\n\t-修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。\n\t\n\t\n\t\n+2009-11-26 v2.1.6\n\t+修正动态创建Grid列的BUG(feedback:gxpan)。\n\t\t-增加示例(data\u002Fgrid_dynamic_columns.aspx)。\n\t-修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如Panel,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。\n\t-重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。\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_\u003Cem\u003Ese\u003C\u002Fem\u003Elect_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的一个命名约定。\n\t\t\t-同时更名的还有GridColumn的ColumnId-\u003EColumnID,GetColumnId-\u003EGetColumnID。\n\t\t\t-Grid1.Columns.FindColumnById函数被Grid1.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的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。\n\t-部分ExtAspNet控件的设计时支持(会在后续版本中逐步完善)。\n\t-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003EEnablePostBack)。\n\t-为TextBox,TextArea,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-ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.aspx示例,使用验证图片(feedback:kedee)。\n\t-为Grid增加AutoPostBack属性和RowClick事件,示例在\u002Fdata\u002Fgrid_autopostback.aspx(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。\n\t-Grid中TemplateField生成到页面中控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。\n\t\n\t\n\n+2009-09-27 v2.1.2\n\t-为Tree控件增加GetExpandAllNodesReference和GetCollap\u003Cem\u003Ese\u003C\u002Fem\u003EAllNodesReference两个函数。\n\t-修正RELEA\u003Cem\u003ESE\u003C\u002Fem\u003E版本下多语言加载的BUG(feedback:yigehaoren)。\n\t-增加pt_BR语言,由Ujvari提供。\n\t+为所有Panel(包括Grid,Tree,Form等)增加枚举类型Icon,其中包含1700多个小图标。\n\t\t-如果Panel具有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+为ExtAspNet.Alert.Show增加点击确定的JavaScript回调函数。\n\t\t-一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。\n\t\t-ExtAspNet.Alert.Show(\"参数错误!\", String.Empty, ExtAspNet.ActiveWindow.GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002Fextasp.net\u002Fdata\u002Ftree_run.aspx\n\t-Grid增加GetNo\u003Cem\u003ESe\u003C\u002Fem\u003ElectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的JS代码。\n\t-修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。\n\t-添加定时器控件Timer,用来定时发起AJAX请求。\n\t\n\t\n\n+2009-09-06 v2.1.0\n\t-Button的Pres\u003Cem\u003Ese\u003C\u002Fem\u003Ed属性值能够正确的反映客户端的变化。\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+添加对extjs3.0中所有语言的支持。\n\t\t-ExtAspNet扩展的多语言包在js\\languages\\extaspnet目录下,目前只有en,zh_CN,zh_TW三种实现\n\t\t-你可以向其中添加自己的语言版本,并执行js\\languages下的pack.bat打包,最后编译工程。\n\t\n\t\n\t\n+2009-09-01 v2.0.9\n\t-为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。\n\t+在aspx页面中必须显示的声明控件的集合属性(比如Tabs(TabStrip), Items(PanelBa\u003Cem\u003Ese\u003C\u002Fem\u003E), Nodes(TreeNode))。\n\t\t-这将会影响所有的aspx页面,所以要特别关注。\n\t-重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX中使用的名称).\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-ExtAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的一个BUG(定义Mappings属性时)。\n\t+PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。\n\t -这个BUG导致Asp.net compatibility中的示例无法完成,现在已经修正。\n\t+去除PageManager中方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。\n\t -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility中的示例。\n\t\n\t\n\n+2009-08-25 v2.0.7\n -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止重复\u003Cem\u003E提交\u003C\u002Fem\u003E - 默认为true。\n -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。\n -增加示例-如何将Grid控件导出为Excel(data\\grid_excel_run.aspx)(feedback:503684912)。\n -如果TreeNode的属性Enabled=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\",则此项变灰并且不会被选中(feedback:your568)。\n -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.aspx)。\n -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID属性来代替。\n\t\t-这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,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+ExtAspNet和Asp.net的\u003Cem\u003E提交\u003C\u002Fem\u003E按钮兼容\u003Cem\u003E问题\u003C\u002Fem\u003E(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容\u003Cem\u003E问题\u003C\u002Fem\u003E,并有这样的规则,如果Asp.net的按钮AJAX\u003Cem\u003E提交\u003C\u002Fem\u003E,必须设置U\u003Cem\u003Ese\u003C\u002Fem\u003ESubmitBehavior=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使一个Asp.net的按钮能够AJAX\u003Cem\u003E提交\u003C\u002Fem\u003E,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的Asp.net控件了。\n\t\t-在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。\n\t\t-示例在aspnet\\fckeditor_run.aspx和aspnet\\aspnet_run.aspx。\n\t\t-FCKEditor和上传控件兼容。示例在aspnet\\fileupload_run.aspx。\n\t-修正ToolbarText的文本在AJAX下更新的BUG。\n\t-Button的Pres\u003Cem\u003Ese\u003C\u002Fem\u003Ed属性在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-现在支持Respon\u003Cem\u003Ese\u003C\u002Fem\u003E.Redirect,你可以选择Respon\u003Cem\u003Ese\u003C\u002Fem\u003E.Redirect或者ExtAspNet.PageContext.Redirect重定向页面,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, fal\u003Cem\u003Ese\u003C\u002Fem\u003E);这样的方法。\n\t-Button增加Type属性(button,re\u003Cem\u003Ese\u003C\u002Fem\u003Et,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不显示(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下测试通过。以后ExtAspNet将不会对IE6.0提供支持。\n\t\n\n\n+2009-07-13 v2.0 beta2\n\t-集成extjs最新版本v3.0。\n\t+兼容IE6.0-7.0-8.0。\n\t\t-这应该是Extjs3.0的一个BUG,在IE6.0-7.0下面设置Ext.QuickTips.init();会导致button的click事件无法响应(IE8下无此\u003Cem\u003E问题\u003C\u002Fem\u003E)。\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-更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Relea\u003Cem\u003Ese\u003C\u002Fem\u003E版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。\n\t-ExtAspNet自身的CSS会紧挨着页面\u003Ctitle\u003E标签引入,这样在\u003Chead\u003E中自定义的样式可以覆盖ExtAspNet缺省样式。\n\t+Alert对话框会遮挡所有的Window窗口。\n\t\t-使用一个变通的方法解决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的z\u003Cem\u003Ese\u003C\u002Fem\u003Eed调整为6000。\t\n\t-为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。\n\t-因为下拉列表不可编辑,所以不能为空,如果不设置\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex或\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue,则默认选中第一项。\n\t-重新绑定模拟树的下拉列表后,选中项的前面有图片的HTML标签的BUG。\n\t-更新自定义JavaScript组件Ext.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中的EnableIFrame==fal\u003Cem\u003Ese\u003C\u002Fem\u003E,则点击关闭按钮时报JS错误。[fixed]\n\t-页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet\u002Ffileupload.aspx)[fixed]\n\t-HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果弹出的窗口(Ext-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http:\u002F\u002Fextjs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果页面中存在ASP.NET控件(TextBox),则第二次\u003Cem\u003E提交\u003C\u002Fem\u003E表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的\u003Cem\u003E问题\u003C\u002Fem\u003E)。[fixed]\n\t-页面上放置ExtAspNet-Button和ASP.NET-Button,则点击ExtAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003EForm的实现有关。[fixed]\n\t-ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在ExtAspNet工程中使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和ASP.NET标准控件和平共处了。[fixed]\n\t\t-如果一个ASP.NET按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 U\u003Cem\u003Ese\u003C\u002Fem\u003ESubmitBehavior=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" 即可。\n\t\t-如果要在一次ExtAspNet的原生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-自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed]\n\t+系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed]\n\t\t-底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。\t\n\t\t-PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“\u003Cem\u003E获取\u003C\u002Fem\u003E当前页面中表单修改的确认提示框的脚本”。\n\t\t---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference\u002FGetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003ERefreshReference\u002FGetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EPostBackReference三个方法代替。\n\t\t-不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference\u003Cem\u003E获取\u003C\u002Fem\u003E此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的ASPX页面中查找RegisterPageStateChangedScript属性,并删除,否则会运行错误!\n\t\t-A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。\n\t\t---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。\n\t\t-Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference,表示“\u003Cem\u003E获取\u003C\u002Fem\u003E先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003ERefreshReference和GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EPostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。\n\t\t---Window控件的OnClientClo\u003Cem\u003Ese\u003C\u002Fem\u003EButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference,也即是先判断表单是否更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。\n\t\t-如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。\n\t\t-Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-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-ContentPanel中内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed]\n\t-DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed]\n\t-DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed]\n\t-升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏\u003Cem\u003E问题\u003C\u002Fem\u003E的修正)。[fixed]\n\t-页面加载过程中的时间信息保存在Javascript变量window.box.timeInfo中。[added]\n\t+增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed]\n\t\n\t\n\n+2008-10-28 v1.2 beta7\n\t-DropDownList没有选中任何一项,回发时报错[feedback:huihuang]。[fixed]\n\t-Window显示位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed]\n\t+PageContext优化。[fixed]\n\t\t-去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。\n\t\t-去除RegisterStartupScript的重载函数,只保留最简单的PageContext.RegisterStartupScript(string script)函数。\n\t\t-Resirect增加重载函数Redirect(string url, string target),其中target可能的取值为_\u003Cem\u003Ese\u003C\u002Fem\u003Elf,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。\n\t-Image控件增加ImageWidth\u002FImageHeight\u002FImageCssStyle\u002FImageCssClass\u002FImageAlt属性[feedback:jqpeng]。[fixed]\n\t-发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时显示不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样一个效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的\u003Cem\u003E问题\u003C\u002Fem\u003E。[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\u002FFirstItemText\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.In\u003Cem\u003Ese\u003C\u002Fem\u003Ert(0, new ExtAspNet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex和\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue不能选中[feedback:jqpeng]。\n\t\t\t-和Asp.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue = \"\";\n\t\t-ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。\n\t-处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为fal\u003Cem\u003Ese\u003C\u002Fem\u003E(避免开发人员发生此类错误)。[fixed]\n\t-注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding\u002Fborder-width\u002Fmargin)。[fixed]\n\t+为所有控件属性增加在VS中的智能提示。[fixed]\n\t\t-需要将ExtAspNet.XML和ExtAspNet.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.U\u003Cem\u003ESE\u003C\u002Fem\u003ER_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)中通过js切换父页面中选中的菜单项(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属性进行验证,而不是Text属性。\n\t\t-DropDownList的Items增加In\u003Cem\u003Ese\u003C\u002Fem\u003Ert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyText属性。\n\t\t-ListItem启用Enable\u003Cem\u003ESe\u003C\u002Fem\u003Elect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加EnableSimulateTree属性(默认为fal\u003Cem\u003Ese\u003C\u002Fem\u003E),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other\u002Faccordion_run.aspx)。[fixed]\n\t\t-Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。\n\t\t-影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。\n\t-AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other\u002Faccordion_links_run.aspx)。[fixed]\n\t\t-原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上\u003CItems\u003E标签。\n\t\t-适当增大AccordionPanel中链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed]\n\t\t-Panel\u002FGroupPanel\u002FContentPanel\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form中动态添加控件的BUG,现在form\u002Fform_dynamic_run.aspx示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordionPanel\u002FGroupPanel\u002FPanel\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。\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+Grid选中项(\u003Cem\u003ESe\u003C\u002Fem\u003ElectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对Grid进行多次删除添加操作后,\u003Cem\u003ESe\u003C\u002Fem\u003ElectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002FButton\u002FHyperLink\u002FLabel\u002FImage\u002FLinkButton\u002FTextBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FTextArea\u002FHtmlEditor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002F\u003Cem\u003ERadio\u003C\u002Fem\u003EButton\u002F\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList\u002FDropDownList\n\t\t-Grid\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLinkButton\u002FHyperLink增加一些Ajax可更新属性。[fixed]\n\t+隐藏的方式由HideMode属性控制Visibility\u002FOff\u003Cem\u003Ese\u003C\u002Fem\u003Ets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm中隐藏一个表单字段(Hidden=fal\u003Cem\u003Ese\u003C\u002Fem\u003E)会占据页面空间的BUG。\n\t-ToolbarText\u002FToolbarFill\u002FToolbar\u003Cem\u003ESe\u003C\u002Fem\u003Eparator在ASPX中设置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属性,在网报中可以用自定义样式实现,而不应该写在控件中。[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-Toolbar\u003Cem\u003ESe\u003C\u002Fem\u003Eparator\u002FToolbarFill在Ajax更新Hidden属性的BUG。[fixed]\n\t+布局整理。[fixed]\n\t\t-新增Column\u002FAbsolute\u002FRow三种布局,加上以前的Container\u002FFit\u002FAnchor\u002FAccordion\u002FBorder\u002FForm六种布局,总共有9中布局可供使用。\n\t\t-其中一些控件默认使用一种布局:SimpleForm(Form)\u002FForm(Form)\u002FPanel-GroupPanel(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属性,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-MenuButton\u002FMenuHyperLink\u002FMenu\u003Cem\u003ESe\u003C\u002Fem\u003Eparator\u002FMenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed]\n\t+大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=fal\u003Cem\u003Ese\u003C\u002Fem\u003E的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。\n\t\t-网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageContext.Redirect支持普通页面转向和ExtAspNetAjax下页面转向。[fixed]\n\t+模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed]\n\t\t-因为if(\"0,2,9,11,\".indexOf('1,')\u003E=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,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后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField\u002FDataValueField\u002FDataSimulateTreeLevelField\u002FDataEnable\u003Cem\u003ESe\u003C\u002Fem\u003ElectField等属性的值,否则Ajax回发时会出错)。[fixed]\n\t-U\u003Cem\u003Ese\u003C\u002Fem\u003ErControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用Asp.net的控件HiddenField,而是使用ExtAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList中项如果存在汉字,则会换行的BUG。[fixed]\n\t-增加两个Theme[Slate\u002FBlack](样式尚需完善)。[fixed]\n\t\n\t\n\t\n+2008-09-01 v1.1 beta4\n\t-非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置EnableDeferredRender=fal\u003Cem\u003Ese\u003C\u002Fem\u003E解决,但会减慢页面的加载速度),现在已经解决这个\u003Cem\u003E问题\u003C\u002Fem\u003E。[fixed]\n\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList去除EnableBackgroundColor\u002FEnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=fal\u003Cem\u003Ese\u003C\u002Fem\u003E)。[fixed]\n\t-Web.config中增加配置项FormLabelWidth=\"80\"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm\u002FForm的表单字段标题的宽度。[fixed]\n\t+完善Ajax。[fixed]\n\t\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList增加Ajax可更新属性\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex(\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue\u002F\u003Cem\u003ESe\u003C\u002Fem\u003ElectedItem)。\n\t\t-DropDownList增加Ajax可更新属性Enable\u002F\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex(\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue\u002F\u003Cem\u003ESe\u003C\u002Fem\u003ElectedItem)\u002FDataSource。\n\t\t-Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。\n\t\t-ToolbarText增加Ajax可更新属性Text。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Respon\u003Cem\u003Ese\u003C\u002Fem\u003E.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,ExtAspNet控件内置Ajax支持。[fixed]\n\t\t-这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的点击一个按钮弹出窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前ExtAspNetAjax的限制。\n\t\t\t-只对ExtAspNet控件起作用,对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-Grid中的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=fal\u003Cem\u003Ese\u003C\u002Fem\u003E))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed]\n\t-Grid选中行的状态在第一次回发时不能保持的BUG。[fixed]\n\t\n\t\n\t\n+2008-08-26 v1.0\n\t+已知\u003Cem\u003E问题\u003C\u002Fem\u003E:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。\n\t\t-主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化弹出窗口中IFrame的显示速度。[fixed]\n\t\t-在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加属性Theme、Language、FormMessageTarget、FormOff\u003Cem\u003Ese\u003C\u002Fem\u003EtRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed]\n\t\t-一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。\n\t-TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed]\n\t+TabStrip中非当前Tab会延迟渲染。[fixed]\n\t\t-这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。\n\t\t-由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。\n\t-不能比较两个DataPicker大小的BUG。[fixed]\n\t-TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed]\n\t-全新的ExtAspNet.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页面中使用父页面的脚本和样式(示例在iframe\u002Fdefault.aspx和iframe\u002Fpage3.aspx)。[fixed]\n\t\t-测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。\n\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed]\n\t+extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6\u002FIE7)(http:\u002F\u002Fwww.extjs.net\u002Fforum\u002Fshowthread.php?t=43246)(示例在test.aspx)[fixed]\n\t\t-现在的解决方法是在初始化时:if(this.initia\u003Cem\u003Elize\u003C\u002Fem\u003Ed){return;}this.initia\u003Cem\u003Elize\u003C\u002Fem\u003Ed=true;\n\t+需要先回发页面再弹出IFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=fal\u003Cem\u003Ese\u003C\u002Fem\u003E。\n\t\t-另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.aspx\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-点击关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.aspx。[fixed]\n\t+\u003Cem\u003ERadio\u003C\u002Fem\u003Ebuttonlist显示有重影(示例在\u003Cem\u003Eradio\u003C\u002Fem\u003E.aspx)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed]\n\t+IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed]\n\t\t-这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。\n\t\t-现在\"是否弹出窗口、窗口标题、IFrameUrl\"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此\u003Cem\u003E问题\u003C\u002Fem\u003E解决。(示例在button_iframe.aspx)\n\t\n\t\n\t\n+2008-08-13 v0.4 beta4\n\t-点击关闭窗口的按钮,在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-内存存在泄漏时,点击iframe\u002Fpage3.aspx页面8次后iexplorer占118.792M内存。\n\t\t-修正后,点击iframe\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框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed]\n\t-Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"解决)。[fixed]\n\t+页面正在加载的提示尽早的显示出来。[fixed]\n\t\t-首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容显示出来。\n\t\t-加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。\n\t\n\t\n\t\n+2008-08-08 v0.4 beta2\n\t-TabStrip延时加载出错。[fixed]\n\t-Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的页面应该为.\u002FFE_ApplyEditor.aspx或~\u002FPages_ExtAspNet\u002FFE_ApplyEditor.aspx。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed]\n\t-button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed]\n\t-Window中的保存并关闭按钮和Asp.netAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到页面的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EPostBackReference());,示例在(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增加\u003Cem\u003ESe\u003C\u002Fem\u003ElectedText属性(去除了模拟树时通过\u003Cem\u003ESe\u003C\u002Fem\u003ElectedItem.Text的多余html字符)。[fixed]\n\t-为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed]\n\t-将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed]\n\t+弹出窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed]\n\t\t-因为在页面的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。\n\t\t-一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。\n\t\t-另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx\u002Fsimpleform.aspx)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。\n\t-每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed]\n\t-TextField等表单字段增加Readonly属性。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过点击按钮弹出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)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,Grid中弹出窗口。(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,弹出窗口中的弹出窗口。\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显示为空的BUG。[fixed]\n\t-对TabStrip\u002FPanel\u002FWindow中的IFrame重新设计,如果设置IFrameUrl=\"#\"或者\"about:blank\",则不渲染iframe到页面节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed]\n\t-如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed]\n\t-Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx\u002Fsimpleform.aspx)。[fixed]\n\t\t-内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。\n\t-参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed]\n\t-Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed]\n\t+IFrame内的页面宽度和高度会自动设置(是不是还在为1px\u002F2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx\u002Fsimpleform.aspx\u002Fsimpleform2.aspx)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar属性用于隐藏滚动条(IE\u002FFirefox)。\n\t\n\t\n\t\n+2008-07-24 v0.3 beta11\n\t-web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormOff\u003Cem\u003Ese\u003C\u002Fem\u003EtRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加Off\u003Cem\u003Ese\u003C\u002Fem\u003EtRight属性 [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为fal\u003Cem\u003Ese\u003C\u002Fem\u003E,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed]\n\t-去掉DropDownList控件的Text属性(强制性),可以通过设置\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed]\n\t-过滤提示消息中的换行符(转换为\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-如何将数据库中的数据绑定到Tree(示例在tree2_bind_databa\u003Cem\u003Ese\u003C\u002Fem\u003E.aspx)。\n\t\t-ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。\n\t\t-更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。\n\t-Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed]\n\t-Grid所有类型的列增加DataTooltipField\u002FDataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确解析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[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下显示的不同效果。\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-可以在回发时维持树的状态(选中行,折叠\u002F展开,CheckBox)。\n\t\t-可以通过Inline的方式添加树节点,也可以绑定到XmlDocument\u002FXmlDataSource\u002FSiteMap。\n\t\t-点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。\n\t\n\t\n\t\n+2008-07-16 v0.3 beta8\n\t+ContentPanel中放置ExtAspNet控件,则渲染时会出现各种\u003Cem\u003E问题\u003C\u002Fem\u003E,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种\u003Cem\u003E问题\u003C\u002Fem\u003E(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。\n\t\t-现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。\n\t+IE6下,在应用Asp.NetAjax后,Form中字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现\u003Cem\u003E问题\u003C\u002Fem\u003E的经历,你就能明白。\n\t\t-最后发现IE6下应用Asp.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.\u003Cem\u003Ese\u003C\u002Fem\u003EtWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master 页面。\n\t+集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed]\n\t\t-解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.\u003Cem\u003Ese\u003C\u002Fem\u003EtSize(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属性(默认fal\u003Cem\u003Ese\u003C\u002Fem\u003E),可以启用淡出效果。[fixed]\n\t-Accordion选中样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+Grid增加EnableDelayRender属性(默认fal\u003Cem\u003Ese\u003C\u002Fem\u003E),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed]\n\t\t-因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置\"EnableDelayRender=fal\u003Cem\u003Ese\u003C\u002Fem\u003E\"。\n\t-改变Grid中静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击一个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和TextBox比较大小需要指定CompareType。\n\t+如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx\u002Fajax_editor.aspx)。[fixed]\n\t\t-这是由于ajax后执行的javascript中不能有return fal\u003Cem\u003Ese\u003C\u002Fem\u003E语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed]\n\t\t-在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-弹出Window默认显示的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是\"#\"。[fixed]\n\t+弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例中alert\\alert_1.aspx和alert\\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-点击\u003Cem\u003E提交\u003C\u002Fem\u003E按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed]\n\t+增加Menu、MenuText、Menu\u003Cem\u003ESe\u003C\u002Fem\u003Eparator、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表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed]\n\t\t-增加ControlToCompare\u002FValueToCompare\u002FCompareOperator\u002FCompareMessage四个属性,示例在form_compare.aspx。\n\t+TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList增加AutoPostBack属性(示例在\u003Cem\u003Eradio\u003C\u002Fem\u003E.aspx) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed]\n\t+表单字段Enable=fal\u003Cem\u003Ese\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-Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed]\n\t+增加HiddenField控件。[fixed]\n\t\t-其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle=\"display:none;\"即可。\n\t+TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed]\n\t\t-最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。\n\t-模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed]\n\t\t-增加 DataEnable\u003Cem\u003ESe\u003C\u002Fem\u003ElectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加UpdatePanelConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed]\n\t\t-使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。\n\t\t-示例在ajax3.aspx\u002Fcontent_page4.aspx。\n\t\t-示例content_page3.aspx中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为fal\u003Cem\u003Ese\u003C\u002Fem\u003E。[fixed]\n\t\t-使用GroupPanel的地方需要手工添加AutoHeight=\"true\"属性。\n\t+增加U\u003Cem\u003Ese\u003C\u002Fem\u003ErControlConnector,可以在其中放置用户控件(示例在page_u\u003Cem\u003Ese\u003C\u002Fem\u003Ercontrol.aspx)。[fixed]\n\t\t-也可以在ContentPanel中放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed]\n\t+支持Asp.net ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx\u002Fcontent_ajax2.aspx中。\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-删除Clo\u003Cem\u003Ese\u003C\u002Fem\u003EAction属性,可以在后台通过OnClientClo\u003Cem\u003Ese\u003C\u002Fem\u003EButtonClick属性指定(为了和iframe中做法一致)。\n\t+iframe中的alert\u002Fconfirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed]\n\t\t-在Firefox下还有\u003Cem\u003E问题\u003C\u002Fem\u003E。[fix pending]\n\t+排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed]\n\t\t-可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。\n\t\t-可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.aspx)。[fixed]\n\t-TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed]\n\t-可以在ContentPanel中放置用户控件(示例在page_u\u003Cem\u003Ese\u003C\u002Fem\u003Ercontrol.aspx)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed]\n\t-Grid的数据库分页需要增加属性IsDataba\u003Cem\u003Ese\u003C\u002Fem\u003EPaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClo\u003Cem\u003Ese\u003C\u002Fem\u003E可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed]\n\t-如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed]\n\t-增加静态类Confirm。[fixed]\n\t\n\t\n\t\n+2008-06-27 v0.2 beta10\n\t+Grid完善。[fixed]\n\t\t-CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。\n\t\t-Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(一个Grid只能有一个Column指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。\n\t\t-切换分页时清空选中的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。\n\t-DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体中的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-在simpleform.aspx中:Panel[BodyPadding=5](Toolbar,Panel[Height=450 Layout=Fit](SimpleForm[AutoScroll=true])),则外面窗口的高度=450 + 5*2 + 26 + 32,其中26是Toolbar的高度,32是窗口的标题栏和下边框的高度。\n\t+关闭Iframe的LoadMask,所以需要Iframe页面添加PageLoading控件,这样效果统一。[fixed]\n\t+Grid完善。\n\t\t-去除EnableClientPaging和EnableClientSort属性,客户端排序和客户端分页在ASP.NET应用中会有很多\u003Cem\u003E问题\u003C\u002Fem\u003E(主要是状态保持的\u003Cem\u003E问题\u003C\u002Fem\u003E)。\n\t\t+Enable\u003Cem\u003ESe\u003C\u002Fem\u003ErverSort改名AllowSorting。(示例在grid_sorting.aspx)\n\t\t\t-使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数中重新绑定数据。\n\t\t+增加AllowPaging属性。(示例在grid_paging.aspx)\n\t\t\t-使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数中Grid1.PageIndex = e.NewPageIndex;OK。\n\t\t+数据库分页支持。(示例在grid_databa\u003Cem\u003Ese\u003C\u002Fem\u003E_paging.aspx)\n\t\t\t-使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数中Grid1.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~Rate-2-2190657-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2190657-bbs-392280338.264^v3^pc_relevant_bbs_down_cate","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2190657-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2190657-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130","title":"ExtAspNet_v2.3.2_dll","desc":"ExtAspNet - ExtJS ba\u003Cem\u003Ese\u003C\u002Fem\u003Ed ASP.NET Controls with Full AJAX Support\n\t\nExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有Web\u003Cem\u003ESe\u003C\u002Fem\u003Ervices的Web应用程序。\n\n支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002Fextasp.net\u002F\n开源: http:\u002F\u002Fextaspnet.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-不绑定任何数据到Grid时,确保页面不会出错。\n\t-修正了Grid列属性DataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。\n\t-修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。\n\t-增加土耳其语言资料文件(feedback:abdullaharslan)。\n\t-Grid的BoundField增加NullDisplayText属性,用于处理数据库中的null值,如果没有设置则默认为空字符串。\n\t-修正DatePicker中的一个bug(31\u002F01\u002F2010将会返回NULL)使用DateFormatString来生成\u003Cem\u003ESe\u003C\u002Fem\u003ElectedDate属性(feedback:OktaEndy)。\n\t-修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。\n\t-应用补丁#6593, #6621(feedback:vbelyaev)。\n\t+修正IE7下Grid分页速度慢(feedback:youwei, StevenGuan, hazardvn, gavindou, ttjacky)。\n\t\t-实际上IE7下所以的回发都慢,原因是客户端的Ba\u003Cem\u003Ese\u003C\u002Fem\u003E64编码速度慢,已经使用encodeURIComponent来代替Ba\u003Cem\u003Ese\u003C\u002Fem\u003E64编码。\n\t-俄语翻译(feedback:vbelyaev)。\n\t\n\t\n\n+2010-06-30 v2.3.1\n\t-ExtAspNet控件将不在依赖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-修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。\n\t-修正basic\u002Fhello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。\n\t-隐藏示例首页最外层RegionPanel的边框ShowBorder=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\"。\n\t+集成Extjs最新版本v3.1.1。\n\t\t-增加一个新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时页面消失的BUG。\n\t\t-删除Panel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax\u003Cem\u003E提交\u003C\u002Fem\u003E)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.aspx。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加EnableTabClo\u003Cem\u003Ese\u003C\u002Fem\u003EMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会弹出确认对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个属性EnableConfirmOnClo\u003Cem\u003Ese\u003C\u002Fem\u003E(默认fal\u003Cem\u003Ese\u003C\u002Fem\u003E),Clo\u003Cem\u003Ese\u003C\u002Fem\u003EAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon=\"Clo\u003Cem\u003Ese\u003C\u002Fem\u003E\",现在需要这样定义Icon=\"SystemClo\u003Cem\u003Ese\u003C\u002Fem\u003E\"。\n\t-WindowPosition默认居中,而不是黄金分割位置。\n\t+Button, Window等控件弹出位置属性的变化。\n\t\t-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_\u003Cem\u003Ese\u003C\u002Fem\u003Elf\" -\u003E Target=\"\u003Cem\u003ESe\u003C\u002Fem\u003Elf\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值\u003Cem\u003ESe\u003C\u002Fem\u003Elf, Parent, Top。\n\t\t-Confirm.GetShowReference的最后一个参数target变为枚举类型。\n\t\t-Alert.GetShowReference中的showInParent参数也变为Target枚举类型。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成Extjs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS\u003Cem\u003E问题\u003C\u002Fem\u003E。\n\t-修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。\n\t-修正了在Grid的PageIndexChange事件中不能\u003Cem\u003E获取\u003C\u002Fem\u003E\u003Cem\u003ESe\u003C\u002Fem\u003ElectedRowIndexArray属性的BUG(feedback:Violet)。\n\t-Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=\"float:left;\"属性。\n\t-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加EnableEdit属性。\n\t-使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。\n\t-使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。\n\t-Window的实例方法GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference等以及ActiveWindow的静态方法GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference等,其中的Clo\u003Cem\u003Ese\u003C\u002Fem\u003E全部改为Hide。\n\t-增加TabStrip中Tab控件可关闭属性EnableClo\u003Cem\u003Ese\u003C\u002Fem\u003E(默认为fal\u003Cem\u003Ese\u003C\u002Fem\u003E)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。\n\t-修正HtmlEditor不能编辑的BUG(feedback:TheBox)。\n\t-修正IE下有时会出现空白页面的情况(feedback:olivia919)。\n\t\n\t\n\n+2009-12-06 v2.1.8\n\t-修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。\n\t-修正了IE下Grid中的一个JS\u003Cem\u003E问题\u003C\u002Fem\u003E(feedback:lqm4108)。\n\t-修正Alert消息中引号未编码导致的JS错误(feedback:sun1299shine)。\n\t+集成extjs3.0.3。\n\t\t-修正弹出对话框的宽度计算错误(会保持最小的状态)。\n\t\t-增加新的皮肤Gray。\n\t-为示例工程添加改变语言和皮肤的下拉列表。\n\t-为PageContext增加静态函数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控件中删除SplitColor属性,增加Collap\u003Cem\u003Ese\u003C\u002Fem\u003EMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。\n\t-BorderPanel更名为RegionPanel。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加中国的省市县三级联动示例(data\u002Fshengshixian.aspx)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程中会重复加载的\u003Cem\u003E问题\u003C\u002Fem\u003E,这是一个在v2.1.6引入的\u003Cem\u003E问题\u003C\u002Fem\u003E(feedback:eroach)。\n\t-修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。\n\t\n\t\n\t\n+2009-11-26 v2.1.6\n\t+修正动态创建Grid列的BUG(feedback:gxpan)。\n\t\t-增加示例(data\u002Fgrid_dynamic_columns.aspx)。\n\t-修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如Panel,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。\n\t-重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。\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_\u003Cem\u003Ese\u003C\u002Fem\u003Elect_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的一个命名约定。\n\t\t\t-同时更名的还有GridColumn的ColumnId-\u003EColumnID,GetColumnId-\u003EGetColumnID。\n\t\t\t-Grid1.Columns.FindColumnById函数被Grid1.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的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。\n\t-部分ExtAspNet控件的设计时支持(会在后续版本中逐步完善)。\n\t-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003EEnablePostBack)。\n\t-为TextBox,TextArea,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-ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.aspx示例,使用验证图片(feedback:kedee)。\n\t-为Grid增加AutoPostBack属性和RowClick事件,示例在\u002Fdata\u002Fgrid_autopostback.aspx(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。\n\t-Grid中TemplateField生成到页面中控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。\n\t\n\t\n\n+2009-09-27 v2.1.2\n\t-为Tree控件增加GetExpandAllNodesReference和GetCollap\u003Cem\u003Ese\u003C\u002Fem\u003EAllNodesReference两个函数。\n\t-修正RELEA\u003Cem\u003ESE\u003C\u002Fem\u003E版本下多语言加载的BUG(feedback:yigehaoren)。\n\t-增加pt_BR语言,由Ujvari提供。\n\t+为所有Panel(包括Grid,Tree,Form等)增加枚举类型Icon,其中包含1700多个小图标。\n\t\t-如果Panel具有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+为ExtAspNet.Alert.Show增加点击确定的JavaScript回调函数。\n\t\t-一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。\n\t\t-ExtAspNet.Alert.Show(\"参数错误!\", String.Empty, ExtAspNet.ActiveWindow.GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002Fextasp.net\u002Fdata\u002Ftree_run.aspx\n\t-Grid增加GetNo\u003Cem\u003ESe\u003C\u002Fem\u003ElectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的JS代码。\n\t-修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。\n\t-添加定时器控件Timer,用来定时发起AJAX请求。\n\t\n\t\n\n+2009-09-06 v2.1.0\n\t-Button的Pres\u003Cem\u003Ese\u003C\u002Fem\u003Ed属性值能够正确的反映客户端的变化。\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+添加对extjs3.0中所有语言的支持。\n\t\t-ExtAspNet扩展的多语言包在js\\languages\\extaspnet目录下,目前只有en,zh_CN,zh_TW三种实现\n\t\t-你可以向其中添加自己的语言版本,并执行js\\languages下的pack.bat打包,最后编译工程。\n\t\n\t\n\t\n+2009-09-01 v2.0.9\n\t-为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。\n\t+在aspx页面中必须显示的声明控件的集合属性(比如Tabs(TabStrip), Items(PanelBa\u003Cem\u003Ese\u003C\u002Fem\u003E), Nodes(TreeNode))。\n\t\t-这将会影响所有的aspx页面,所以要特别关注。\n\t-重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX中使用的名称).\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-ExtAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的一个BUG(定义Mappings属性时)。\n\t+PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。\n\t -这个BUG导致Asp.net compatibility中的示例无法完成,现在已经修正。\n\t+去除PageManager中方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。\n\t -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility中的示例。\n\t\n\t\n\n+2009-08-25 v2.0.7\n -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止重复\u003Cem\u003E提交\u003C\u002Fem\u003E - 默认为true。\n -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。\n -增加示例-如何将Grid控件导出为Excel(data\\grid_excel_run.aspx)(feedback:503684912)。\n -如果TreeNode的属性Enabled=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\",则此项变灰并且不会被选中(feedback:your568)。\n -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.aspx)。\n -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID属性来代替。\n\t\t-这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,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+ExtAspNet和Asp.net的\u003Cem\u003E提交\u003C\u002Fem\u003E按钮兼容\u003Cem\u003E问题\u003C\u002Fem\u003E(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容\u003Cem\u003E问题\u003C\u002Fem\u003E,并有这样的规则,如果Asp.net的按钮AJAX\u003Cem\u003E提交\u003C\u002Fem\u003E,必须设置U\u003Cem\u003Ese\u003C\u002Fem\u003ESubmitBehavior=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使一个Asp.net的按钮能够AJAX\u003Cem\u003E提交\u003C\u002Fem\u003E,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的Asp.net控件了。\n\t\t-在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。\n\t\t-示例在aspnet\\fckeditor_run.aspx和aspnet\\aspnet_run.aspx。\n\t\t-FCKEditor和上传控件兼容。示例在aspnet\\fileupload_run.aspx。\n\t-修正ToolbarText的文本在AJAX下更新的BUG。\n\t-Button的Pres\u003Cem\u003Ese\u003C\u002Fem\u003Ed属性在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-现在支持Respon\u003Cem\u003Ese\u003C\u002Fem\u003E.Redirect,你可以选择Respon\u003Cem\u003Ese\u003C\u002Fem\u003E.Redirect或者ExtAspNet.PageContext.Redirect重定向页面,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, fal\u003Cem\u003Ese\u003C\u002Fem\u003E);这样的方法。\n\t-Button增加Type属性(button,re\u003Cem\u003Ese\u003C\u002Fem\u003Et,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不显示(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下测试通过。以后ExtAspNet将不会对IE6.0提供支持。\n\t\n\n\n+2009-07-13 v2.0 beta2\n\t-集成extjs最新版本v3.0。\n\t+兼容IE6.0-7.0-8.0。\n\t\t-这应该是Extjs3.0的一个BUG,在IE6.0-7.0下面设置Ext.QuickTips.init();会导致button的click事件无法响应(IE8下无此\u003Cem\u003E问题\u003C\u002Fem\u003E)。\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-更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Relea\u003Cem\u003Ese\u003C\u002Fem\u003E版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。\n\t-ExtAspNet自身的CSS会紧挨着页面标签引入,这样在中自定义的样式可以覆盖ExtAspNet缺省样式。\n\t+Alert对话框会遮挡所有的Window窗口。\n\t\t-使用一个变通的方法解决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的z\u003Cem\u003Ese\u003C\u002Fem\u003Eed调整为6000。\t\n\t-为所有按钮的左右增加5px的空白边距:.x-btn button { margin: 0 5px !important; }。\n\t-因为下拉列表不可编辑,所以不能为空,如果不设置\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex或\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue,则默认选中第一项。\n\t-重新绑定模拟树的下拉列表后,选中项的前面有图片的HTML标签的BUG。\n\t-更新自定义JavaScript组件Ext.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中的EnableIFrame==fal\u003Cem\u003Ese\u003C\u002Fem\u003E,则点击关闭按钮时报JS错误。[fixed]\n\t-页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet\u002Ffileupload.aspx)[fixed]\n\t-HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果弹出的窗口(Ext-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http:\u002F\u002Fextjs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果页面中存在ASP.NET控件(TextBox),则第二次\u003Cem\u003E提交\u003C\u002Fem\u003E表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的\u003Cem\u003E问题\u003C\u002Fem\u003E)。[fixed]\n\t-页面上放置ExtAspNet-Button和ASP.NET-Button,则点击ExtAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003EForm的实现有关。[fixed]\n\t-ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在ExtAspNet工程中使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和ASP.NET标准控件和平共处了。[fixed]\n\t\t-如果一个ASP.NET按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 U\u003Cem\u003Ese\u003C\u002Fem\u003ESubmitBehavior=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" 即可。\n\t\t-如果要在一次ExtAspNet的原生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-自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed]\n\t+系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed]\n\t\t-底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。\t\n\t\t-PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“\u003Cem\u003E获取\u003C\u002Fem\u003E当前页面中表单修改的确认提示框的脚本”。\n\t\t---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference\u002FGetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003ERefreshReference\u002FGetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EPostBackReference三个方法代替。\n\t\t-不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference\u003Cem\u003E获取\u003C\u002Fem\u003E此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的ASPX页面中查找RegisterPageStateChangedScript属性,并删除,否则会运行错误!\n\t\t-A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。\n\t\t---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。\n\t\t-Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference,表示“\u003Cem\u003E获取\u003C\u002Fem\u003E先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003ERefreshReference和GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EPostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。\n\t\t---Window控件的OnClientClo\u003Cem\u003Ese\u003C\u002Fem\u003EButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedClo\u003Cem\u003Ese\u003C\u002Fem\u003EReference,也即是先判断表单是否更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。\n\t\t-如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。\n\t\t-Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-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-ContentPanel中内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed]\n\t-DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed]\n\t-DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed]\n\t-升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏\u003Cem\u003E问题\u003C\u002Fem\u003E的修正)。[fixed]\n\t-页面加载过程中的时间信息保存在Javascript变量window.box.timeInfo中。[added]\n\t+增加部分自动测试支持(使用WatiN和NUnit),下个版本将会提供完整的自动测试支持。[fixed]\n\t\n\t\n\n+2008-10-28 v1.2 beta7\n\t-DropDownList没有选中任何一项,回发时报错[feedback:huihuang]。[fixed]\n\t-Window显示位置不对,以及不能拖动的BUG[feedback:huihuang]。[fixed]\n\t+PageContext优化。[fixed]\n\t\t-去除RegisterExclusiveScript静态函数(这是没有原生ajax之前的产物),使用RegisterStartupScript替代。\n\t\t-去除RegisterStartupScript的重载函数,只保留最简单的PageContext.RegisterStartupScript(string script)函数。\n\t\t-Resirect增加重载函数Redirect(string url, string target),其中target可能的取值为_\u003Cem\u003Ese\u003C\u002Fem\u003Elf,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。\n\t-Image控件增加ImageWidth\u002FImageHeight\u002FImageCssStyle\u002FImageCssClass\u002FImageAlt属性[feedback:jqpeng]。[fixed]\n\t-发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时显示不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样一个效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的\u003Cem\u003E问题\u003C\u002Fem\u003E。[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\u002FFirstItemText\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.In\u003Cem\u003Ese\u003C\u002Fem\u003Ert(0, new ExtAspNet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex和\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue不能选中[feedback:jqpeng]。\n\t\t\t-和Asp.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue = \"\";\n\t\t-ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。\n\t-处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为fal\u003Cem\u003Ese\u003C\u002Fem\u003E(避免开发人员发生此类错误)。[fixed]\n\t-注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding\u002Fborder-width\u002Fmargin)。[fixed]\n\t+为所有控件属性增加在VS中的智能提示。[fixed]\n\t\t-需要将ExtAspNet.XML和ExtAspNet.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.U\u003Cem\u003ESE\u003C\u002Fem\u003ER_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)中通过js切换父页面中选中的菜单项(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属性进行验证,而不是Text属性。\n\t\t-DropDownList的Items增加In\u003Cem\u003Ese\u003C\u002Fem\u003Ert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyText属性。\n\t\t-ListItem启用Enable\u003Cem\u003ESe\u003C\u002Fem\u003Elect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加EnableSimulateTree属性(默认为fal\u003Cem\u003Ese\u003C\u002Fem\u003E),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other\u002Faccordion_run.aspx)。[fixed]\n\t\t-Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。\n\t\t-影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。\n\t-AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other\u002Faccordion_links_run.aspx)。[fixed]\n\t\t-原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上标签。\n\t\t-适当增大AccordionPanel中链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed]\n\t\t-Panel\u002FGroupPanel\u002FContentPanel\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form中动态添加控件的BUG,现在form\u002Fform_dynamic_run.aspx示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordionPanel\u002FGroupPanel\u002FPanel\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。\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+Grid选中项(\u003Cem\u003ESe\u003C\u002Fem\u003ElectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对Grid进行多次删除添加操作后,\u003Cem\u003ESe\u003C\u002Fem\u003ElectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002FButton\u002FHyperLink\u002FLabel\u002FImage\u002FLinkButton\u002FTextBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FTextArea\u002FHtmlEditor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002F\u003Cem\u003ERadio\u003C\u002Fem\u003EButton\u002F\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList\u002FDropDownList\n\t\t-Grid\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLinkButton\u002FHyperLink增加一些Ajax可更新属性。[fixed]\n\t+隐藏的方式由HideMode属性控制Visibility\u002FOff\u003Cem\u003Ese\u003C\u002Fem\u003Ets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm中隐藏一个表单字段(Hidden=fal\u003Cem\u003Ese\u003C\u002Fem\u003E)会占据页面空间的BUG。\n\t-ToolbarText\u002FToolbarFill\u002FToolbar\u003Cem\u003ESe\u003C\u002Fem\u003Eparator在ASPX中设置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属性,在网报中可以用自定义样式实现,而不应该写在控件中。[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-Toolbar\u003Cem\u003ESe\u003C\u002Fem\u003Eparator\u002FToolbarFill在Ajax更新Hidden属性的BUG。[fixed]\n\t+布局整理。[fixed]\n\t\t-新增Column\u002FAbsolute\u002FRow三种布局,加上以前的Container\u002FFit\u002FAnchor\u002FAccordion\u002FBorder\u002FForm六种布局,总共有9中布局可供使用。\n\t\t-其中一些控件默认使用一种布局:SimpleForm(Form)\u002FForm(Form)\u002FPanel-GroupPanel(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属性,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-MenuButton\u002FMenuHyperLink\u002FMenu\u003Cem\u003ESe\u003C\u002Fem\u003Eparator\u002FMenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed]\n\t+大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=fal\u003Cem\u003Ese\u003C\u002Fem\u003E的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。\n\t\t-网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageContext.Redirect支持普通页面转向和ExtAspNetAjax下页面转向。[fixed]\n\t+模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed]\n\t\t-因为if(\"0,2,9,11,\".indexOf('1,')\u003E=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,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后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField\u002FDataValueField\u002FDataSimulateTreeLevelField\u002FDataEnable\u003Cem\u003ESe\u003C\u002Fem\u003ElectField等属性的值,否则Ajax回发时会出错)。[fixed]\n\t-U\u003Cem\u003Ese\u003C\u002Fem\u003ErControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用Asp.net的控件HiddenField,而是使用ExtAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList中项如果存在汉字,则会换行的BUG。[fixed]\n\t-增加两个Theme[Slate\u002FBlack](样式尚需完善)。[fixed]\n\t\n\t\n\t\n+2008-09-01 v1.1 beta4\n\t-非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置EnableDeferredRender=fal\u003Cem\u003Ese\u003C\u002Fem\u003E解决,但会减慢页面的加载速度),现在已经解决这个\u003Cem\u003E问题\u003C\u002Fem\u003E。[fixed]\n\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList去除EnableBackgroundColor\u002FEnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=fal\u003Cem\u003Ese\u003C\u002Fem\u003E)。[fixed]\n\t-Web.config中增加配置项FormLabelWidth=\"80\"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm\u002FForm的表单字段标题的宽度。[fixed]\n\t+完善Ajax。[fixed]\n\t\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList增加Ajax可更新属性\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex(\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue\u002F\u003Cem\u003ESe\u003C\u002Fem\u003ElectedItem)。\n\t\t-DropDownList增加Ajax可更新属性Enable\u002F\u003Cem\u003ESe\u003C\u002Fem\u003ElectedIndex(\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue\u002F\u003Cem\u003ESe\u003C\u002Fem\u003ElectedItem)\u002FDataSource。\n\t\t-Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。\n\t\t-ToolbarText增加Ajax可更新属性Text。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Respon\u003Cem\u003Ese\u003C\u002Fem\u003E.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,ExtAspNet控件内置Ajax支持。[fixed]\n\t\t-这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的点击一个按钮弹出窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前ExtAspNetAjax的限制。\n\t\t\t-只对ExtAspNet控件起作用,对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-Grid中的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=fal\u003Cem\u003Ese\u003C\u002Fem\u003E))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed]\n\t-Grid选中行的状态在第一次回发时不能保持的BUG。[fixed]\n\t\n\t\n\t\n+2008-08-26 v1.0\n\t+已知\u003Cem\u003E问题\u003C\u002Fem\u003E:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。\n\t\t-主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化弹出窗口中IFrame的显示速度。[fixed]\n\t\t-在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加属性Theme、Language、FormMessageTarget、FormOff\u003Cem\u003Ese\u003C\u002Fem\u003EtRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed]\n\t\t-一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。\n\t-TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed]\n\t+TabStrip中非当前Tab会延迟渲染。[fixed]\n\t\t-这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。\n\t\t-由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。\n\t-不能比较两个DataPicker大小的BUG。[fixed]\n\t-TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed]\n\t-全新的ExtAspNet.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页面中使用父页面的脚本和样式(示例在iframe\u002Fdefault.aspx和iframe\u002Fpage3.aspx)。[fixed]\n\t\t-测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。\n\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed]\n\t+extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6\u002FIE7)(http:\u002F\u002Fwww.extjs.net\u002Fforum\u002Fshowthread.php?t=43246)(示例在test.aspx)[fixed]\n\t\t-现在的解决方法是在初始化时:if(this.initia\u003Cem\u003Elize\u003C\u002Fem\u003Ed){return;}this.initia\u003Cem\u003Elize\u003C\u002Fem\u003Ed=true;\n\t+需要先回发页面再弹出IFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=fal\u003Cem\u003Ese\u003C\u002Fem\u003E。\n\t\t-另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.aspx\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-点击关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.aspx。[fixed]\n\t+\u003Cem\u003ERadio\u003C\u002Fem\u003Ebuttonlist显示有重影(示例在\u003Cem\u003Eradio\u003C\u002Fem\u003E.aspx)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed]\n\t+IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed]\n\t\t-这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。\n\t\t-现在\"是否弹出窗口、窗口标题、IFrameUrl\"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此\u003Cem\u003E问题\u003C\u002Fem\u003E解决。(示例在button_iframe.aspx)\n\t\n\t\n\t\n+2008-08-13 v0.4 beta4\n\t-点击关闭窗口的按钮,在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-内存存在泄漏时,点击iframe\u002Fpage3.aspx页面8次后iexplorer占118.792M内存。\n\t\t-修正后,点击iframe\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框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed]\n\t-Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"解决)。[fixed]\n\t+页面正在加载的提示尽早的显示出来。[fixed]\n\t\t-首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容显示出来。\n\t\t-加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。\n\t\n\t\n\t\n+2008-08-08 v0.4 beta2\n\t-TabStrip延时加载出错。[fixed]\n\t-Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的页面应该为.\u002FFE_ApplyEditor.aspx或~\u002FPages_ExtAspNet\u002FFE_ApplyEditor.aspx。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed]\n\t-button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed]\n\t-Window中的保存并关闭按钮和Asp.netAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到页面的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClo\u003Cem\u003Ese\u003C\u002Fem\u003EPostBackReference());,示例在(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增加\u003Cem\u003ESe\u003C\u002Fem\u003ElectedText属性(去除了模拟树时通过\u003Cem\u003ESe\u003C\u002Fem\u003ElectedItem.Text的多余html字符)。[fixed]\n\t-为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed]\n\t-将生成的js对象的名称简单化,这样可以减少生成的js内容,加快页面加载速度(一个典型页面的js由原来的33.0k降低为21.4k)。[fixed]\n\t+弹出窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed]\n\t\t-因为在页面的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向页面注册了一段脚本,但是这段脚本在回发时没有注册到页面,因为js调用此脚本时报错。\n\t\t-一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。\n\t\t-另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx\u002Fsimpleform.aspx)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。\n\t-每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed]\n\t-TextField等表单字段增加Readonly属性。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过点击按钮弹出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)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,Grid中弹出窗口。(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,弹出窗口中的弹出窗口。\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显示为空的BUG。[fixed]\n\t-对TabStrip\u002FPanel\u002FWindow中的IFrame重新设计,如果设置IFrameUrl=\"#\"或者\"about:blank\",则不渲染iframe到页面节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed]\n\t-如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed]\n\t-Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx\u002Fsimpleform.aspx)。[fixed]\n\t\t-内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。\n\t-参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed]\n\t-Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed]\n\t+IFrame内的页面宽度和高度会自动设置(是不是还在为1px\u002F2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx\u002Fsimpleform.aspx\u002Fsimpleform2.aspx)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar属性用于隐藏滚动条(IE\u002FFirefox)。\n\t\n\t\n\t\n+2008-07-24 v0.3 beta11\n\t-web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormOff\u003Cem\u003Ese\u003C\u002Fem\u003EtRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加Off\u003Cem\u003Ese\u003C\u002Fem\u003EtRight属性 [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为fal\u003Cem\u003Ese\u003C\u002Fem\u003E,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed]\n\t-去掉DropDownList控件的Text属性(强制性),可以通过设置\u003Cem\u003ESe\u003C\u002Fem\u003ElectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed]\n\t-过滤提示消息中的换行符(转换为),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed]\n\t\n\t\n\t\n+2008-07-23 v0.3 beta10\n\t+完善Tree控件。[fixed]\n\t\t-如何将数据库中的数据绑定到Tree(示例在tree2_bind_databa\u003Cem\u003Ese\u003C\u002Fem\u003E.aspx)。\n\t\t-ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。\n\t\t-更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。\n\t-Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed]\n\t-Grid所有类型的列增加DataTooltipField\u002FDataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确解析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能解决##差旅交通费在IE和Firefox下显示的不同效果。\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-可以在回发时维持树的状态(选中行,折叠\u002F展开,CheckBox)。\n\t\t-可以通过Inline的方式添加树节点,也可以绑定到XmlDocument\u002FXmlDataSource\u002FSiteMap。\n\t\t-点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。\n\t\n\t\n\t\n+2008-07-16 v0.3 beta8\n\t+ContentPanel中放置ExtAspNet控件,则渲染时会出现各种\u003Cem\u003E问题\u003C\u002Fem\u003E,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种\u003Cem\u003E问题\u003C\u002Fem\u003E(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。\n\t\t-现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。\n\t+IE6下,在应用Asp.NetAjax后,Form中字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现\u003Cem\u003E问题\u003C\u002Fem\u003E的经历,你就能明白。\n\t\t-最后发现IE6下应用Asp.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.\u003Cem\u003Ese\u003C\u002Fem\u003EtWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master 页面。\n\t+集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed]\n\t\t-解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.\u003Cem\u003Ese\u003C\u002Fem\u003EtSize(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属性(默认fal\u003Cem\u003Ese\u003C\u002Fem\u003E),可以启用淡出效果。[fixed]\n\t-Accordion选中样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+Grid增加EnableDelayRender属性(默认fal\u003Cem\u003Ese\u003C\u002Fem\u003E),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed]\n\t\t-因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置\"EnableDelayRender=fal\u003Cem\u003Ese\u003C\u002Fem\u003E\"。\n\t-改变Grid中静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击一个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和TextBox比较大小需要指定CompareType。\n\t+如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx\u002Fajax_editor.aspx)。[fixed]\n\t\t-这是由于ajax后执行的javascript中不能有return fal\u003Cem\u003Ese\u003C\u002Fem\u003E语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed]\n\t\t-在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-弹出Window默认显示的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是\"#\"。[fixed]\n\t+弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例中alert\\alert_1.aspx和alert\\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-点击\u003Cem\u003E提交\u003C\u002Fem\u003E按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed]\n\t+增加Menu、MenuText、Menu\u003Cem\u003ESe\u003C\u002Fem\u003Eparator、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表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed]\n\t\t-增加ControlToCompare\u002FValueToCompare\u002FCompareOperator\u002FCompareMessage四个属性,示例在form_compare.aspx。\n\t+TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-\u003Cem\u003ERadio\u003C\u002Fem\u003EButtonList增加AutoPostBack属性(示例在\u003Cem\u003Eradio\u003C\u002Fem\u003E.aspx) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed]\n\t+表单字段Enable=fal\u003Cem\u003Ese\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-Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed]\n\t+增加HiddenField控件。[fixed]\n\t\t-其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle=\"display:none;\"即可。\n\t+TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed]\n\t\t-最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。\n\t-模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed]\n\t\t-增加 DataEnable\u003Cem\u003ESe\u003C\u002Fem\u003ElectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加UpdatePanelConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed]\n\t\t-使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。\n\t\t-示例在ajax3.aspx\u002Fcontent_page4.aspx。\n\t\t-示例content_page3.aspx中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为fal\u003Cem\u003Ese\u003C\u002Fem\u003E。[fixed]\n\t\t-使用GroupPanel的地方需要手工添加AutoHeight=\"true\"属性。\n\t+增加U\u003Cem\u003Ese\u003C\u002Fem\u003ErControlConnector,可以在其中放置用户控件(示例在page_u\u003Cem\u003Ese\u003C\u002Fem\u003Ercontrol.aspx)。[fixed]\n\t\t-也可以在ContentPanel中放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed]\n\t+支持Asp.net ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx\u002Fcontent_ajax2.aspx中。\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-删除Clo\u003Cem\u003Ese\u003C\u002Fem\u003EAction属性,可以在后台通过OnClientClo\u003Cem\u003Ese\u003C\u002Fem\u003EButtonClick属性指定(为了和iframe中做法一致)。\n\t+iframe中的alert\u002Fconfirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed]\n\t\t-在Firefox下还有\u003Cem\u003E问题\u003C\u002Fem\u003E。[fix pending]\n\t+排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed]\n\t\t-可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。\n\t\t-可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.aspx)。[fixed]\n\t-TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed]\n\t-可以在ContentPanel中放置用户控件(示例在page_u\u003Cem\u003Ese\u003C\u002Fem\u003Ercontrol.aspx)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed]\n\t-Grid的数据库分页需要增加属性IsDataba\u003Cem\u003Ese\u003C\u002Fem\u003EPaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClo\u003Cem\u003Ese\u003C\u002Fem\u003E可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed]\n\t-如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed]\n\t-增加静态类Confirm。[fixed]\n\t\n\t\n\t\n+2008-06-27 v0.2 beta10\n\t+Grid完善。[fixed]\n\t\t-CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。\n\t\t-Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(一个Grid只能有一个Column指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。\n\t\t-切换分页时清空选中的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。\n\t-DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体中的","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-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"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-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"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-3-2726130-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fajax_yuren\u002F548005","title":"jquery-1.1.3 效率提高800%","desc":"选择器速度提升\u003Cbr\u003E选择器的速度大幅度提高了,下表为jQuery1.1.2和1.1.3的选择器速度对比,提高了8倍多\u003Cbr\u003EBrow\u003Cem\u003Ese\u003C\u002Fem\u003Er jQuery 1.1.2 jQuery 1.1.3 % Improvement \u003Cbr\u003EIE 6 4890ms 661ms 740% \u003Cbr\u003EFirefox 2 5629ms 567ms 993% \u003Cbr\u003ESafari 2 3575ms 475ms 753% \u003Cbr\u003EOpera 9.1 3196ms 326ms 980% \u003Cbr\u003EAverage improvement: 867% \u003Cbr\u003E\u003Cbr\u003E下表为jQuery1.1.3与常用的一些JS库选择器的对比:\u003Cbr\u003EBrow\u003Cem\u003Ese\u003C\u002Fem\u003Er Prototype jQuery Mootools Ext Dojo \u003Cbr\u003EIE 6 1476ms 661ms 1238ms 672ms 738ms \u003Cbr\u003EFirefox 2 219ms 567ms 220ms 951ms 440ms \u003Cbr\u003ESafari 2 1568ms 475ms 909ms 417ms 527ms \u003Cbr\u003EOpera 9.1 220ms 326ms 217ms 296ms 220ms \u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E更新项目\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003ENew \u003Cem\u003ESe\u003C\u002Fem\u003Electors\u003Cbr\u003EUnicode \u003Cem\u003ESe\u003C\u002Fem\u003Electors: This is a huge addition for tho\u003Cem\u003Ese\u003C\u002Fem\u003E of you who want to u\u003Cem\u003Ese\u003C\u002Fem\u003E Unicode attribute values, IDs, class names, or tag names. You can now u\u003Cem\u003Ese\u003C\u002Fem\u003E them directly in jQuery \u003Cem\u003Ese\u003C\u002Fem\u003Electors:\u003Cbr\u003E\u003Cbr\u003E$(\"div.台北\")\u003Cbr\u003E$(\"div#台北\")\u003Cbr\u003E$(\"foo_bar台北\")\u003Cbr\u003E$(\"div[@id=台北]\")Escape \u003Cem\u003ESe\u003C\u002Fem\u003Electors: A frequently requested feature you can now \u003Cem\u003Ese\u003C\u002Fem\u003Elect elements by ID (or other \u003Cem\u003Ese\u003C\u002Fem\u003Elector) that u\u003Cem\u003Ese\u003C\u002Fem\u003Es a special character, for example this will find the div that has the ID of “foo.bar”:\u003Cbr\u003E\u003Cbr\u003E$(\"div#foo\\\\.bar\")Inequality \u003Cem\u003ESe\u003C\u002Fem\u003Elector: While this \u003Cem\u003Ese\u003C\u002Fem\u003Elector isn’t part of the CSS specification, it’s frequently u\u003Cem\u003Ese\u003C\u002Fem\u003Ed and included in other \u003Cem\u003Ese\u003C\u002Fem\u003Elector libraries, so we decided to add it in:\u003Cbr\u003E\u003Cbr\u003E$(\"div[@id!=test]\"):nth-child() improvements: This \u003Cem\u003Ese\u003C\u002Fem\u003Elector allows you to locate specific child elements. We’ve supported \u003Cem\u003Ese\u003C\u002Fem\u003Electors like :nth-child(1) and :nth-child(odd) since the beginning of jQuery, now we’ve added advanced :nth-child \u003Cem\u003Ese\u003C\u002Fem\u003Electors, such as:\u003Cbr\u003E\u003Cbr\u003E$(\"div:nth-child(2n)\")\u003Cbr\u003E$(\"div:nth-child(2n+1)\")\u003Cbr\u003E$(\"div:nth-child(n)\")Space-\u003Cem\u003Ese\u003C\u002Fem\u003Eparated attributes: After being removed in jQuery 1.0, this \u003Cem\u003Ese\u003C\u002Fem\u003Elector has now been brought back by popular demand. It allows you to locate individual items in a space-\u003Cem\u003Ese\u003C\u002Fem\u003Eparated attribute (such as a class or rel attribute).\u003Cbr\u003E\u003Cbr\u003E$(\"a[@rel~=test]\")Animation Improvements\u003Cbr\u003E\u003Cbr\u003E参数: \u003Cbr\u003Eoptions \u003Cbr\u003E返回值: \u003Cbr\u003EXMLHttpRequest \u003Cbr\u003E使用HTTP请求一个页面。\u003Cbr\u003E这是jQuery的低级AJAX实现。要查看高级抽象,见$.\u003Cem\u003Ese\u003C\u002Fem\u003Et、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。\u003Cbr\u003E警告:如果数据类型指定为\"script\",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入) \u003Cbr\u003E$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。 \u003Cbr\u003E注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如. xml 的类型是 \"text\u002Fxml\")。错误的MIME类型能够导致脚本出现意想不到的\u003Cem\u003E问题\u003C\u002Fem\u003E。请查看AJAX的范例来了解数据类型的更多信息。 \u003Cbr\u003E$.ajax()函数需要一个参数,一个包含有键\u002F值对的对象,用于初始化并操作请求对象。 \u003Cbr\u003E在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 \"myurl?callback=?\" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。 \u003Cbr\u003E参数选项: \u003Cbr\u003Easync(true) 数据类型: Boolean \u003Cbr\u003E默认情况下,所有的请求都是异步发送的(默认为true)。 如果需要发送同步请求, 设置选项为fal\u003Cem\u003Ese\u003C\u002Fem\u003E。注意,同步请求可能会暂时的锁定浏览器, 当请求激活时不能进行任何操作。 \u003Cbr\u003Ebefore\u003Cem\u003ESe\u003C\u002Fem\u003End 数据类型: Function \u003Cbr\u003E一个预处理函数用于在发送前修改XMLHttpRequest对象,设置自定义头部等。 XMLHttpRequest作为惟一的参数被传递。这是一个 Ajax 事件。 function (XMLHttpRequest) {\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}cache(true) 数据类型: Boolean \u003Cbr\u003EjQuery 1.2中新添加的参数, 如果设为fal\u003Cem\u003Ese\u003C\u002Fem\u003E,则会强制浏览器不缓存请求的页面。 \u003Cbr\u003Ecomplete 数据类型: Function \u003Cbr\u003E当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。 这是一个 Ajax 事件。 function (XMLHttpRequest, textStatus) {\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}contentType(\"application\u002Fx-www-form-urlencoded\") 数据类型: String \u003Cbr\u003E发送到服务器的数据的内容类型。默认是 \"application\u002Fx-www-form-urlencoded\", 适合大多数情况。 \u003Cbr\u003Edata 数据类型: Object,String \u003Cbr\u003E要发送给服务器的数据。如果不是字符串,那么它会被转化为一个查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动转化,请查看processData选项。 数据对象必须是一组键\u002F值对。如果键对应的值是数组,jQuery会将其值赋给同一个键属性。 例如 {foo:[\"bar1\", \"bar2\"]} 变为 '&foo=bar1&foo=bar2'。 \u003Cbr\u003EdataType( Intelligent Guess (xml or html)) 数据类型: String \u003Cbr\u003E期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动的将respon\u003Cem\u003Ese\u003C\u002Fem\u003EXML或respon\u003Cem\u003Ese\u003C\u002Fem\u003EText传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第一个参数传递给success指定的回调函数)有: \"xml\": 返回一个可以由jQuery处理的XML文档。 \u003Cbr\u003E\"html\": 返回文本格式的HTML代码。包括求值后的脚本标记。 \u003Cbr\u003E\"script\": 将响应作为Javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为\"script\"类型会将post方法转换为get方法。 \u003Cbr\u003E\"json\": 将响应作为JSON求值,并返回一个Javascript对象。 \u003Cbr\u003E\"jsonp\": 使用JSONP载入一个JSON代码块. 会在URL的末尾添加\"?callback=?\"来指明回调函数。(jQuery 1.2以上的版本支持) \u003Cbr\u003E\"text\": 文本格式的字符串 \u003Cbr\u003Eerror 数据类型: Function \u003Cbr\u003E请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的化。 这是一个Ajax 事件。function (XMLHttpRequest, textStatus, errorThrown) {\u003Cbr\u003E \u002F\u002F typically only one of textStatus or errorThrown \u003Cbr\u003E \u002F\u002F will have info\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}global(true) 数据类型: Boolean \u003Cbr\u003E是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为fal\u003Cem\u003Ese\u003C\u002Fem\u003E可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。 \u003Cbr\u003EifModified(fal\u003Cem\u003Ese\u003C\u002Fem\u003E) 数据类型: Boolean \u003Cbr\u003E只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为fal\u003Cem\u003Ese\u003C\u002Fem\u003E,即忽略对头部的检查 \u003Cbr\u003Ejsonp 数据类型: String \u003Cbr\u003E在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置 {jsonp:'onJsonPLoad'} 会将 'onJsonPLoad=?' 传送给服务器。 \u003Cbr\u003EprocessData(true) 数据类型: Boolean \u003Cbr\u003E在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串,以适应默认的content-type--\"application\u002Fx-www-form-urlencoded\"。如果想发送DOMDocuments,就要把这个选项设置为fal\u003Cem\u003Ese\u003C\u002Fem\u003E。 \u003Cbr\u003Esuccess 数据类型: Function \u003Cbr\u003E当请求成功时调用的函数。这个函数会得到二个参数:从服务器返回的数据(根据“dataType”进行了格式化)和一个描述HTTP相应的状态字符串。这是一个 Ajax 事件。 function (data, textStatus) {\u003Cbr\u003E \u002F\u002F data could be xmlDoc, jsonObj, html, text, etc...\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}timeout 数据类型: Number \u003Cbr\u003E如果通过$.ajax\u003Cem\u003ESe\u003C\u002Fem\u003Etup设置了一个全局timeout,那么此函数使用一个局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给一个特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。 \u003Cbr\u003Etype(\"GET\") 数据类型: String \u003Cbr\u003E请求的类型 (\"POST\" 或 \"GET\"), 默认是 \"GET\"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的浏览器支持。 \u003Cbr\u003Eurl(The current page) 数据类型: String \u003Cbr\u003E请求发送的目标URL地址 \u003Cbr\u003Eu\u003Cem\u003Ese\u003C\u002Fem\u003Ername 数据类型: String \u003Cbr\u003Eu\u003Cem\u003Ese\u003C\u002Fem\u003Ername可用于在响应一个HTTP连接时的认证请求。 实例 \u003Cbr\u003E载入并执行一个JavaScript文件。 \u003Cbr\u003E$.ajax({\u003Cbr\u003E type: \"GET\",\u003Cbr\u003E url: \"test.js\",\u003Cbr\u003E dataType: \"script\"\u003Cbr\u003E});保存数据到服务器,完成后通知用户。 \u003Cbr\u003E $.ajax({\u003Cbr\u003E type: \"POST\",\u003Cbr\u003E url: \"some.php\",\u003Cbr\u003E data: \"name=John&location=Boston\",\u003Cbr\u003E success: function(msg){\u003Cbr\u003E alert( \"Data Saved: \" + msg );\u003Cbr\u003E }\u003Cbr\u003E });取得一个HTML页面的最新版本。 \u003Cbr\u003E$.ajax({\u003Cbr\u003E url: \"test.html\",\u003Cbr\u003E cache: fal\u003Cem\u003Ese\u003C\u002Fem\u003E,\u003Cbr\u003E success: function(html){\u003Cbr\u003E $(\"#results\").append(html);\u003Cbr\u003E }\u003Cbr\u003E});同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。 \u003Cbr\u003E var html = $.ajax({\u003Cbr\u003E url: \"some.php\",\u003Cbr\u003E async: fal\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cbr\u003E }).respon\u003Cem\u003Ese\u003C\u002Fem\u003EText;向服务器发送xml文档数据。通过设置processData选项为fal\u003Cem\u003Ese\u003C\u002Fem\u003E,将数据自动转换为string的动作被禁止了。 \u003Cbr\u003Evar xmlDocument = [create xml document];\u003Cbr\u003E $.ajax({\u003Cbr\u003E url: \"page.php\",\u003Cbr\u003E processData: fal\u003Cem\u003Ese\u003C\u002Fem\u003E,\u003Cbr\u003E data: xmlDocument,\u003Cbr\u003E success: handleRespon\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cbr\u003E });load( url, [data], [callback] )参数: \u003Cbr\u003Eurl (String): 装入页面的URL地址。 \u003Cbr\u003Eparams (Map): (可选)发送到服务端的键/值对参数。 \u003Cbr\u003Ecallback (Function): (可选) 当数据装入完成时执行的函数. function (respon\u003Cem\u003Ese\u003C\u002Fem\u003EText, textStatus, XMLHttpRequest) {\u003Cbr\u003E this; \u002F\u002F dom element\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E装入一个远程HTML内容到一个DOM结点。 默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于\"url #some \u003E \u003Cem\u003Ese\u003C\u002Fem\u003Elector\"。 \u003Cbr\u003E实例 \u003Cbr\u003E载入文档的sidebar的导航部分到一个无序列表中。 \u003Cbr\u003E$(\"#links\").load(\"\u002FMain_Page #p-Getting-Started li\");将feeds.html文件载入到id为feeds的div中。 \u003Cbr\u003E$(\"#feeds\").load(\"feeds.html\");同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。 \u003Cbr\u003E $(\"#feeds\").load(\"feeds.php\", {limit: 25}, function(){\u003Cbr\u003E alert(\"The last 25 entries in the feed have been loaded\");\u003Cbr\u003E });jQuery.get( url, [data], [callback] )参数: \u003Cbr\u003Eurl (String): 装入页面的URL地址 \u003Cbr\u003EMap(可选): (可选)发送到服务端的键/值对参数 \u003Cbr\u003Ecallback (Function): (可选) 当远程页面装入完成时执行的函数 function (data, textStatus) {\u003Cbr\u003E \u002F\u002F data可以是xmlDoc, jsonObj, html, text, 等...\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}返回值: \u003Cbr\u003EXMLHttpRequest \u003Cbr\u003E使用GET请求一个页面。 \u003Cbr\u003E这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。 \u003Cbr\u003E实例 \u003Cbr\u003E请求test.php页,忽略返回值. \u003Cbr\u003E$.get(\"test.php\");请求test.php页并发送附加数据(忽略返回值). \u003Cbr\u003E$.get(\"test.php\", { name: \"John\", time: \"2pm\" } );显示从test.php请求的返回值(HTML 或 XML, 根据不同返回值). \u003Cbr\u003E$.get(\"test.php\", function(data){\u003Cbr\u003E alert(\"Data Loaded: \" + data);\u003Cbr\u003E});显示向test.cgi发送附加数据请求的返回值 (HTML 或 XML, 根据不同返回值). \u003Cbr\u003E$.get(\"test.cgi\", { name: \"John\", time: \"2pm\" },\u003Cbr\u003E function(data){\u003Cbr\u003E alert(\"Data Loaded: \" + data);\u003Cbr\u003E });jQuery.getJSON( url, [data], [callback] )参数: \u003Cbr\u003Eurl (String): 装入页面的URL地址 \u003Cbr\u003EMap(可选): (可选)发送到服务端的键/值对参数 \u003Cbr\u003Ecallback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {\u003Cbr\u003E \u002F\u002F data will be a jsonObj\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}返回值: \u003Cbr\u003EXMLHttpRequest \u003Cbr\u003E使用GET请求JSON数据。 \u003Cbr\u003E在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 \"myurl?callback=?\" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback. \u003Cbr\u003E实例 \u003Cbr\u003E从Flickr JSONP API中载入最新的四幅猫的图片 \u003Cbr\u003E$.getJSON(\"http:\u002F\u002Fapi.flickr.com\u002F\u003Cem\u003Ese\u003C\u002Fem\u003Ervices\u002Ffeeds\u002Fphotos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?\",\u003Cbr\u003E function(data){\u003Cbr\u003E $.each(data.items, function(i,item){\u003Cbr\u003E $(\"\u003Cimg\u002F\u003E\").attr(\"src\", item.media.m).appendTo(\"#images\");\u003Cbr\u003E if ( i == 3 ) return fal\u003Cem\u003Ese\u003C\u002Fem\u003E;\u003Cbr\u003E });\u003Cbr\u003E });从test.js载入JSON数据, 从返回的JSON数据读取name值。 \u003Cbr\u003E$.getJSON(\"test.js\", function(json){\u003Cbr\u003E alert(\"JSON Data: \" + json.u\u003Cem\u003Ese\u003C\u002Fem\u003Ers[3].name);\u003Cbr\u003E});从test.js载入JSON数据, 传递一个附加参数,从返回的JSON数据读取name值。 \u003Cbr\u003E$.getJSON(\"test.js\", { name: \"John\", time: \"2pm\" }, function(json){\u003Cbr\u003E alert(\"JSON Data: \" + json.u\u003Cem\u003Ese\u003C\u002Fem\u003Ers[3].name);\u003Cbr\u003E});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值). \u003Cbr\u003E$.getIfModified(\"test.php\", function(data){\u003Cbr\u003E alert(\"Data Loaded: \" + data);\u003Cbr\u003E});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值),提供了一个附加的参数. \u003Cbr\u003E$.getIfModified(\"test.php\", { name: \"John\", time: \"2pm\" },\u003Cbr\u003E function(data){\u003Cbr\u003E alert(\"Data Loaded: \" + data);\u003Cbr\u003E });列出从pages.php返回的查询结果,将返回的数组转化为一段HTML代码。 \u003Cbr\u003Evar id=$(\"#id\").attr(\"value\");\u003Cbr\u003E $.getJSON(\"pages.php\",{id:id},dates);\u003Cbr\u003Efunction dates(datos)\u003Cbr\u003E{\t\u003Cbr\u003E $(\"#list\").html(\"Name:\"+datos[1].name+\"\u003Cbr\u003E\"+\"Last Name:\"+datos[1].lastname+\"\u003Cbr\u003E\"+\"Address:\"+datos[1].address);\u003Cbr\u003E}jQuery.getScript( url, [callback] )参数: \u003Cbr\u003Eurl (String): 装入页面的URL地址 \u003Cbr\u003Ecallback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {\u003Cbr\u003E \u002F\u002F data应该是javascript\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}返回值: \u003Cbr\u003EXMLHttpRequest \u003Cbr\u003E使用GET请求JavaScript文件并执行。 \u003Cbr\u003E在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。 \u003Cbr\u003E实例 \u003Cbr\u003E我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。 \u003Cbr\u003E$.getScript(\"http:\u002F\u002Fdev.jquery.com\u002Fview\u002Ftrunk\u002Fplugins\u002Fcolor\u002Fjquery.color.js\", function(){\u003Cbr\u003E $(\"#go\").click(function(){\u003Cbr\u003E $(\".block\").animate( { backgroundColor: 'pink' }, 1000)\u003Cbr\u003E .animate( { backgroundColor: 'blue' }, 1000);\u003Cbr\u003E });\u003Cbr\u003E});载入test.js JavaScript文件并执行。 \u003Cbr\u003E$.getScript(\"test.js\");载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。 \u003Cbr\u003E$.getScript(\"test.js\", function(){\u003Cbr\u003E alert(\"Script loaded and executed.\");\u003Cbr\u003E});jQuery.post( url, [data], [callback], [type] )参数: \u003Cbr\u003Eurl (String): 装入页面的URL地址 \u003Cbr\u003EMap(可选): (可选)发送到服务端的键/值对参数 \u003Cbr\u003Ecallback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {\u003Cbr\u003E \u002F\u002F data可能是 xmlDoc, jsonObj, html, text, 等...\u003Cbr\u003E this; \u002F\u002F the options for this ajax request\u003Cbr\u003E}String $.postJSON = function(url, data, callback) {\u003Cbr\u003E\t$.post(url, data, callback, \"json\");\u003Cbr\u003E};返回值: \u003Cbr\u003EXMLHttpRequest \u003Cbr\u003E使用POST请求一个页面。 \u003Cbr\u003E这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。 \u003Cbr\u003EajaxComplete( callback )参数: \u003Cbr\u003Ecallback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {\u003Cbr\u003E this; \u002F\u002F dom element listening\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件 \u003Cbr\u003E实例 \u003Cbr\u003E当AJAX请求完成时显示一条信息。 \u003Cbr\u003E$(\"#msg\").ajaxComplete(function(request, \u003Cem\u003Ese\u003C\u002Fem\u003Ettings){\u003Cbr\u003E $(this).append(\"\u003Cli\u003ERequest Complete.\u003C\u002Fli\u003E\");\u003Cbr\u003E });ajaxError( callback )参数: \u003Cbr\u003Ecallback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions, thrownError) {\u003Cbr\u003E \u002F\u002F thrownError only pas\u003Cem\u003Ese\u003C\u002Fem\u003Ed if an error was caught\u003Cbr\u003E this; \u002F\u002F dom element listening\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件. \u003Cbr\u003E实例 \u003Cbr\u003E当AJAX请求错误时显示一条信息。 \u003Cbr\u003E $(\"#msg\").ajaxError(function(request, \u003Cem\u003Ese\u003C\u002Fem\u003Ettings){\u003Cbr\u003E $(this).append(\"\u003Cli\u003EError requesting page \" + \u003Cem\u003Ese\u003C\u002Fem\u003Ettings.url + \"\u003C\u002Fli\u003E\");\u003Cbr\u003E });ajax\u003Cem\u003ESe\u003C\u002Fem\u003End( callback )参数: \u003Cbr\u003Ecallback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {\u003Cbr\u003E this; \u002F\u002F dom element listening\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件. \u003Cbr\u003E实例 \u003Cbr\u003E当AJAX请求发出后显示一条信息。 \u003Cbr\u003E $(\"#msg\").ajax\u003Cem\u003ESe\u003C\u002Fem\u003End(function(evt, request, \u003Cem\u003Ese\u003C\u002Fem\u003Ettings){\u003Cbr\u003E $(this).append(\"\u003Cli\u003CStarting request at \" + \u003Cem\u003Ese\u003C\u002Fem\u003Ettings.url + \"\u003C\u002Fli\u003C\");\u003Cbr\u003E });ajaxStart( callback )参数: \u003Cbr\u003Ecallback (Function): 要执行的函数 function () {\u003Cbr\u003E this; \u002F\u002F dom element listening\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件. \u003Cbr\u003E实例 \u003Cbr\u003E当AJAX请求开始(并还没有激活时)显示loading信息。 \u003Cbr\u003E$(\"#loading\").ajaxStart(function(){\u003Cbr\u003E $(this).show();\u003Cbr\u003E });ajaxStop( callback )参数: \u003Cbr\u003Ecallback (Function): 要执行的函数 function () {\u003Cbr\u003E this; \u002F\u002F dom element listening\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件. \u003Cbr\u003E实例 \u003Cbr\u003E当所有AJAX请求都停止时,隐藏loading信息。 \u003Cbr\u003E$(\"#loading\").ajaxStop(function(){\u003Cbr\u003E $(this).hide();\u003Cbr\u003E });ajaxSuccess( callback )参数: \u003Cbr\u003Ecallback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {\u003Cbr\u003E this; \u002F\u002F dom element listening\u003Cbr\u003E}返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件 \u003Cbr\u003E实例 \u003Cbr\u003E当AJAX请求成功完成时,显示信息。 \u003Cbr\u003E $(\"#msg\").ajaxSuccess(function(evt, request, \u003Cem\u003Ese\u003C\u002Fem\u003Ettings){\u003Cbr\u003E $(this).append(\"\u003Cli\u003ESuccessful Request!\u003C\u002Fli\u003E\");\u003Cbr\u003E });jQuery.ajax\u003Cem\u003ESe\u003C\u002Fem\u003Etup( options )参数: \u003Cbr\u003EOptions: 用于Ajax请求的键/值对 \u003Cbr\u003E为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。 \u003Cbr\u003E实例 \u003Cbr\u003E设置默认的全局AJAX请求选项。 \u003Cbr\u003E$.ajax\u003Cem\u003ESe\u003C\u002Fem\u003Etup({\u003Cbr\u003E url: \"\u002Fxmlhttp\u002F\",\u003Cbr\u003E global: fal\u003Cem\u003Ese\u003C\u002Fem\u003E,\u003Cbr\u003E type: \"POST\"\u003Cbr\u003E});\u003Cbr\u003E$.ajax({ data: myData });\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003E( )返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&\u003Cem\u003Eradio\u003C\u002Fem\u003E=\u003Cem\u003Eradio\u003C\u002Fem\u003E2 。在jQuery 1.2中。\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003E方法实现了正确表单元素序列,而不再需要插件支持。 \u003Cbr\u003E实例 \u003Cbr\u003E连接表单元素的一组查询字符串,可用于发送Ajax请求。 \u003Cbr\u003E function showValues() {\u003Cbr\u003E var str = $(\"form\").\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003E();\u003Cbr\u003E $(\"#results\").text(str);\u003Cbr\u003E }\u003Cbr\u003E\u003Cbr\u003E $(\":checkbox, :\u003Cem\u003Eradio\u003C\u002Fem\u003E\").click(showValues);\u003Cbr\u003E $(\"\u003Cem\u003Ese\u003C\u002Fem\u003Elect\").change(showValues);\u003Cbr\u003E showValues();\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003EArray( )返回值: \u003Cbr\u003EjQuery \u003Cbr\u003E连接所有的表单和表单元素(类似于.\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003E()方法),但是返回一个JSON数据格式。 \u003Cbr\u003E实例 \u003Cbr\u003E从form中取得一组值,显示出来 \u003Cbr\u003E function showValues() {\u003Cbr\u003E var fields = $(\":input\").\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003EArray();\u003Cbr\u003E alert(fields);\u003Cbr\u003E $(\"#results\").empty();\u003Cbr\u003E jQuery.each(fields, function(i, field){\u003Cbr\u003E $(\"#results\").append(field.value + \" \");\u003Cbr\u003E });\u003Cbr\u003E }\u003Cbr\u003E\u003Cbr\u003E $(\":checkbox, :\u003Cem\u003Eradio\u003C\u002Fem\u003E\").click(showValues);\u003Cbr\u003E $(\"\u003Cem\u003Ese\u003C\u002Fem\u003Elect\").change(showValues);\u003Cbr\u003E showValues();","createTime":"2008-07-21 19:41:30","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fajax_yuren\u002F548005\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fajax_yuren\u002F548005\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-548005-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fdengfeng_dengfeng\u002F6530741","title":"fckedit编辑器","desc":"编辑器 FCKeditor2.4 使用说明\n\n.下载\n\nFCKeditor2.3 (FCKeditot for java)\n\nFCKeditor2.4 (FCKeditor基本文件)\n\n以下是下载地址:\n\nhttp:\u002F\u002Fwww.fckeditor.net\u002Fdownload\u002Fdefault.html\n\n\n2.建立项目:\n\n建立项目tomcat\u002Fwebapps\u002FTestFCKeditor.\n\n\n3.将FCKeditor2.4解压缩\n\n将FCKeditor2.4解压缩,将整个目录FCKeditor复制到项目的根目录下,并将解压缩出来的文件夹fckeditor重命名为FCKeditor\n\n目录结构为:tomcat\u002Fwebapps\u002FTestFCKeditor\u002FFCKeditor\n\n然后将FCKeditor-2.3.zip(java)压缩包中\\web\\WEB-INF\\lib\\目录下的两个jar文件拷到项目的\\WEB-INF\\ lib\\目录下把其中的src目录下的FCKeditor.tld文件copy到TestFCKedit\u002FWEB-INF\u002F下\n\n\n4.合并web.xml:\n\n将FCKeditor-2.3.zip压缩包中\\web\\WEB-INF\\目录下的web.xml文件合并到项目的\\WEB-INF\\目录下的web.xml文件中\n\n\n\n5. 修改合并后的web.xml文件\n\n修改合并后的web.xml文件,将名为SimpleUploader的\u003Cem\u003ESe\u003C\u002Fem\u003Ervlet的enabled参数值改为true,\n\n以允许上传功能,Connector \u003Cem\u003ESe\u003C\u002Fem\u003Ervlet的ba\u003Cem\u003Ese\u003C\u002Fem\u003EDir参数值用于设置上传文件存放的位置\n\n在web.xml最后添加标签定义:\n\n\n\u003Ctaglib\u003E\n\n\u003Ctaglib-uri\u003E\u002FTestFCKeditor\u003C\u002Ftaglib-uri\u003E\n\n\u003Ctaglib-location\u003E\u002FWEB-INF\u002FFCKeditor.tld\u003C\u002Ftaglib-location\u003E\n\n\u003C\u002Ftaglib\u003E\n\n\n现在的web.xml文件没有\u003Ctaglib\u003E标签了,应该直接在jsp文件中使用:\u003C%@ taglib uri=\"http:\u002F\u002Ffckeditor.net\u002Ftags-fckeditor\" prefix=\"FCK\" %\u003E\n\n\n\n\n6. 映射:\n\n上面文件中两个\u003Cem\u003Ese\u003C\u002Fem\u003Ervlet的映射分别为:\u002Feditor\u002Ffilemanager\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er\u002Fdefault\u002Fconnectors\u002Fjsp\u002Fconnector\n\n和\u002Feditor\u002Ffilemanager\u002Fupload\u002Fsimpleuploader,需要在两个映射前面加上\u002FFCKeditor,\n\n即改为\u002FFCKeditor\u002Feditor\u002Ffilemanager\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er\u002Fdefault\u002Fconnectors\u002Fjsp\u002Fconnector和\n\n\u002FFCKeditor\u002Feditor\u002Ffilemanager\u002Fupload\u002Fsimpleuploader\n\n这两个名字根据你放在工程中的FCKeditor文件夹名称而定\n\n\n\n7.修改skin文件夹\n\n进入skin文件夹,如果你想使用fckeditor默认的这种奶黄色,\n\n那就把除了default文件夹外的另两个文件夹直接删除.(建议不删除,以后要用到其中的一个文件夹)\n\n\n8.删除无用文件\n\n删除\u002FFCKeditor\u002F目录下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文件以外的所有文件,保留文件夹editor\n\n删除目录\u002Feditor\u002F_source,\n\n删除\u002Feditor\u002Ffilemanager\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er\u002Fdefault\u002Fconnectors\u002F下的所有文件\n\n删除\u002Feditor\u002Ffilemanager\u002Fupload\u002F下的所有文件\n\n删除\u002Feditor\u002Flang\u002F下的除了fcklanguagemanager.js(我下载的没有这个文件), en.js, zh.js, zh-cn.js四个文件的所有文件\n\n\n9.修改配置:\n\n打开\u002FFCKeditor\u002Ffckconfig.js\n\n修改 FCKConfig.DefaultLanguage = 'zh-cn' ;\n\n把FCKConfig.LinkBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErURL等的值替换成以下内容:\n\nFCKConfig.LinkBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErURL\n\n= FCKConfig.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath + \"filemanager\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er\u002Fdefault\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er.html?Connector=connectors\u002Fjsp\u002Fconnector\" ;\n\n\nFCKConfig.ImageBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErURL\n\n= FCKConfig.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath + \"filemanager\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er\u002Fdefault\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er.html?Type=Image&Connector=connectors\u002Fjsp\u002Fconnector\" ;\n\n\nFCKConfig.FlashBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErURL\n\n= FCKConfig.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath + \"filemanager\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er\u002Fdefault\u002Fbrow\u003Cem\u003Ese\u003C\u002Fem\u003Er.html?Type=Flash&Connector=connectors\u002Fjsp\u002Fconnector\" ;\n\n\nFCKConfig.LinkUploadURL = FCKConfig.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath + 'filemanager\u002Fupload\u002Fsimpleuploader?Type=File' ;\n\nFCKConfig.FlashUploadURL = FCKConfig.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath + 'filemanager\u002Fupload\u002Fsimpleuploader?Type=Flash' ;\n\nFCKConfig.ImageUploadURL = FCKConfig.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath + 'filemanager\u002Fupload\u002Fsimpleuploader?Type=Image' ;\n\n\n10.其它\n\nfckconfig.js总配置文件,可用记录本打开,修改后将文件存为utf-8 编码格式找到:\n\n\nFCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ; 即在编辑器域内可以使用Tab键\n\n\n如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,\n\n在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,\n\n也就是基本的toolbar,找到:\n\nFCKConfig.Toolbar\u003Cem\u003ESe\u003C\u002Fem\u003Ets[\"Basic\"] = [\n\n['Bold','Italic','-','OrderedList','UnorderedList','-',\u002F*'Link',*\u002F'Unlink','-','Style','FontSize','TextColor','BGColor','-',\n\n'Smiley','SpecialChar','Replace','Preview'] ] ;\n\n这是改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台\n\n页直接访问和上传文件, fckeditor还支持编辑域内的鼠标右键功能\n\n\nFCKConfig.ContextMenu = ['Generic',\u002F*'Link',*\u002F'Anchor',\u002F*'Image',*\u002F'Flash','\u003Cem\u003ESe\u003C\u002Fem\u003Elect','Textarea','Checkbox','\u003Cem\u003ERadio\u003C\u002Fem\u003E','TextField','HiddenField',\n\n\u002F*'ImageButton',*\u002F'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;\n\n\n这也是改过的把鼠标右键的链接图像,FLASH,图像按钮功能都去掉\n\n\n找到: FCKConfig.FontNames = 'A\u003Cem\u003Eria\u003C\u002Fem\u003El;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;\n\n加上几种我们常用的字体\n\nFCKConfig.FontNames\n\n= '宋体;黑体;隶书;楷体_GB2312;A\u003Cem\u003Eria\u003C\u002Fem\u003El;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;\n\n\n\n11.添加文件\n\n添加文件 \u002FTestFCKeditor\u002Ftest.jsp:\n\n\u003C%@ page language=\"java\" import=\"com.fredck.FCKeditor.*\" %\u003E\n\n\u003C%@ taglib uri=\"\u002FTestFCKeditor\" prefix=\"FCK\" %\u003E\n\n\u003Cscript type=\"text\u002Fjavascript\" src=\"\u002FTestFCKeditor\u002FFCKeditor\u002Ffckeditor.js\"\u003E\u003C\u002Fscript\u003E\n\n\n\u003C%--\n\n三种方法调用FCKeditor\n\n1.FCKeditor自定义标签 (必须加头文件 \u003C%@ taglib uri=\"\u002FTestFCKeditor\" prefix=\"FCK\" %\u003E )\n\n2.script脚本语言调用 (必须引用 脚本文件 \u003Cscript type=\"text\u002Fjavascript\" src=\"\u002FTestFCKeditor\u002FFCKeditor\u002Ffckeditor.js\"\u003E\u003C\u002Fscript\u003E )\n\n3.FCKeditor API 调用 (必须加头文件 \u003C%@ page language=\"java\" import=\"com.fredck.FCKeditor.*\" %\u003E )\n\n--%\u003E\n\n\n\n\u002F\u002F标签调用方式\n\n\u003C%--\n\n\u003Cform action=\"show.jsp\" method=\"post\" target=\"_blank\"\u003E\n\n\u003CFCK:editor ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath=\"\u002FTestFCKeditor\u002FFCKeditor\u002F\"\n\nwidth=\"700\"\n\nheight=\"500\"\n\nskinPath=\"\u002FTestFCKeditor\u002FFCKeditor\u002Feditor\u002Fskins\u002Fsilver\u002F\"\n\ntoolbar\u003Cem\u003ESe\u003C\u002Fem\u003Et = \"Default\"\n\n\u003E\n\ninput\n\n\u003C\u002FFCK:editor\u003E\n\n\u003Cinput type=\"submit\" value=\"Submit\"\u003E\n\n\u003C\u002Fform\u003E\n\n--%\u003E\n\n\n\n\u002F\u002FJS调用方式\n\n\u003Cform action=\"show.jsp\" method=\"post\" target=\"_blank\"\u003E\n\n\u003Ctable border=\"0\" width=\"700\"\u003E\u003Ctr\u003E\u003Ctd\u003E\n\n\u003Ctextarea style=\"WIDTH: 100%; HEIGHT: 400px\"\u003Einput\u003C\u002Ftextarea\u003E\n\n\u003Cscript type=\"text\u002Fjavascript\"\u003E\n\nvar oFCKeditor = new FCKeditor('content') ;\n\noFCKeditor.Ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath = \"\u002FTestFCKeditor\u002FFCKeditor\u002F\" ;\n\noFCKeditor.Height = 400;\n\noFCKeditor.Toolbar\u003Cem\u003ESe\u003C\u002Fem\u003Et = \"Default\" ;\n\noFCKeditor.ReplaceTextarea();\n\n\u003C\u002Fscript\u003E\n\n\u003Cinput type=\"submit\" value=\"Submit\"\u003E\n\n\u003C\u002Ftd\u003E\u003C\u002Ftr\u003E\u003C\u002Ftable\u003E\n\n\u003C\u002Fform\u003E\n\n\n\n\u002F\u002FFCKeditor API 调用\n\n\u003C%--\n\n\u003Cform action=\"show.jsp\" method=\"post\" target=\"_blank\"\u003E\n\n\u003C%\n\nFCKeditor oFCKeditor ;\n\noFCKeditor = new FCKeditor( request, \"content\" ) ;\n\noFCKeditor.\u003Cem\u003Ese\u003C\u002Fem\u003EtBa\u003Cem\u003Ese\u003C\u002Fem\u003EPath( \"\u002FTestFCKeditor\u002FFCKeditor\u002F\" ) ;\n\noFCKeditor.\u003Cem\u003Ese\u003C\u002Fem\u003EtValue( \"input\" );\n\nout.println( oFCKeditor.create() ) ;\n\n%\u003E\n\n\u003Cbr\u003E\n\n\u003Cinput type=\"submit\" value=\"Submit\"\u003E\n\n\u003C\u002Fform\u003E\n\n--%\u003E\n\n\n添加文件\u002FTestFCKeditor\u002Fshow.jsp:\n\n\u003C%\n\nString content = request.getParameter(\"content\");\n\nout.print(content);\n\n%\u003E\n\n\n\n\n\n12.测试\n\n浏览http:\u002F\u002Flocalhost:8080\u002FTestFCKeditor\u002Ftest.jsp \n\n\n\n最后注意不同的版本 变量名称可能不一样请参考你使用的API文档\n\n\n配置选项:\n\n\nAutoDetectLanguage=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 自动检测语言\n\nBa\u003Cem\u003Ese\u003C\u002Fem\u003EHref=\"\" 相对链接的基地址\n\nContentLangDirection=\"ltr\u002Frtl\" 默认文字方向\n\nContextMenu=字符串数组,右键菜单的内容\n\nCustomConfigurationsPath=\"\" 自定义配置文件路径和名称\n\nDebug=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容\n\nDefaultLanguage=\"\" 缺省语言\n\nEditorAreaCss=\"\" 编辑区的样式表文件\n\nEnableSourceXHTML=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML\n\nEnableXHTML=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否允许使用XHTML取代HTML\n\nFillEmptyBlocks=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 使用这个功能,可以将空的块级元素用空格来替代\n\nFontColors=\"\" 设置显示颜色拾取器时文字颜色列表\n\nFontFormats=\"\" 设置显示在文字格式列表中的命名\n\nFontNames=\"\" 字体列表中的字体名\n\nFontSizes=\"\" 字体大小中的字号列表\n\nForcePasteAsPlainText=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 强制粘贴为纯文本\n\nForceSimpleAmpersand=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否不把&符号转换为XML实体\n\nFormatIndentator=\"\" 当在源码格式下缩进代码使用的字符\n\nFormatOutput=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 当输出内容时是否自动格式化代码\n\nFormatSource=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 在切换到代码视图时是否自动格式化代码\n\nFullPage=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容\n\nGeckoU\u003Cem\u003Ese\u003C\u002Fem\u003ESPAN=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否允许SPAN标记代替B,I,U标记\n\nIeSpellDownloadUrl=\"\"下载拼写检查器的网址\n\nImageBrow\u003Cem\u003Ese\u003C\u002Fem\u003Er=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否允许浏览服务器功能\n\nImageBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErURL=\"\" 浏览服务器时运行的URL\n\nImageBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErWindowHeight=\"\" 图像浏览器窗口高度\n\nImageBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErWindowWidth=\"\" 图像浏览器窗口宽度\n\nLinkBrow\u003Cem\u003Ese\u003C\u002Fem\u003Er=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否允许在插入链接时浏览服务器\n\nLinkBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErURL=\"\" 插入链接时浏览服务器的URL\n\nLinkBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErWindowHeight=\"\"链接目标浏览器窗口高度\n\nLinkBrow\u003Cem\u003Ese\u003C\u002Fem\u003ErWindowWidth=\"\"链接目标浏览器窗口宽度\n\nPlugins=object 注册插件\n\nPluginsPath=\"\" 插件文件夹\n\nShowBorders=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 合并边框\n\nSkinPath=\"\" 皮肤文件夹位置\n\nSmileyColumns=12 图符窗列数\n\nSmileyImages=字符数组 图符窗中图片文件名数组\n\nSmileyPath=\"\" 图符文件夹路径\n\nSmileyWindowHeight 图符窗口高度\n\nSmileyWindowWidth 图符窗口宽度\n\nSpellChecker=\"ieSpell\u002FSpellerpages\" 设置拼写检查器\n\nStartupFocus=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 开启时FOCUS到编辑器\n\nStylesXmlPath=\"\" 设置定义CSS样式列表的XML文件的位置\n\nTabSpaces=4 TAB键产生的空格字符数\n\nToolBarCanCollap\u003Cem\u003Ese\u003C\u002Fem\u003E=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 是否允许展开\u002F折叠工具栏\n\nToolbar\u003Cem\u003ESe\u003C\u002Fem\u003Ets=object 允许使用TOOLBAR集合\n\nToolbarStartExpanded=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 开启是TOOLBAR是否展开\n\nU\u003Cem\u003Ese\u003C\u002Fem\u003EBROnCar\u003Cem\u003Eria\u003C\u002Fem\u003EgeReturn=true\u002Ffal\u003Cem\u003Ese\u003C\u002Fem\u003E 当回车时是产生BR标记还是P或者DIV标记\n\n\n解决上传乱码:\n\n在SimpleUploader\u003Cem\u003ESe\u003C\u002Fem\u003Ervlet.java和Connector\u003Cem\u003ESe\u003C\u002Fem\u003Ervlet.java两个文件里找到\n\nDiskFileUpload upload = new DiskFileUpload();\n\n分别在其后加入 upload.\u003Cem\u003Ese\u003C\u002Fem\u003EtHeaderEncoding(\"utf-8\");\n\n这样解决了文件上传的中文乱码\u003Cem\u003E问题\u003C\u002Fem\u003E.\n\n但是在控制台显示的中文内容还是乱码,但是没关系,我们没必要去看控制台下的中文\n\n\n----------------------------------------------------------------another\n\nFCKeditor2.4.2 Java版使用说明\n\n下载地址以及基本配置请参考:http:\u002F\u002Fhi.baidu.com\u002Fwain19\u002Fblog\u002Fitem\u002Fc33fb0fab74f24dfb48f312d.html\n\n\n我的开发环境是ubuntu7.04, 系统默认编码是utf-8, \n\n期间,本人遇到了下面这些\u003Cem\u003E问题\u003C\u002Fem\u003E:\n\n\n\u003Cem\u003E问题\u003C\u002Fem\u003E一:XML request error: Internel \u003Cem\u003ESe\u003C\u002Fem\u003Erver Error(500)\n\n\n出现错误的地方是在:点插入图片,点Brow\u003Cem\u003Ese\u003C\u002Fem\u003E按钮的时候:\n\nXML request error: Internel \u003Cem\u003ESe\u003C\u002Fem\u003Erver Error(500)\n\n\n找资料:http:\u002F\u002Flamono.javaeye.com\u002Fblog\u002F49135\n\n拷贝xalan.jar和\u003Cem\u003Ese\u003C\u002Fem\u003E\u003Cem\u003Eria\u003C\u002Fem\u003E\u003Cem\u003Elize\u003C\u002Fem\u003E.jar到\u002FWEB-INF\u002Flib,\u003Cem\u003E问题\u003C\u002Fem\u003E解决\n\n\nFCKeditor-java没有很好的解决中文\u003Cem\u003E问题\u003C\u002Fem\u003E需要我们修改它的源代码后重新编译打包打包过程如下:\n\n1 新建一个web工程名字为FCKeditor-java-2.3,然后把FCKeditor-2.3-java.zip解压缩后的代码拷贝到工程目录下\n\n2如果是用的Eclip\u003Cem\u003Ese\u003C\u002Fem\u003E,使用快捷键Ctrl+Shift+R\n\n在SimpleUploader\u003Cem\u003ESe\u003C\u002Fem\u003Ervlet.java和Connector\u003Cem\u003ESe\u003C\u002Fem\u003Ervlet.java两个文件里找到\n\nDiskFileUpload upload = new DiskFileUpload();\n\n分别在其后加入 upload.\u003Cem\u003Ese\u003C\u002Fem\u003EtHeaderEncoding(\"utf-8\");\n\n现在如果直接运行ant任务,会报下面的错误:\n\ntaskdef class org.apache.catalina.ant.DeployTask cannot be found\n\n\n3 把tomcat安装目录下\u002F\u003Cem\u003Ese\u003C\u002Fem\u003Erver\u002Flib中的catalina-ant.jar拷贝到\u002FWEB-INF\u002Flib目录 下\n\n4 打开build.xml\n\n找到\n\n\u003Cproperty \n\n修改成你自己的tomcat安装目录\n\n\u003Cproperty value=\"\u002Fhome\u002Funiquejava\u002Ftool\u002Ftomcat5028\u002F\"\u002F\u003E\n\n找到\n\n\u003Ctaskdef \n\n修改成如下内容\n\n\u003Ctaskdef classname=\"org.apache.catalina.ant.DeployTask\"\u003E\n\n\u003Cclasspath refid=\"compile.classpath\"\u003E\n\n\u003C\u002Fclasspath\u003E\n\n\u003C\u002Ftaskdef\u003E\n\n\u003Ctaskdef classname=\"org.apache.catalina.ant.ListTask\"\u003E\n\n\u003Cclasspath refid=\"compile.classpath\"\u003E\n\n\u003C\u002Fclasspath\u003E\n\n\u003C\u002Ftaskdef\u003E\n\n\u003Ctaskdef classname=\"org.apache.catalina.ant.ReloadTask\"\u003E\n\n\u003Cclasspath refid=\"compile.classpath\"\u003E\n\n\u003C\u002Fclasspath\u003E\n\n\u003C\u002Ftaskdef\u003E\n\n\u003Ctaskdef classname=\"org.apache.catalina.ant.UndeployTask\"\u003E\n\n\u003Cclasspath refid=\"compile.classpath\"\u003E\n\n\u003C\u002Fclasspath\u003E\n\n\u003C\u002Ftaskdef\u003E\n\n\n运行ant任务dist, 就可以生成新的FCKeditor-2.3.jar包\n\n\n\u003Cem\u003E问题\u003C\u002Fem\u003E三: 上传时新建的中文目录全部乱码 虽然上传到服务器上的文件名正常,但在JSP页面点下载链接时文件名乱码导致不能正常下载\n\n\n查找资料:TOMCAT 链接参数有中文时,乱码解决方法\n\nhttp:\u002F\u002Fhi.baidu.com\u002Fjadestone\u002Fblog\u002Fitem\u002F7564deefc9192d36acafd5be.html\n\n修改tomcat-home\u002Fconf\u002F\u003Cem\u003Ese\u003C\u002Fem\u003Erver.xml\n\n方法一:\n\n在两处地方加上URIEncoding=\"utf-8\":\n\n\u003CConnector port=\"8080\"\n\nmaxThreads=\"150\" minSpareThreads=\"25\" maxSpareThreads=\"75\"\n\nenableLookups=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" redirectPort=\"8443\" acceptCount=\"100\"\n\ndebug=\"0\" connectionTimeout=\"20000\" \n\ndisableUploadTimeout=\"true\" URIEncoding=\"utf-8\" \u002F\u003E\n\n\n\u003CConnector port=\"8009\" \n\nenableLookups=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" redirectPort=\"8443\" debug=\"0\"\n\nprotocol=\"AJP\u002F1.3\" URIEncoding=\"utf-8\" \u002F\u003E\n\n\n方法二:\n\n使用u\u003Cem\u003Ese\u003C\u002Fem\u003EBodyEncodingForURI=\"true\". 这个方法适合你的TOMCAT实例下需要跑多个不同Encoding的程序时(有点怀疑?!)\n\n\u003C... maxThreads=\"150\" minSpareThreads=\"25\" maxSpareThreads=\"75\"\n\nenableLookups=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" redirectPort=\"8443\" acceptCount=\"100\"\n\nconnectionTimeout=\"20000\" disableUploadTimeout=\"true\" u\u003Cem\u003Ese\u003C\u002Fem\u003EBodyEncodingForURI=\"true\" \u002F\u003E\n\n\nenableLookups=\"fal\u003Cem\u003Ese\u003C\u002Fem\u003E\" redirectPort=\"8443\" protocol=\"AJP\u002F1.3\" u\u003Cem\u003Ese\u003C\u002Fem\u003EBodyEncodingForURI=\"true\" \u002F\n\n\n我只试了方法一,\u003Cem\u003E问题\u003C\u002Fem\u003E解决!\n\n\n这样, FCKeditor终于可以正常使用了\n\n=================================================================\n\n以下为个人原创 http:\u002F\u002Fblog.csdn.net\u002Fnickshen3\u002F\n\n怎么将FCKeditor2.4使用在自己的web中\n\n1. 在webapps创建test文件夹webapps\\test\n\n2. 将下载的FCKeditor2.3的Java包FCKeditor-2.3.zip解压缩,并将web文件夹下的两个文件夹_samples,WEB-INF拷贝到刚才建立的webapps\\test下再将src文件夹下的FCKeditor.tld拷贝到WEB-INF下\n\n3. 在webapps\\test\\下建立文件夹FCKeditor \n\n4. 将刚才下载的 FCKeditor_2.4.3.zip 解压缩,然后将fckeditor文件夹下的 editor(文件夹),fckconfig.js,fckeditor.js,fckstyles.xml,fcktemplates.xml四个文件拷贝到刚才建立的文件夹FCKeditor下\n\n5.修改test\\_samples\\jsp\\sample02.jsp文件,将原来的\n\n\u003CFCK:editor ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath=\"\u002FFCKeditor\u002F\"\n\n改为\u003CFCK:editor ba\u003Cem\u003Ese\u003C\u002Fem\u003EPath=\"\u002Ftest\u002FFCKeditor\u002F\"以后使用的时候只需将test换成项目的名称即可\n\n6.打开tomcat测试Http:\u002F\u002Flocalhost:8080\u002Ftest\u002F_samples\u002Fjsp\u002Fsample02.jsp\n\nok","createTime":"2013-11-10 14:28:32","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fdengfeng_dengfeng\u002F6530741\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fdengfeng_dengfeng\u002F6530741\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-6530741-bbs-392280338.264^v3^pc_relevant_bbs_down_cate\\\",\\\"dist_request_id\\\":\\\"1765216025469_25105\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"}],"staffDOList":[{"id":null,"communityId":209,"username":"community_91","userNickname":"JavaScript","roleCode":1,"status":1,"createUsername":"","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2021-05-12 18:07:03","updateTime":"2021-05-12 18:07:03","lastLoginTime":"2021-05-12 18:07:03"},{"id":null,"communityId":209,"username":"sysdzw","userNickname":"无·法","roleCode":2,"status":1,"createUsername":"community_91","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F45dcec50fd694b578374e7167ff7914a_sysdzw.jpg!1","createTime":"2021-06-16 17:59:42","updateTime":"2021-06-16 17:59:42","lastLoginTime":"2021-06-16 17:59:42"}],"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\u002F392280338","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F392280338","typeId":"index","hasIndex":false,"hasHeader":true},"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":["392280338"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F392280338","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F392280338","active":0,"navBarFixed":false,"title":"提交通过 serialize 获取radio 不是目标值问题 ","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":209,"topicId":392280338},"keywords":"","description":"以下内容是CSDN社区关于提交通过 serialize 获取radio 不是目标值问题 相关内容,如果想了解更多关于JavaScript社区其他内容,请访问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.1f189195.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/common.eb0d0573.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/tpl/ccloud-detail/index.72f5d410.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>