baidu_23677379 2014-12-04 03:37:16
<asp:Button ID="btnSearch" runat="server" Text="查" CssClass="BtnSearch" OnClick="OnSearch" Enabled="false" />

只支援一半的意思是在 FF 跟 柯弄浏览器上,按钮确定一开始是不能按,只是外观会跟一般可按按钮一模一样.....


我只是要预设一开始按钮是 Enabled,我验证成功会利用js把按钮打改 $('.BtnSearch').attr('disabled', false);

请问我要怎么改写才能让【按钮】预设在所有浏览器看到都是效果都跟,
地表最2....
的 IE 看到的效果一样呢【灰字+凹下去的效果】

...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoshuo55 2014-12-08
  • 打赏
  • 举报
回复
样式 重复几次 不同浏览器前面 加 前缀 如-moz-样式
蝶恋花雨 2014-12-08
  • 打赏
  • 举报
回复
你可以用设置‘button 禁用的样式。样式是图片的那种。
  • 打赏
  • 举报
回复
disabled样式是浏览器自己实现的,不用去纠结这个非要一样。要不然你只能动态切换backgroud-image实现了
简介

很多人都知道Google Earth(Google Map),其实,Google为我们自己开发应用程序提供了丰富的API,我们只要具备一些JavaScript的知识,就完全可以利用它们。但是,对于我来说,在ASP.NET页面中使用JavaScript来调用Google Map的API有一定难度,尤其是利用服务器端函数来动态画出Google Map。例如,我想从SQL Server中读取经纬度信息,然后在Google Map中插入一个点。如果熟悉AJAX的话,很快就能得出答案。我们必须用JavaScript调用ASP.NET服务器端函数,利用得到的数据来绘制Google Map。简单吧?其实,对于我来说并非如此。因此,我决定开发一个用户控件来处理JavaScript代码,这样,我就能集中精力于服务器端函数了。



特点

1.不需要JavaScript知识就能绘制Google Maps,只需在相应页面加入自定义控件即可。

2.使用AJAX调用来获取服务器端数据。

3.提供最优越的性能表现。



如何使用

在这里,我并不想释我是如何创建该控件的。我只要教你如何使用它。



系统需求

1.Visual Studio 2005或更高版本

2.Microsoft ASP.NET AJAX Extensions支持

3.Internet Explorer 7.0或Mozilla Firefox 2.x



你只需完成以下几步:

1.新建一个ASP.NET AJAX-Enabled Website。

2.将源代码中App_Code文件夹、GoogleMapForASPNet.ascx、GoogleMapForASPNet.ascx.cs,GService.asmx复制到你的ASP.NET应用程序下。

3.保证你的网站支持AJAX技术。

4.打开Default.aspx(或任何你想加入Google Map的位置),将该自定义控件拖放至相应位置并编译,这样就实现了最简单的带有Google Map的ASP.NET网页。



现在我们来为Google Map加一些标注点。在Page_Load()事件中加入一些代码。



向Google Map控件传参



注意:使用时必须首先设定你的Google Maps API key(可以从Google免费获取)。

以下是代码:

if (!IsPostBack)
{
GoogleMapForASPNet1.GoogleMapObject.APIKey = ""; //定义你的Google Maps API key

GoogleMapForASPNet1.GoogleMapObject.APIVersion = "2"; //选择Google Maps API版本

GoogleMapForASPNet1.GoogleMapObject.Width = "800px";
GoogleMapForASPNet1.GoogleMapObject.Height = "600px"; //定义Google Map控件的大小

GoogleMapForASPNet1.GoogleMapObject.ZoomLevel = 14; //定义缩放级别,默认值为3

GoogleMapForASPNet1.GoogleMapObject.CenterPoint = new GooglePoint("CenterPoint", 31.19, 120.37); //定义地图中心位置

GoogleMapForASPNet1.GoogleMapObject.Points.Add(new GooglePoint("1", 31.19, 120.37)); //在指定经纬度定义新的地图标注点

}

这样,就能自定义地图加载位置和标注点了。



自定义标注点图标



该控件支持自定义标注点图标。首先,将图标文件复制到你的网站目录下,接着,使用以下赋值语句:

GP.IconImage = "icons/pushpin-blue.png";

还可以为标注点添加注释,当用户单击标注点时,能看到注释内容。代码:

GP.InfoHTML = "这是一个标注点";



至此,已经介绍了使用Google Maps Control的基本内容。接下来,我们来看一下它的高级功能。例如,当用户进行某些操作时移动标注点。



创建交互式地图



该控件支持用户创建交互式地图。下面这个例子是,当用户单击按钮时,移动标注点。以下是使用方法:



1.插入一个Button控件,在它的Click事件中加入以下代码:

protected void Button1_Click(object sender, EventArgs e)
{
GoogleMapForASPNet1.GoogleMapObject.Points["1"].Latitude += 0.003;
GoogleMapForASPNet1.GoogleMapObject.Points["1"].Longitude += 0.003;
}

可以自主控制经纬度的增量。

2.运行该页面,你将发现整个页面都会被刷新或回传。为了避免这种现象,我们只需要把这个Button控件加入UpdatePanel控件中。

3.重新运行该页面,可看到该页面已经一切正常了。



自动更新和GPS导航



我们可以使用AJAX框架中的Timer控件来实现这一功能。在Timer_Tick()事件中,可以定义标注点新的经度和纬度。这样,在指定的时间间隔后,地图上所有的标注点都会自动更新。你也可以连接到GPS设备,构成一个GPS导航系统。



使用Google Maps Control绘制折线



1.首先,添加该折线的各个端点。代码如下:

GooglePoint GP1 = new GooglePoint();
GP1.ID = "GP1";
GP1.Latitude = 31.19; //定义标注点纬度
GP1.Longitude = 120.37; //定义标注点纬度
GP1.InfoHTML = "这是标注点1"; //可选注释项
GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP1); //在地图上添加这个点

GooglePoint GP2 = new GooglePoint();
GP2.ID = "GP2";
GP2.Latitude = 31.19001;
GP2.Longitude = 120.37001;
GP2.InfoHTML = "这是标注点2";
GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP2);

GooglePoint GP3 = new GooglePoint();
GP3.ID = "GP3";
GP3.Latitude = 31.19003;
GP3.Longitude = 120.36998;
GP3.InfoHTML = "这是标注点3";
GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP3);

2.利用这些点绘制折线

GooglePolyline PL1 = new GooglePolyline(); //定义折线
PL1.ID = "PL1";
PL1.ColorCode = "#0000FF"; //定义折线颜色
PL1.Width = 5; //定义折线宽度

PL1.Points.Add(GP1); //加入这些点(绘制折线)
PL1.Points.Add(GP2);
PL1.Points.Add(GP3);

3.将折线加入Google Maps Control中

GoogleMapForASPNet1.GoogleMapObject.Polylines.Add(PL1);





使用Google Maps Control绘制多边形



1.按照上面的方法加入多边形各顶点。这里不再赘述。

2.使用这些点创建一个多边形。代码如下:

GooglePolygon PG1 = new GooglePolygon(); //定义多边形
PG1.ID = "PG1";
PG1.FillColor = "#0000FF"; //定义多边形各条边的颜色
PG1.FillOpacity = 0.4;


PG1.Points.Add(GP1); //将上面创建的各点加入多边形(作为顶点)
PG1.Points.Add(GP2);
PG1.Points.Add(GP3);
……………………………………

PG1.Points.Add(GPn); //第n个顶点

3.将多边形加入Google Maps Control中

GoogleMapForASPNet1.GoogleMapObject.Polygons.Add(PG1);
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>中自定义的样式可以覆盖Ext<em>Asp</em>Net缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法<em>解</em>决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn <em>button</em> { margin: 0 5px !important; }。 -因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选中第一项。 -重新绑定模拟树的下拉列表后,选中项的前面有图片的HTML标签的BUG。 -更新自定义JavaScript组件Ext.ux.SimplePagingToolbar。 -更新示例工程。 +2009-03-25 v1.3.1 -Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed] -Window中的<em>Enab</em>leIFrame==false,则点击关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例<em>asp</em>net/fileupload.<em>asp</em>x)[fixed] -Htm<em>lEd</em>itor显示隐藏工具栏按钮不起作用,Htm<em>lEd</em>itor目前不支持<em>Enab</em><em>led</em>和Readonly两个<em>属性</em>。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(Ext-Window)含有<em>ASP</em>.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http://extjs.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面中存在<em>ASP</em>.NET控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed] -页面上放置Ext<em>Asp</em>Net-<em>Button</em>和<em>ASP</em>.NET-<em>Button</em>,则点击Ext<em>Asp</em>Net-<em>Button</em>时激发的是<em>ASP</em>.NET-<em>Button</em>的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed] -Ext<em>Asp</em>Net内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在Ext<em>Asp</em>Net工程中使用<em>ASP</em>.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在Ext<em>Asp</em>Net控件和<em>ASP</em>.NET标准控件和平共处了。[fixed] -如果一个<em>ASP</em>.NET按钮控件要使用Ext<em>Asp</em>Net的原生AJAX,只需要设置<em>属性</em> UseSubmitBehavior="false" 即可。 -如果要在一次Ext<em>Asp</em>Net的原生AJAX回发时更新<em>ASP</em>.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:<em>asp</em>net/<em>asp</em>net.<em>asp</em>x)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面中表单修改的确认提示框的脚本”。 ---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference/GetConfirmFormModifiedCloseRefreshReference/GetConfirmFormModifiedClosePostBackReference三个方法代替。 -不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript<em>属性</em>,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。 ---注意:以前的项目需要在所有的<em>ASP</em>X页面中查找RegisterPageStateChangedScript<em>属性</em>,并删除,否则会运行错误! -A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientClose<em>Button</em>Click<em>属性</em>如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName<em>属性</em>是自动生成的,只读<em>属性</em>。(因为有可能所有的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的支持和部分内存泄漏问题的修正)。[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可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。 -Image控件增加ImageWidth/ImageHeight/ImageCssStyle/ImageCssClass/ImageAlt<em>属性</em>[feedback:jqpeng]。[fixed] -发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -ContentPanel的ShowHeader和ShowBorder<em>属性</em>默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时显示不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的<em>Enab</em>lePostBack<em>属性</em>会在回发时保持(也即是说如果<em>Enab</em>lePostBack=true,回发时没改变<em>Enab</em>lePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认显示,Tab1的<em>Enab</em>lePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,<em>解</em>决方案见http://pohee.com/it/http-compression-in-<em>asp</em>net-20/。 +DropDownList优化。[fixed] -去除<em>Enab</em>leFirstItem/FirstItemText/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.Insert(0, new Ext<em>Asp</em>Net.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。 -和<em>Asp</em>.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = ""; -ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。 -处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed] -注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding/border-width/margin)。[fixed] +为所有控件<em>属性</em>增加在VS中的智能提示。[fixed] -需要将Ext<em>Asp</em>Net.XML和Ext<em>Asp</em>Net.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的<em>属性</em>如果是枚举类型,如果此<em>属性</em>可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.USER_DEFINED -> RegexPattern.None -表单验证<em>属性</em>名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个<em>属性</em>可以拥有多个值的情况。[fixed] -<em>属性</em>和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(Accordion->AccordionLink)(示例在other/accordion_links_run.<em>asp</em>x,other/accordion_links_run_iframe_htm)[feedback:jima]。 +确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form/form_dynamic_run.<em>asp</em>x)。[fixed] +2008-10-15 v1.2 beta5 -验证表单字段的ValueToCompare<em>属性</em>,为字符串时会出错的BUG。[fixed] +优化下拉列表。[fixed] -验证下拉列表时,应该取ListItem的Value<em>属性</em>进行验证,而不是Text<em>属性</em>。 -DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyText<em>属性</em>。 -ListItem启用<em>Enab</em>leSelect和SimulateTreeLevel<em>属性</em>,这样就可以直接在前台(<em>ASP</em>X)中设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加<em>Enab</em>leSimulateTree<em>属性</em>(默认为false),如果设置了DataSimulateTreeLevelField,则自动将<em>Enab</em>leSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +<em>Enab</em>leLargeHeader<em>属性</em>对所有容器的效果一样,Accordion的<em>属性</em><em>Enab</em>leLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other/accordion_run.<em>asp</em>x)。[fixed] -Accordion去除<em>Enab</em>leHightlight<em>属性</em>,AccordionPanel增加<em>Enab</em>leHightlight<em>属性</em>。 -影响以前使用Box的应用,需要将Accordion的<em>属性</em>去掉,然后为每个AccordionPanel增加<em>Enab</em>leLargeHeader和<em>Enab</em>leHightlight<em>属性</em>。 -AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +AccordionPanel增加Links<em>属性</em>,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other/accordion_links_run.<em>asp</em>x)。[fixed] -原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上<Items>标签。 -适当增大AccordionPanel中链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少<em>ASP</em>X中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在<em>ASP</em>X页切换到“设计时”,方便<em>属性</em>的更改和事件处理函数的添加)。[fixed] -Panel/GroupPanel/ContentPanel/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain<em>属性</em>,增加<em>Enab</em>leTitleBackgroundColor(默认为true)。[fixed] -向Form中动态添加控件的BUG,现在form/form_dynamic_run.<em>asp</em>x示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/AccordionPanel/GroupPanel/Panel/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)<em>属性</em>和Grid的Rows<em>属性</em>(GridRowCollection)。 -保留TabStrip的Tabs(TabCollection)<em>属性</em>。 -保留PageLayout/BorderLayout的Regions(RegionCollection)<em>属性</em>。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed] -表现为对Grid进行多次删除添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/<em>Button</em>/HyperLink/Label/Image/Link<em>Button</em>/TextBox -TriggerBox/TwinTriggerBox/Window/TextArea/Htm<em>lEd</em>itor/DatePicker/NumberBox -CheckBox/Radio<em>Button</em>/Radio<em>Button</em>List/DropDownList -Grid +2008-09-19 v1.2 beta1 -Image/Link<em>Button</em>/HyperLink增加一些Ajax可更新<em>属性</em>。[fixed] +隐藏的方式由HideMode<em>属性</em>控制Visibility/O<em>ff</em>sets/Display。[fixed] -修正Form/SimpleForm中隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。 -ToolbarText/ToolbarFill/ToolbarSeparator在<em>ASP</em>X中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -<em>Button</em>去除MarginRight<em>属性</em>(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu<em>属性</em>,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed] -网报:CssClass="toolbar-pagemenu" CssStyle="border:0px;",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(../images/pagemenu_toolbar_background.gif) repeat-x left top;}。 -Region去除默认的Layout=Fit,如果希望Region使用Fit/Anchor/Column/Row等布局的话,需要手工指定。[fixed] -ToolbarSeparator/ToolbarFill在Ajax更新Hidden<em>属性</em>的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 -Menu<em>Button</em>/MenuHyperLink增加HideOnClick<em>属性</em>,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick="false" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -Menu<em>Button</em>/MenuHyperLink/MenuSeparator/MenuText增加Hidden<em>属性</em>(此<em>属性</em>是Ajax可更新<em>属性</em>,如果需要在Ajax时显示隐藏菜单,请使用此<em>属性</em>而不是Visible<em>属性</em>)。[fixed] +大部分的Ext<em>Asp</em>Net控件增加Hidden<em>属性</em>(少数几个控件没有此<em>属性</em>:Menu),这样在Ajax时可以显示隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=false的<em>属性</em>不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的Ext<em>Asp</em>Net改造强烈依赖于此<em>属性</em>,这个版本发布后可以继续。 -网报中唯一没有用到Ext<em>Asp</em>NetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageContext.Redirect支持普通页面转向和Ext<em>Asp</em>NetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,DropDownList,TabStrip)。 -<em>解</em>决方法:testValue += '';if(domValue.split(',').indexOf(testValue) >= 0){ok}。 -DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed] -<em>Button</em>/Menu<em>Button</em>增加Ajax可更新<em>属性</em>OnClientClick [feedback:xmzhu]。[fixed] -Tree的Ajax支持(尚需优化)。[fixed] +2008-09-02 v1.1 beta5 -DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed] -模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField/DataValueField/DataSimulateTreeLevelField/Data<em>Enab</em>leSelectField等<em>属性</em>的值,否则Ajax回发时会出错)。[fixed] -UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用<em>Asp</em>netAjax,这个控件已经完成使命)。[fixed] -不要使用<em>Asp</em>.net的控件HiddenField,而是使用Ext<em>Asp</em>Net的HiddenField,因为<em>Asp</em>.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,Radio<em>Button</em>List中项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置<em>Enab</em><em>leD</em>eferredRender=false<em>解</em>决,但会减慢页面的加载速度),现在已经<em>解</em>决这个问题。[fixed] -Radio<em>Button</em>List去除<em>Enab</em>leBackgroundColor/<em>Enab</em>leLightBackgroundColor<em>属性</em>,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed] -Web.config中增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth<em>属性</em>用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -Radio<em>Button</em>List增加Ajax可更新<em>属性</em>SelectedIndex(SelectedValue/SelectedItem)。 -DropDownList增加Ajax可更新<em>属性</em><em>Enab</em>le/SelectedIndex(SelectedValue/SelectedItem)/DataSource。 -Grid增加Ajax可更新<em>属性</em>Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。 -ToolbarText增加Ajax可更新<em>属性</em>Text。 +2008-08-31 v1.1 beta3 -TabStrip增加<em>Enab</em><em>leD</em>eferredRender<em>属性</em>(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed] +安全的Ajax设计。[fixed] -这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。 -基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些<em>属性</em>的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的<em>Enab</em>leAjax<em>属性</em>。 -整理支持Ajax的控件<em>属性</em>改变列表(所有被支持的<em>属性</em>改变都是安全的、快速的,所有不被支持的<em>属性</em>改变不会对UI起作用,同时是安全的,不会有js错误)。 -网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed] +2008-08-29 v1.1 beta1 +Window控件是否弹出的状态在回发时维持。[fixed] -控件设计的一个原则,凡是可以在客户端改变的<em>属性</em>都应该在回发时保持<em>属性</em>的状态。 +完全抛弃<em>Asp</em>.NetAjax,Ext<em>Asp</em>Net控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和<em>Asp</em>.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的<em>属性</em>-<em>Enab</em>leAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的点击一个按钮弹出窗口,可以在<em>Button</em>的OnClick事件中设置Window1.Popup=true,也可以注册<em>Button</em>的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并<em>解</em>析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前Ext<em>Asp</em>NetAjax的限制。 -只对Ext<em>Asp</em>Net控件起作用,对<em>Asp</em>.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible<em>属性</em>会有错误。 -Window控件的<em>属性</em>改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加<em>属性</em><em>Enab</em>lePageLoading和<em>Enab</em>leAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -Grid中的回发事件(主要是Link<em>Button</em>Field和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed] -Grid选中行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化弹出窗口中IFrame的显示速度。[fixed] -在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。 -PageLayout的Region增加SplitColor<em>属性</em>,默认的背景色是透明的。(在网报中需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加<em>属性</em>Theme、Language、FormMessageTarget、FormO<em>ff</em>setRight等<em>属性</em>,这些<em>属性</em>可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户<em>浏览器</em>中Cookie设置的值)(示例在default.<em>asp</em>x)。 -TreeNode增加<em>属性</em>SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed] +TabStrip中非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed] -全新的Ext<em>Asp</em>Net.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个<em>属性</em>(<em>Enab</em>leInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe/default.<em>asp</em>x和iframe/page3.<em>asp</em>x)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此<em>属性</em>。 -Radio<em>Button</em>List放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed] +extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6/IE7)(http://www.extjs.net/forum/showthread.php?t=43246)(示例在test.<em>asp</em>x)[fixed] -现在的<em>解</em>决方法是在初始化时:if(this.initialized){return;}this.initialized=true; +需要先回发页面再弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl<em>属性</em>,因为这些<em>属性</em>是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。 -另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference("./simpleform.<em>asp</em>x"));。 +2008-08-15 v0.4 beta5 -点击关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.<em>asp</em>x。[fixed] +Radio<em>button</em>list显示有重影(示例在radio.<em>asp</em>x)。[fixed] -全新的样式。 -去除Horizontal<em>属性</em>,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.<em>asp</em>x)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的<em>属性</em>,也即是不保持状态。此问题<em>解</em>决。(示例在<em>button</em>_iframe.<em>asp</em>x) +2008-08-13 v0.4 beta4 -点击关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.<em>asp</em>x页面,iexplorer占内存68.368M。 -内存存在泄漏时,点击iframe/page3.<em>asp</em>x页面8次后iexplorer占118.792M内存。 -修正后,点击iframe/page3.<em>asp</em>x页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed] -Grid的<em>Enab</em><em>leD</em>elayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"<em>解</em>决)。[fixed] +页面正在加载的提示尽早的显示出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便<em>浏览器</em>把当前页面内容显示出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_Ext<em>Asp</em>Net目录下的页面应该为./FE_ApplyEditor.<em>asp</em>x或~/Pages_Ext<em>Asp</em>Net/FE_ApplyEditor.<em>asp</em>x。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -<em>button</em>_iframe.<em>asp</em>x默认会加载form.<em>asp</em>x页面(Window控件的BUG)。[fixed] -Window中的保存并关闭按钮和<em>Asp</em>.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.<em>asp</em>x)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional<em>属性</em>,和传统的<em>Asp</em>.net控件一样不可编辑。[fixed] -DropDownList增加SelectedText<em>属性</em>(去除了模拟树时通过SelectedItem.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调用此脚本时报错。 -一种<em>解</em>决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的<em>属性</em>(会在每次页面回发(包含ajax回发)时注册脚本)(示例在<em>button</em>_iframe.<em>asp</em>x/simpleform.<em>asp</em>x)。 +PageManager控件增加ExecuteOnReadyWhenPostBack<em>属性</em>(示例在onreadyscript.<em>asp</em>x)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的<em>属性</em>出现)。[fixed] -TextField等表单字段增加Readonly<em>属性</em>。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和<em>Asp</em>.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.<em>asp</em>x/page2.<em>asp</em>x/simpleform.<em>asp</em>x) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个<em>属性</em>(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.<em>asp</em>x(A)/page2.<em>asp</em>x(B)/simpleform.<em>asp</em>x(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,Grid中弹出窗口。(default.<em>asp</em>x/page3.<em>asp</em>x/simpleform.<em>asp</em>x) +示例3,TriggerBox弹出窗口。(default.<em>asp</em>x/triggerbox.<em>asp</em>x/simpleform.<em>asp</em>x) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target<em>属性</em>即可。 -示例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.<em>asp</em>x)。[fixed] -Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.<em>asp</em>x/simpleform.<em>asp</em>x)。[fixed] -内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.<em>asp</em>x,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.<em>asp</em>x/simpleform.<em>asp</em>x/simpleform2.<em>asp</em>x)[fixed] -增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar<em>属性</em>用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormO<em>ff</em>setRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加O<em>ff</em>setRight<em>属性</em> [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个<em>属性</em>,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.<em>asp</em>x)。[fixed] -去掉DropDownList控件的Text<em>属性</em>(强制性),可以通过设置SelectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息中的换行符(转换为<br/>),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库中的数据绑定到Tree(示例在tree2_bind_database.<em>asp</em>x)。 -ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.<em>asp</em>x)。 -更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。 -Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -Grid所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以显示ToolTip(示例在grid.<em>asp</em>x)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确<em>解</em>析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed] -虽然最后未能<em>解</em>决<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(##)" />,从而实现<em>FF</em>和IE下样式的统一。 -刚看到old9的<em>解</em>决方案:把“差旅交通费”改成“<span style="margin-right: -1000px;">差旅交通费</span>”,在IE下和<em>FF</em>下的都不换行,:-) -Link<em>Button</em>增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.<em>asp</em>x)。[fixed] -可以在回发时维持树的状态(选中行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +ContentPanel中放置Ext<em>Asp</em>Net控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed] -隐蔽性非常强,原来在ContentPanel中渲染Ext<em>Asp</em>Net控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。 -现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。 +IE6下,在应用<em>Asp</em>.NetAjax后,Form中字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。 -最后发现IE6下应用<em>Asp</em>.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的<em>Asp</em>NetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -<em>解</em>决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法<em>解</em>决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的<em>解</em>决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加<em>Enab</em>leFadeOut<em>属性</em>(默认false),可以启用淡出效果。[fixed] -Accordion选中样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +Grid增加<em>Enab</em><em>leD</em>elayRender<em>属性</em>(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed] -因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置"<em>Enab</em><em>leD</em>elayRender=false"。 -改变Grid中静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加<em>Enab</em>lePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.<em>asp</em>x)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.<em>asp</em>x)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。 +如果在编辑页面使用<em>Asp</em>NetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.<em>asp</em>x/ajax_editor.<em>asp</em>x)。[fixed] -这是由于ajax后执行的javascript中不能有return false语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.<em>asp</em>x) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认显示的错误页面,<em>解</em>决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例中alert\alert_1.<em>asp</em>x和alert\alert_2.<em>asp</em>x,总计 6 行代码),现在只需要 3 行代码就OK了。 -点击提交按钮后变成灰色不可再次点击(示例在<em>button</em>_click_gray.<em>asp</em>x)[feedback:jima]。[fixed] +增加Menu、MenuText、MenuSeparator、Menu<em>Button</em>、MenuHyperLink控件,用于按钮的下拉菜单(示例在<em>button</em>_menu.<em>asp</em>x)。[fixed] -增加Split<em>Button</em>控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个<em>属性</em>,示例在form_compare.<em>asp</em>x。 +TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.<em>asp</em>x)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -Radio<em>Button</em>List增加AutoPostBack<em>属性</em>(示例在radio.<em>asp</em>x) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.<em>asp</em>x)[feedback:jima]。[fixed] +表单字段<em>Enab</em>le=false时显示颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disab<em>led</em>,设置不透明。 +2008-07-08 v0.3 beta3 -Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 <em>Enab</em>leTextBox = true,则不能将Text回发(这是html的限制)。[fixed] -最后的<em>解</em>决方案居然是设置 readonly=true,同时更改<em>属性</em>为 Readonly(示例在textbox2.<em>asp</em>x)。 -模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.<em>asp</em>x)。[fixed] -增加 Data<em>Enab</em>leSelectField <em>属性</em>,不可选择的项变灰,并且鼠标经过时没有样式。 -Link<em>Button</em>和Grid的Link<em>Button</em>Field增加<em>Enab</em>le<em>属性</em>(示例在hyperlink.<em>asp</em>x和grid.<em>asp</em>x)。[fixed] +2008-07-07 v0.3 beta2 +增加UpdatePanelConnector控件,支持在布局构建的页面使用<em>Asp</em>.net Ajax。[fixed] -使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。 -示例在ajax3.<em>asp</em>x/content_page4.<em>asp</em>x。 -示例content_page3.<em>asp</em>x中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为false。[fixed] -使用GroupPanel的地方需要手工添加AutoHeight="true"<em>属性</em>。 +增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.<em>asp</em>x)。[fixed] -也可以在ContentPanel中放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId<em>属性</em>(示例在Site.master)。[fixed] +支持<em>Asp</em>.net ajax异步加载。[fixed] -有很大局限性,只能在ContentPanel中使用,示例在ajax1.<em>asp</em>x/content_ajax2.<em>asp</em>x中。 -对于使用布局构建的页面(比如content_page1.<em>asp</em>x)还不能使用<em>Asp</em>.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.<em>asp</em>x/simpleform.<em>asp</em>x)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除CloseAction<em>属性</em>,可以在后台通过OnClientClose<em>Button</em>Click<em>属性</em>指定(为了和iframe中做法一致)。 +iframe中的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有问题。[fix pending] +排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.<em>asp</em>x)。[fixed] -可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。 -可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.<em>asp</em>x)。[fixed] -TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed] -可以在ContentPanel中放置用户控件(示例在page_usercontrol.<em>asp</em>x)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.<em>asp</em>x)。[fixed] -Grid的数据库分页需要增加<em>属性</em>IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.<em>asp</em>x)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.<em>asp</em>x/simpleform.<em>asp</em>x)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -Grid中的Link<em>Button</em>Field设置ConfirmText会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +Grid完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.<em>asp</em>x示例)。 -Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField<em>属性</em>(一个Grid只能有一个Column指定此<em>属性</em>),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.<em>asp</em>x)。 -切换分页时清空选中的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的<em>属性</em> [feedback:xmzhu] (示例在grid_prerowdatabound.<em>asp</em>x)。 -DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField<em>属性</em>,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.<em>asp</em>x)。 +2008-06-25 v0.2 beta9 +Window窗体中的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.<em>asp</em>x/simpleform.<em>asp</em>x)[fixed] -在simpleform.<em>asp</em>x中: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完善。 -去除<em>Enab</em>leClientPaging和<em>Enab</em>leClientSort<em>属性</em>,客户端排序和客户端分页在<em>ASP</em>.NET应用中会有很多问题(主要是状态保持的问题)。 +<em>Enab</em>leServerSort改名AllowSorting。(示例在grid_sorting.<em>asp</em>x) -使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数中重新绑定数据。 +增加AllowPaging<em>属性</em>。(示例在grid_paging.<em>asp</em>x) -使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数中Grid1.PageIndex = e.NewPageIndex;OK。 +数据库分页支持。(示例在grid_database_paging.<em>asp</em>x) -使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数中Grid1.PageIn</a></div><div data-report-view="{"mod":"popu_645","index":"3","dest":"https://edu.csdn.net/course/detail/27122","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAnFJREFUWEdjZGBgYFiyZBvft29fnBkYGOT+/2fgAYnRCjAyMnxhYGB4xMXFszcmxusTI8jyr1+/pjIw/OeglaXYzWX8wc3NPZtx1qxVgf//M2jR13KIbYyMDNdADsindbDj8hwoOhhnzlxVPRC+h9k5OB3AzMzMaG2tbyojI2nIycku/P8/A8OPHz/fPnv26vLRo+dP/v795y+2UCNHH0YIsLKyMAcHuyXy8XErYLPk27cfz9eu3T37+/cfv5DlydWH4QB3dytXeXlpe5Dhz5+/OnXq1JVDP3/+/mVgoG6gpqbgCUq8z5+/ObV58/5NyA4gVx+GA+Li/Ao4ONhFvnz59mjZsq2zkC0JDXWPFRTkU//16/enBQs2dCHLkasPwwHi4kL8QkICgt+/f//24MHzV8iWxMT4ZnNxcUj++fP367x569qR5cjVR1QuYGRkZPTysvWUlha3Aln6+PGLw9u3H95JKPsSo4+gA9jYWFn8/BzChIQEwKXlx4+f76xbt2cxrpwAcxSx+gg6IDDQJURUVNAAZPDr1+8vbdlyYC0hy0FqidWH1wGcnBxssbG+NQwMDEyvX7+/sH79njWEgh0kT4o+vA5QV1eQt7c3TQUZunfv8al37z55TowDSNGH1wHi4sIC6uoKGiBLz527fv7Ll28/iXEAKfrwOkBJSUZCX1/DDmTpjRv3Tl2/fu8BMQ4gRR9eB+jrq6uZm+vFgSy9cuX22mPHLpwnxgGk6BvcDiDGt5SqIVgOUGoBIf0kOyAtLbQFn6GzZq0GlRtEg6HnAKK9RqRCkkOASHOJVjbqgIHvmAx412zAO6eg5DqQ3XMAbqvBaKl0M/gAAAAASUVORK5CYII=" alt data-v-ca2d15ac> <a target="_blank" href="https://edu.csdn.net/course/detail/27122" data-report-click="{"mod":"popu_645","index":"3","dest":"https://edu.csdn.net/course/detail/27122","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="title" data-v-ca2d15ac><em>asp</em>获取微信公众号网页授权和用户信息(code、access_token、openid等)</a></div> <a target="_blank" href="https://edu.csdn.net/course/detail/27122" data-report-click="{"mod":"popu_645","index":"3","dest":"https://edu.csdn.net/course/detail/27122","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="desc" data-v-ca2d15ac>讲<em>解</em>用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。获取code、access_token、openid、用户昵称、地区、性别、头像等官方文档https://developers.weixin.qq.com/doc/o<em>ff</em>iaccount/OA_Web_Apps/Web_Developer_Tools.html#1开发步骤1、引导用户进入授权页面同意授权,获取code2、通过code换取网页授权access_token(与基础支持中的access_token不同)3、如果需要,开发者可以刷新网页授权access_token,避免过期4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)<em>asp</em>获取微信公众号网页授权和用户信息(code、access_token、openid等)01-<em>asp</em>获取微信公众号网页授权和用户信息演示02-<em>asp</em>获取远程网页内容03-官方文档概要04-获取用户同意授权05-拿到code后获取返回信息06-获取access_token内容07-获取微信用户openid数据08-获取微信用户的所有信息09-用户头像、昵称、区域、性别</a></div><div data-report-view="{"mod":"popu_645","index":"4","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-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","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":"4","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-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","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-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="title" data-v-ca2d15ac>Ext<em>Asp</em>Net_v2.3.2_dll</a></div> <a target="_blank" href="https://download.csdn.net/download/wode2600/2726130" data-report-click="{"mod":"popu_645","index":"4","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-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","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-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="desc" data-v-ca2d15ac>Ext<em>Asp</em>Net - ExtJS based <em>ASP</em>.NET Controls with Full AJAX Support Ext<em>Asp</em>Net是一组专业的<em>Asp</em>.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的<em>浏览器</em>: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:Ext<em>Asp</em>Net基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://ext<em>asp</em>.net/ 开源: http://ext<em>asp</em>net.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail.com 发布历史: +2010-09-29 v2.3.2 -不绑定任何数据到Grid时,确保页面不会出错。 -修正了Grid列<em>属性</em>DataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。 -修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。 -增加土耳其语言资料文件(feedback:abdullaharslan)。 -Grid的BoundField增加NullDisplayText<em>属性</em>,用于处理数据库中的null值,如果没有设置则默认为空字符串。 -修正DatePicker中的一个bug(31/01/2010将会返回NULL)使用DateFormatString来生成SelectedDate<em>属性</em>(feedback:OktaEndy)。 -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页速度慢(feedback:youwei, StevenGuan, hazardvn, gavindou, ttjacky)。 -实际上IE7下所以的回发都慢,原因是客户端的Base64编码速度慢,已经使用encodeURIComponent来代替Base64编码。 -俄语翻译(feedback:vbelyaev)。 +2010-06-30 v2.3.1 -Ext<em>Asp</em>Net控件将不在依赖ViewState,减少1/4左右的HTTP数据传输量。 -控件和示例的增强。 +2010-03-28 v2.2.1 +为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.<em>asp</em>x示例在单独<em>浏览器</em>打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel的边框ShowBorder="false"。 +集成Extjs最新版本v3.1.1。 -增加一个新的Theme - Access。 -修正了Firefox下Zoom In/Out时页面消失的BUG。 -删除Panel的<em>Enab</em>leLightBackgroundColor<em>属性</em>,同时<em>Enab</em>leBackgroundColor只支持Blue和Gray两种Theme。 +2010-01-31 v2.2.0 -使得<em>Asp</em>.net的控件Image<em>Button</em>具有和<em>Asp</em>.net的<em>Button</em>控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。 -增加示例tabstrip/tabstrip_addtab.<em>asp</em>x。 -重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加<em>Enab</em>leTabCloseMenu<em>属性</em>,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision<em>属性</em>,用来控制小数点后的位数(需要设置NoDecimal="false")(feedback:zqmars)。 -Window控件更新。 -关闭按钮默认直接关闭,不会弹出确认对话框。 -GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个<em>属性</em><em>Enab</em>leConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。 -修正<em>Enab</em>leMaximize<em>属性</em>不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除<em>Button</em>控件的SystemIcon<em>属性</em>,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -WindowPosition默认居中,而不是黄金分割位置。 +<em>Button</em>, Window等控件弹出位置<em>属性</em>的变化。 -Window的Target<em>属性</em>由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -> Target="Self", Target="_parent" -> Target="Parent"。 -Menu<em>Button</em>, Link<em>Button</em>, <em>Button</em>, Link<em>Button</em>Field的ConfirmTarget<em>属性</em>由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。 -Confirm.GetShowReference的最后一个参数target变为枚举类型。 -Alert.GetShowReference中的showInParent参数也变为Target枚举类型。 -Menu<em>Button</em>, Link<em>Button</em>, <em>Button</em>, Link<em>Button</em>Field增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。 +2010-01-06 v2.1.9 -集成Extjs最新版本v3.1.0。 -修正灰色皮肤的CSS问题。 -修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。 -为Web.config和PageManager增加<em>属性</em>AjaxTimeout(单位秒,默认30秒)。 -修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray<em>属性</em>的BUG(feedback:Violet)。 -<em>Button</em>控件将不再自动拥有display:inline<em>属性</em>,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle="float:left;"<em>属性</em>。 -修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。 -为TriggerBox和TwinTriggerBox增加<em>Enab</em>leEdit<em>属性</em>。 -使用Hidden来显示隐藏Ext<em>Asp</em>Net控件,而不是使用Visible<em>属性</em>(Visible目前设置为只读<em>属性</em>)。 -使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete<em>属性</em>。 -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。 -增加TabStrip中Tab控件可关闭<em>属性</em><em>Enab</em>leClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocument中Icon<em>属性</em>映射错误(feedback:nopnop9)。 -修正Htm<em>lEd</em>itor不能编辑的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.<em>asp</em>x),如何通过简单的Javascript代码回发父页面(feedback:eroach)。 -修正一些书写错误(feedback:bmck)。 -从Region控件中删除SplitColor<em>属性</em>,增加CollapseMode, <em>Enab</em>leSplitTip, SplitTip, CollapsibleSplitTip<em>属性</em>(feedback:bmck)。 -BorderPanel更名为RegionPanel。 -DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。 -增加中国的省市县三级联动示例(data/shengshixian.<em>asp</em>x)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖Link<em>Button</em>Field, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。 +2009-11-26 v2.1.6 +修正动态创建Grid列的BUG(feedback:gxpan)。 -增加示例(data/grid_dynamic_columns.<em>asp</em>x)。 -修正Form不能自适应<em>浏览器</em>大小的改变(feedback:kaywood)(WorkItem#6309)。 -增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。 -为容器控件(比如Panel,Region,Tab等)增加AJAX<em>属性</em>IFrameUrl(feedback:BluesT)。 -重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和FindControl一致命名。 -删除CheckedNodeIDArray<em>属性</em>,增加GetCheckedNodes和GetCheckedNodeIDs函数。 -删除ExpandedNodeIDArray<em>属性</em>,增加GetExpandedNodes和GetExpandedNodeIDs函数。 -增加示例(data/tree_select_run.<em>asp</em>x),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的<em>属性</em>NodeId被重命名为NodeID,这是Ext<em>Asp</em>Net中的一个命名约定。 -同时更名的还有GridColumn的ColumnId->ColumnID,GetColumnId->GetColumnID。 -Grid1.Columns.FindColumnById函数被Grid1.FindColumn所替代。 -为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node<em>属性</em>。 -为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。 -增加示例(other/custom_postback.<em>asp</em>x)(feedback:thebox)。 -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification<em>属性</em>。 -增加示例(tree_auto_leaf_identification.<em>asp</em>x)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正Window的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。 -部分Ext<em>Asp</em>Net控件的设计时支持(会在后续版本中逐步完善)。 -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时<em>属性</em>,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event PostBack-><em>Enab</em>lePostBack)。 -为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack<em>属性</em>(feedback:dk3214)。 +为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage<em>属性</em>,用于指定验证失败时提示信息。 -为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。 +为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。 -增加示例:form/form_validate.<em>asp</em>x +2009-10-19 v2.1.3 +增加支持在AJAX时改变的控件<em>属性</em>列表(/ajax.<em>asp</em>x)。 -Ext<em>Asp</em>Net支持原生的AJAX,也就是说控件的<em>属性</em>改变在AJAX过程中会反映到页面中,但并不是所有的控件<em>属性</em>都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。 -在AJAX回发后确保<em>Asp</em>.net的按钮控件仍然具有AJAX的特性。 -更新/basic/login.<em>asp</em>x示例,使用验证图片(feedback:kedee)。 -为Grid增加AutoPostBack<em>属性</em>和RowClick事件,示例在/data/grid_autopostback.<em>asp</em>x(feedback:chenguizhu2006)。 -为所有的表单字段增加AJAX<em>属性</em>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<em>属性</em>,则IconUrl优先于Icon。 -所有Icon的列表在icon.<em>asp</em>x。 -为<em>Button</em>,MenuItem(Menu<em>Button</em>,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon<em>属性</em>。 +2009-09-15 v2.1.1 -修正不能动态修改AccordionPane<em>属性</em>Items的BUG。 +为<em>Button</em>, Menu<em>Button</em>, Link<em>Button</em>, Link<em>Button</em>Field增加ConfirmTarget。 -如果需要在父页面弹出确认对话框,需要设置ConfirmTarget="_parent"(类似Window控件的Target="_parent")。 +为Ext<em>Asp</em>Net.Alert.Show增加点击确定的JavaScript回调函数。 -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -Ext<em>Asp</em>Net.Alert.Show("参数错误!", String.Empty, Ext<em>Asp</em>Net.ActiveWindow.GetCloseReference()); +TreeNode的前面的多选框可以自动回发了。 -为TreeNode增加AutoPostBack<em>属性</em>,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://ext<em>asp</em>.net/data/tree_run.<em>asp</em>x -Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的JS代码。 -修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -<em>Button</em>的Pressed<em>属性</em>值能够正确的反映客户端的变化。 -优化Tree控件的AJAX实现。 +为页面的Form添加autocomplete="o<em>ff</em>"<em>属性</em>。 -参考http://www.cnblogs.com/sanshi/archive/2009/09/04/1560146.html#1635830 +添加对extjs3.0中所有语言的支持。 -Ext<em>Asp</em>Net扩展的多语言包在js\languages\ext<em>asp</em>net目录下,目前只有en,zh_CN,zh_TW三种实现 -你可以向其中添加自己的语言版本,并执行js\languages下的pack.bat打包,最后编译工程。 +2009-09-01 v2.0.9 -为Ext<em>Asp</em>Net.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。 +在<em>asp</em>x页面中必须显示的声明控件的集合<em>属性</em>(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。 -这将会影响所有的<em>asp</em>x页面,所以要特别关注。 -重命名AccordionPanel为AccordionPane (这也是在<em>Asp</em>.net AJAX中使用的名称). +所有的面板默认有两个集合<em>属性</em>(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items<em>属性</em>,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的<em>asp</em>x页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 +2009-08-29 v2.0.8 -Ext<em>Asp</em>Net支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。 -将所有的示例转化为英语版本。 -修正Tree控件的一个BUG(定义Mappings<em>属性</em>时)。 +PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。 -这个BUG导致<em>Asp</em>.net compatibility中的示例无法完成,现在已经修正。 +去除PageManager中方法AddAjax<em>Asp</em>netControls,增加<em>属性</em>Ajax<em>Asp</em>netControls。 -这个<em>属性</em>和<em>Button</em>得ValidateForms<em>属性</em>类似,可以查看<em>Asp</em>.net compatibility中的示例。 +2009-08-25 v2.0.7 -为按钮增加DisableControlBeforePostBack<em>属性</em> - 回发之前是否禁用按钮,防止重复提交 - 默认为true。 -Grid的Values<em>属性</em>访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。 -增加示例-如何将Grid控件导出为Excel(data\grid_excel_run.<em>asp</em>x)(feedback:503684912)。 -如果TreeNode的<em>属性</em><em>Enab</em><em>led</em>="false",则此项变灰并且不会被选中(feedback:your568)。 -修正TreeNode的<em>属性</em>NavigateUrl不接受服务器端URL(以~/开头)的BUG。 -增加Accordion和Tree配合使用的示例(other\accordion_tree_run.<em>asp</em>x)。 -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。 +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID<em>属性</em>来代替。 -这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。 -简单方便,示例可以参考 default.<em>asp</em>x 或者 other\accordion_tree_run.<em>asp</em>x。 +2009-08-14 v2.0.6 -动态生成菜单实例(other\menu_dynamic_run.<em>asp</em>x和other\menu_dynamic2_run.<em>asp</em>x)(feedback:shguo)。 -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动生成,减少ViewState占用。 +2009-08-09 v2.0 beta5 +Ext<em>Asp</em>Net和<em>Asp</em>.net的提交按钮兼容问题(feedback:千帆)。 -在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果<em>Asp</em>.net的按钮AJAX提交,必须设置UseSubmitBehavior="false" --也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个<em>Asp</em>.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的<em>属性</em><em>Enab</em>leAjax为true即可,这是默认<em>属性</em>)。 +PageManager的实例方法AddAjaxUpdateControl改名为AddAjax<em>Asp</em>netControls,现在可以在Page_Load中设置需要在AJAX中需要更新的<em>Asp</em>.net控件了。 -在Page_Load中设置了哪些需要在AJAX中更新的<em>Asp</em>.net控件会在回发时保持状态,可以通过RemoveAjax<em>Asp</em>netControls来去除不需要更新的控件。 -示例在<em>asp</em>net\fckeditor_run.<em>asp</em>x和<em>asp</em>net\<em>asp</em>net_run.<em>asp</em>x。 -FCKEditor和上传控件兼容。示例在<em>asp</em>net\fileupload_run.<em>asp</em>x。 -修正ToolbarText的文本在AJAX下更新的BUG。 -<em>Button</em>的Pressed<em>属性</em>在AJAX可更新(feedback:mgzhenhong)。 -更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。 +2009-08-02 v2.0 beta4 +和<em>Asp</em>.Net的Forms Authentication兼容[feedback:mgzhenhong]。 -采用和<em>Asp</em>.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。 -现在支持Response.Redirect,你可以选择Response.Redirect或者Ext<em>Asp</em>Net.PageContext.Redirect重定向页面,两者效果一样。 -支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。 -<em>Button</em>增加Type<em>属性</em>(<em>button</em>,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下测试通过。以后Ext<em>Asp</em>Net将不会对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();会导致<em>button</em>的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文件。 -Ext<em>Asp</em>Net自身的CSS会紧挨着页面标签引入,这样在中自定义的样式可以覆盖Ext<em>Asp</em>Net缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法<em>解</em>决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn <em>button</em> { margin: 0 5px !important; }。 -因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选中第一项。 -重新绑定模拟树的下拉列表后,选中项的前面有图片的HTML标签的BUG。 -更新自定义JavaScript组件Ext.ux.SimplePagingToolbar。 -更新示例工程。 +2009-03-25 v1.3.1 -Tree在AJAX回发展开节点时JS错误[feedback:xlli]。[fixed] -Window中的<em>Enab</em>leIFrame==false,则点击关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例<em>asp</em>net/fileupload.<em>asp</em>x)[fixed] -Htm<em>lEd</em>itor显示隐藏工具栏按钮不起作用,Htm<em>lEd</em>itor目前不支持<em>Enab</em><em>led</em>和Readonly两个<em>属性</em>。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(Ext-Window)含有<em>ASP</em>.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http://extjs.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面中存在<em>ASP</em>.NET控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed] -页面上放置Ext<em>Asp</em>Net-<em>Button</em>和<em>ASP</em>.NET-<em>Button</em>,则点击Ext<em>Asp</em>Net-<em>Button</em>时激发的是<em>ASP</em>.NET-<em>Button</em>的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed] -Ext<em>Asp</em>Net内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在Ext<em>Asp</em>Net工程中使用<em>ASP</em>.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在Ext<em>Asp</em>Net控件和<em>ASP</em>.NET标准控件和平共处了。[fixed] -如果一个<em>ASP</em>.NET按钮控件要使用Ext<em>Asp</em>Net的原生AJAX,只需要设置<em>属性</em> UseSubmitBehavior="false" 即可。 -如果要在一次Ext<em>Asp</em>Net的原生AJAX回发时更新<em>ASP</em>.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:<em>asp</em>net/<em>asp</em>net.<em>asp</em>x)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面中表单修改的确认提示框的脚本”。 ---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference/GetConfirmFormModifiedCloseRefreshReference/GetConfirmFormModifiedClosePostBackReference三个方法代替。 -不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript<em>属性</em>,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。 ---注意:以前的项目需要在所有的<em>ASP</em>X页面中查找RegisterPageStateChangedScript<em>属性</em>,并删除,否则会运行错误! -A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientClose<em>Button</em>Click<em>属性</em>如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName<em>属性</em>是自动生成的,只读<em>属性</em>。(因为有可能所有的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的支持和部分内存泄漏问题的修正)。[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可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。 -Image控件增加ImageWidth/ImageHeight/ImageCssStyle/ImageCssClass/ImageAlt<em>属性</em>[feedback:jqpeng]。[fixed] -发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -ContentPanel的ShowHeader和ShowBorder<em>属性</em>默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时显示不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的<em>Enab</em>lePostBack<em>属性</em>会在回发时保持(也即是说如果<em>Enab</em>lePostBack=true,回发时没改变<em>Enab</em>lePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认显示,Tab1的<em>Enab</em>lePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,<em>解</em>决方案见http://pohee.com/it/http-compression-in-<em>asp</em>net-20/。 +DropDownList优化。[fixed] -去除<em>Enab</em>leFirstItem/FirstItemText/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.Insert(0, new Ext<em>Asp</em>Net.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。 -和<em>Asp</em>.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = ""; -ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。 -处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed] -注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding/border-width/margin)。[fixed] +为所有控件<em>属性</em>增加在VS中的智能提示。[fixed] -需要将Ext<em>Asp</em>Net.XML和Ext<em>Asp</em>Net.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的<em>属性</em>如果是枚举类型,如果此<em>属性</em>可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.USER_DEFINED -> RegexPattern.None -表单验证<em>属性</em>名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个<em>属性</em>可以拥有多个值的情况。[fixed] -<em>属性</em>和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(Accordion->AccordionLink)(示例在other/accordion_links_run.<em>asp</em>x,other/accordion_links_run_iframe_htm)[feedback:jima]。 +确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form/form_dynamic_run.<em>asp</em>x)。[fixed] +2008-10-15 v1.2 beta5 -验证表单字段的ValueToCompare<em>属性</em>,为字符串时会出错的BUG。[fixed] +优化下拉列表。[fixed] -验证下拉列表时,应该取ListItem的Value<em>属性</em>进行验证,而不是Text<em>属性</em>。 -DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyText<em>属性</em>。 -ListItem启用<em>Enab</em>leSelect和SimulateTreeLevel<em>属性</em>,这样就可以直接在前台(<em>ASP</em>X)中设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加<em>Enab</em>leSimulateTree<em>属性</em>(默认为false),如果设置了DataSimulateTreeLevelField,则自动将<em>Enab</em>leSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +<em>Enab</em>leLargeHeader<em>属性</em>对所有容器的效果一样,Accordion的<em>属性</em><em>Enab</em>leLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other/accordion_run.<em>asp</em>x)。[fixed] -Accordion去除<em>Enab</em>leHightlight<em>属性</em>,AccordionPanel增加<em>Enab</em>leHightlight<em>属性</em>。 -影响以前使用Box的应用,需要将Accordion的<em>属性</em>去掉,然后为每个AccordionPanel增加<em>Enab</em>leLargeHeader和<em>Enab</em>leHightlight<em>属性</em>。 -AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +AccordionPanel增加Links<em>属性</em>,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other/accordion_links_run.<em>asp</em>x)。[fixed] -原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上标签。 -适当增大AccordionPanel中链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少<em>ASP</em>X中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在<em>ASP</em>X页切换到“设计时”,方便<em>属性</em>的更改和事件处理函数的添加)。[fixed] -Panel/GroupPanel/ContentPanel/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain<em>属性</em>,增加<em>Enab</em>leTitleBackgroundColor(默认为true)。[fixed] -向Form中动态添加控件的BUG,现在form/form_dynamic_run.<em>asp</em>x示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/AccordionPanel/GroupPanel/Panel/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)<em>属性</em>和Grid的Rows<em>属性</em>(GridRowCollection)。 -保留TabStrip的Tabs(TabCollection)<em>属性</em>。 -保留PageLayout/BorderLayout的Regions(RegionCollection)<em>属性</em>。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed] -表现为对Grid进行多次删除添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/<em>Button</em>/HyperLink/Label/Image/Link<em>Button</em>/TextBox -TriggerBox/TwinTriggerBox/Window/TextArea/Htm<em>lEd</em>itor/DatePicker/NumberBox -CheckBox/Radio<em>Button</em>/Radio<em>Button</em>List/DropDownList -Grid +2008-09-19 v1.2 beta1 -Image/Link<em>Button</em>/HyperLink增加一些Ajax可更新<em>属性</em>。[fixed] +隐藏的方式由HideMode<em>属性</em>控制Visibility/O<em>ff</em>sets/Display。[fixed] -修正Form/SimpleForm中隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。 -ToolbarText/ToolbarFill/ToolbarSeparator在<em>ASP</em>X中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -<em>Button</em>去除MarginRight<em>属性</em>(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu<em>属性</em>,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed] -网报:CssClass="toolbar-pagemenu" CssStyle="border:0px;",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(../images/pagemenu_toolbar_background.gif) repeat-x left top;}。 -Region去除默认的Layout=Fit,如果希望Region使用Fit/Anchor/Column/Row等布局的话,需要手工指定。[fixed] -ToolbarSeparator/ToolbarFill在Ajax更新Hidden<em>属性</em>的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 -Menu<em>Button</em>/MenuHyperLink增加HideOnClick<em>属性</em>,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick="false" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -Menu<em>Button</em>/MenuHyperLink/MenuSeparator/MenuText增加Hidden<em>属性</em>(此<em>属性</em>是Ajax可更新<em>属性</em>,如果需要在Ajax时显示隐藏菜单,请使用此<em>属性</em>而不是Visible<em>属性</em>)。[fixed] +大部分的Ext<em>Asp</em>Net控件增加Hidden<em>属性</em>(少数几个控件没有此<em>属性</em>:Menu),这样在Ajax时可以显示隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=false的<em>属性</em>不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的Ext<em>Asp</em>Net改造强烈依赖于此<em>属性</em>,这个版本发布后可以继续。 -网报中唯一没有用到Ext<em>Asp</em>NetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageContext.Redirect支持普通页面转向和Ext<em>Asp</em>NetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,DropDownList,TabStrip)。 -<em>解</em>决方法:testValue += '';if(domValue.split(',').indexOf(testValue) >= 0){ok}。 -DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed] -<em>Button</em>/Menu<em>Button</em>增加Ajax可更新<em>属性</em>OnClientClick [feedback:xmzhu]。[fixed] -Tree的Ajax支持(尚需优化)。[fixed] +2008-09-02 v1.1 beta5 -DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed] -模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField/DataValueField/DataSimulateTreeLevelField/Data<em>Enab</em>leSelectField等<em>属性</em>的值,否则Ajax回发时会出错)。[fixed] -UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用<em>Asp</em>netAjax,这个控件已经完成使命)。[fixed] -不要使用<em>Asp</em>.net的控件HiddenField,而是使用Ext<em>Asp</em>Net的HiddenField,因为<em>Asp</em>.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,Radio<em>Button</em>List中项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置<em>Enab</em><em>leD</em>eferredRender=false<em>解</em>决,但会减慢页面的加载速度),现在已经<em>解</em>决这个问题。[fixed] -Radio<em>Button</em>List去除<em>Enab</em>leBackgroundColor/<em>Enab</em>leLightBackgroundColor<em>属性</em>,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed] -Web.config中增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth<em>属性</em>用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -Radio<em>Button</em>List增加Ajax可更新<em>属性</em>SelectedIndex(SelectedValue/SelectedItem)。 -DropDownList增加Ajax可更新<em>属性</em><em>Enab</em>le/SelectedIndex(SelectedValue/SelectedItem)/DataSource。 -Grid增加Ajax可更新<em>属性</em>Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。 -ToolbarText增加Ajax可更新<em>属性</em>Text。 +2008-08-31 v1.1 beta3 -TabStrip增加<em>Enab</em><em>leD</em>eferredRender<em>属性</em>(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed] +安全的Ajax设计。[fixed] -这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。 -基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些<em>属性</em>的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的<em>Enab</em>leAjax<em>属性</em>。 -整理支持Ajax的控件<em>属性</em>改变列表(所有被支持的<em>属性</em>改变都是安全的、快速的,所有不被支持的<em>属性</em>改变不会对UI起作用,同时是安全的,不会有js错误)。 -网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed] +2008-08-29 v1.1 beta1 +Window控件是否弹出的状态在回发时维持。[fixed] -控件设计的一个原则,凡是可以在客户端改变的<em>属性</em>都应该在回发时保持<em>属性</em>的状态。 +完全抛弃<em>Asp</em>.NetAjax,Ext<em>Asp</em>Net控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和<em>Asp</em>.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的<em>属性</em>-<em>Enab</em>leAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的点击一个按钮弹出窗口,可以在<em>Button</em>的OnClick事件中设置Window1.Popup=true,也可以注册<em>Button</em>的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并<em>解</em>析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前Ext<em>Asp</em>NetAjax的限制。 -只对Ext<em>Asp</em>Net控件起作用,对<em>Asp</em>.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible<em>属性</em>会有错误。 -Window控件的<em>属性</em>改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加<em>属性</em><em>Enab</em>lePageLoading和<em>Enab</em>leAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -Grid中的回发事件(主要是Link<em>Button</em>Field和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed] -Grid选中行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化弹出窗口中IFrame的显示速度。[fixed] -在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。 -PageLayout的Region增加SplitColor<em>属性</em>,默认的背景色是透明的。(在网报中需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加<em>属性</em>Theme、Language、FormMessageTarget、FormO<em>ff</em>setRight等<em>属性</em>,这些<em>属性</em>可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户<em>浏览器</em>中Cookie设置的值)(示例在default.<em>asp</em>x)。 -TreeNode增加<em>属性</em>SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed] +TabStrip中非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed] -全新的Ext<em>Asp</em>Net.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个<em>属性</em>(<em>Enab</em>leInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe/default.<em>asp</em>x和iframe/page3.<em>asp</em>x)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此<em>属性</em>。 -Radio<em>Button</em>List放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed] +extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6/IE7)(http://www.extjs.net/forum/showthread.php?t=43246)(示例在test.<em>asp</em>x)[fixed] -现在的<em>解</em>决方法是在初始化时:if(this.initialized){return;}this.initialized=true; +需要先回发页面再弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl<em>属性</em>,因为这些<em>属性</em>是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。 -另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference("./simpleform.<em>asp</em>x"));。 +2008-08-15 v0.4 beta5 -点击关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.<em>asp</em>x。[fixed] +Radio<em>button</em>list显示有重影(示例在radio.<em>asp</em>x)。[fixed] -全新的样式。 -去除Horizontal<em>属性</em>,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.<em>asp</em>x)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的<em>属性</em>,也即是不保持状态。此问题<em>解</em>决。(示例在<em>button</em>_iframe.<em>asp</em>x) +2008-08-13 v0.4 beta4 -点击关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.<em>asp</em>x页面,iexplorer占内存68.368M。 -内存存在泄漏时,点击iframe/page3.<em>asp</em>x页面8次后iexplorer占118.792M内存。 -修正后,点击iframe/page3.<em>asp</em>x页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed] -Grid的<em>Enab</em><em>leD</em>elayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"<em>解</em>决)。[fixed] +页面正在加载的提示尽早的显示出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便<em>浏览器</em>把当前页面内容显示出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_Ext<em>Asp</em>Net目录下的页面应该为./FE_ApplyEditor.<em>asp</em>x或~/Pages_Ext<em>Asp</em>Net/FE_ApplyEditor.<em>asp</em>x。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -<em>button</em>_iframe.<em>asp</em>x默认会加载form.<em>asp</em>x页面(Window控件的BUG)。[fixed] -Window中的保存并关闭按钮和<em>Asp</em>.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.<em>asp</em>x)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional<em>属性</em>,和传统的<em>Asp</em>.net控件一样不可编辑。[fixed] -DropDownList增加SelectedText<em>属性</em>(去除了模拟树时通过SelectedItem.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调用此脚本时报错。 -一种<em>解</em>决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的<em>属性</em>(会在每次页面回发(包含ajax回发)时注册脚本)(示例在<em>button</em>_iframe.<em>asp</em>x/simpleform.<em>asp</em>x)。 +PageManager控件增加ExecuteOnReadyWhenPostBack<em>属性</em>(示例在onreadyscript.<em>asp</em>x)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的<em>属性</em>出现)。[fixed] -TextField等表单字段增加Readonly<em>属性</em>。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和<em>Asp</em>.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.<em>asp</em>x/page2.<em>asp</em>x/simpleform.<em>asp</em>x) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个<em>属性</em>(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.<em>asp</em>x(A)/page2.<em>asp</em>x(B)/simpleform.<em>asp</em>x(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,Grid中弹出窗口。(default.<em>asp</em>x/page3.<em>asp</em>x/simpleform.<em>asp</em>x) +示例3,TriggerBox弹出窗口。(default.<em>asp</em>x/triggerbox.<em>asp</em>x/simpleform.<em>asp</em>x) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target<em>属性</em>即可。 -示例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.<em>asp</em>x)。[fixed] -Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.<em>asp</em>x/simpleform.<em>asp</em>x)。[fixed] -内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.<em>asp</em>x,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.<em>asp</em>x/simpleform.<em>asp</em>x/simpleform2.<em>asp</em>x)[fixed] -增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar<em>属性</em>用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormO<em>ff</em>setRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加O<em>ff</em>setRight<em>属性</em> [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个<em>属性</em>,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.<em>asp</em>x)。[fixed] -去掉DropDownList控件的Text<em>属性</em>(强制性),可以通过设置SelectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息中的换行符(转换为),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库中的数据绑定到Tree(示例在tree2_bind_database.<em>asp</em>x)。 -ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.<em>asp</em>x)。 -更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。 -Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -Grid所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以显示ToolTip(示例在grid.<em>asp</em>x)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确<em>解</em>析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed] -虽然最后未能<em>解</em>决##差旅交通费在IE和Firefox下显示的不同效果。 -但是通过用来代替,从而实现<em>FF</em>和IE下样式的统一。 -刚看到old9的<em>解</em>决方案:把“差旅交通费”改成“差旅交通费”,在IE下和<em>FF</em>下的都不换行,:-) -Link<em>Button</em>增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.<em>asp</em>x)。[fixed] -可以在回发时维持树的状态(选中行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +ContentPanel中放置Ext<em>Asp</em>Net控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed] -隐蔽性非常强,原来在ContentPanel中渲染Ext<em>Asp</em>Net控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。 -现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。 +IE6下,在应用<em>Asp</em>.NetAjax后,Form中字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。 -最后发现IE6下应用<em>Asp</em>.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的<em>Asp</em>NetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -<em>解</em>决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法<em>解</em>决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的<em>解</em>决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加<em>Enab</em>leFadeOut<em>属性</em>(默认false),可以启用淡出效果。[fixed] -Accordion选中样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +Grid增加<em>Enab</em><em>leD</em>elayRender<em>属性</em>(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed] -因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置"<em>Enab</em><em>leD</em>elayRender=false"。 -改变Grid中静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加<em>Enab</em>lePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.<em>asp</em>x)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.<em>asp</em>x)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。 +如果在编辑页面使用<em>Asp</em>NetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.<em>asp</em>x/ajax_editor.<em>asp</em>x)。[fixed] -这是由于ajax后执行的javascript中不能有return false语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.<em>asp</em>x) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认显示的错误页面,<em>解</em>决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例中alert\alert_1.<em>asp</em>x和alert\alert_2.<em>asp</em>x,总计 6 行代码),现在只需要 3 行代码就OK了。 -点击提交按钮后变成灰色不可再次点击(示例在<em>button</em>_click_gray.<em>asp</em>x)[feedback:jima]。[fixed] +增加Menu、MenuText、MenuSeparator、Menu<em>Button</em>、MenuHyperLink控件,用于按钮的下拉菜单(示例在<em>button</em>_menu.<em>asp</em>x)。[fixed] -增加Split<em>Button</em>控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个<em>属性</em>,示例在form_compare.<em>asp</em>x。 +TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.<em>asp</em>x)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -Radio<em>Button</em>List增加AutoPostBack<em>属性</em>(示例在radio.<em>asp</em>x) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.<em>asp</em>x)[feedback:jima]。[fixed] +表单字段<em>Enab</em>le=false时显示颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disab<em>led</em>,设置不透明。 +2008-07-08 v0.3 beta3 -Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 <em>Enab</em>leTextBox = true,则不能将Text回发(这是html的限制)。[fixed] -最后的<em>解</em>决方案居然是设置 readonly=true,同时更改<em>属性</em>为 Readonly(示例在textbox2.<em>asp</em>x)。 -模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.<em>asp</em>x)。[fixed] -增加 Data<em>Enab</em>leSelectField <em>属性</em>,不可选择的项变灰,并且鼠标经过时没有样式。 -Link<em>Button</em>和Grid的Link<em>Button</em>Field增加<em>Enab</em>le<em>属性</em>(示例在hyperlink.<em>asp</em>x和grid.<em>asp</em>x)。[fixed] +2008-07-07 v0.3 beta2 +增加UpdatePanelConnector控件,支持在布局构建的页面使用<em>Asp</em>.net Ajax。[fixed] -使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。 -示例在ajax3.<em>asp</em>x/content_page4.<em>asp</em>x。 -示例content_page3.<em>asp</em>x中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为false。[fixed] -使用GroupPanel的地方需要手工添加AutoHeight="true"<em>属性</em>。 +增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.<em>asp</em>x)。[fixed] -也可以在ContentPanel中放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId<em>属性</em>(示例在Site.master)。[fixed] +支持<em>Asp</em>.net ajax异步加载。[fixed] -有很大局限性,只能在ContentPanel中使用,示例在ajax1.<em>asp</em>x/content_ajax2.<em>asp</em>x中。 -对于使用布局构建的页面(比如content_page1.<em>asp</em>x)还不能使用<em>Asp</em>.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.<em>asp</em>x/simpleform.<em>asp</em>x)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除CloseAction<em>属性</em>,可以在后台通过OnClientClose<em>Button</em>Click<em>属性</em>指定(为了和iframe中做法一致)。 +iframe中的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有问题。[fix pending] +排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.<em>asp</em>x)。[fixed] -可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。 -可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.<em>asp</em>x)。[fixed] -TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed] -可以在ContentPanel中放置用户控件(示例在page_usercontrol.<em>asp</em>x)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.<em>asp</em>x)。[fixed] -Grid的数据库分页需要增加<em>属性</em>IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.<em>asp</em>x)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.<em>asp</em>x/simpleform.<em>asp</em>x)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -Grid中的Link<em>Button</em>Field设置ConfirmText会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +Grid完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.<em>asp</em>x示例)。 -Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField<em>属性</em>(一个Grid只能有一个Column指定此<em>属性</em>),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.<em>asp</em>x)。 -切换分页时清空选中的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的<em>属性</em> [feedback:xmzhu] (示例在grid_prerowdatabound.<em>asp</em>x)。 -DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField<em>属性</em>,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.<em>asp</em>x)。 +2008-06-25 v0.2 beta9 +Window窗体中的</a></div><div data-report-view="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/weixin_30674525/article/details/98827539","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","spm":"1035.2023.3001.6557"}" class="list-item" data-v-ca2d15ac><div class="recommend-title" data-v-ca2d15ac><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAeZJREFUWEdjZGBgYPhQkSn49/v/EAbG/2oM/xn4QWI0A4wMHxn+M95i5mRcI9Ax/T0jyPI/P/7VM/5n4KKZpVgM/s/I8I2Fg6mR8W1+RioDw39TelqOsIvxNOPbgvRumgc7Lt8xMnxkfJufPmtgfA+xddQBeEOAv7opgImHh5PoKPr169fnOdN3/Xn88DOxevA6QLC9L5KRk4uHWMNA6v59+fz50+TeTf9evvhGjD6qOwDsiI8fPnya2LX537t3Pwg5giYOADvi3Zs3nyZ0bfn36dNvfI6gmQNAlv599fLlxwmd2xi+ffuDsyjAVw6QkwbQLfr76MHDj30duwbMAf+/f/vyvrJoOcUO+Pf82dOv2zadIZSoQPLcXn4mTJJS0iA21Rzw+/6de58n9uwlxgG8+SXOrIoqSlR1ADEWY1NDtRBg+PXrx7+PHz4S4xAmfgF+BjY2DqqGwIBHwb/3797+unzhFjEhwKZroMYkKCRM1RAgxmKapoF/r1+9/HHs8GVslrCISfCzWVpjbdZRLRHiSwOsugZivMkZ/jQNAYa/f//8//UTe+3GyMTMyMGBtd1AtRAY8DQwIA7gTcuxZuDkABcoZIPvP358njXlKFmVEdmWkqBxMHRMBrhrNuCdU1B0DWT3HACwkGScZb+cwwAAAABJRU5ErkJggg==" alt data-v-ca2d15ac> <a target="_blank" href="https://blog.csdn.net/weixin_30674525/article/details/98827539" data-report-click="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/weixin_30674525/article/details/98827539","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="title" data-v-ca2d15ac><em>Asp</em>.net 火狐和IE的兼容性代码<em>解</em>析本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2010/0308/208...</a></div> <a target="_blank" href="https://blog.csdn.net/weixin_30674525/article/details/98827539" data-report-click="{"mod":"popu_645","index":"5","dest":"https://blog.csdn.net/weixin_30674525/article/details/98827539","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\",\"dist_request_id\":\"1715421290583_94329\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew" class="desc" data-v-ca2d15ac>png透明 AlphaImageLoader  filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(<em>enab</em><em>led</em>=b<em>Enab</em><em>led</em>,sizingMethod=sSize,src=sURL)  <em>enab</em><em>led</em>:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true:默认值。滤镜激活。false:滤镜被禁止。siz...</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/DotNET" class="community-img" data-v-4722a3ae><img src="https://img-community.csdnimg.cn/avatar/745f64491f2744dcbce3cd7127270b93.png?x-oss-process=image/resize,m_fixed,h_88,w_88" alt data-v-4722a3ae> <div title=".NET社区" class="community-name" data-v-4722a3ae> .NET社区 </div></a></div></div> <div class="content" data-v-4722a3ae><div class="detail" data-v-4722a3ae><div title="62073" class="item" data-v-4722a3ae><p class="num" data-v-4722a3ae> 62,073 </p> <p class="desc" data-v-4722a3ae> 社区成员 </p></div> <div title="669028" class="item" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/DotNET" target="_blank" data-v-4722a3ae><p class="num" data-v-4722a3ae> 669,028 </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-1594" 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/shareBg1.98114ddf.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/745f64491f2744dcbce3cd7127270b93.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>.NET社区</div> <div class="share-dec" data-v-ca030a68>.NET技术交流专区</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> .NET技术交流专区 </span></div></div> <div class="introduce-text" data-v-4722a3ae><div class="label-box" data-v-4722a3ae><span class="label" data-v-4722a3ae>javascript</span><span class="label" data-v-4722a3ae>云原生</span> <span class="label" data-v-4722a3ae>企业社区</span> <!----></div></div> <!----> <div class="manage" data-v-4722a3ae><div class="manage-inner" data-v-4722a3ae><span data-v-4722a3ae>社区管理员</span> <ul data-v-4722a3ae><li data-v-4722a3ae><a href="https://blog.csdn.net/community_93" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/default.jpg!1" alt="ASP.NET" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li><li data-v-4722a3ae><a href="https://blog.csdn.net/dotnetconf" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/default.jpg!1" alt=".Net开发者社区" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li><li data-v-4722a3ae><a href="https://blog.csdn.net/weixin_41960540" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/aa17748a52c84d88ba031f9895a4ea32_weixin_41960540.jpg!1" alt="R小R" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li></ul></div></div> <div class="actions" data-v-4722a3ae><!----> <div style="flex:1;" data-v-4722a3ae><div class="join-btn" data-v-4722a3ae> 加入社区 </div></div> <!----> <!----></div> <div class="el-dialog__wrapper" style="display:none;" data-v-38c57799 data-v-4722a3ae><div role="dialog" aria-modal="true" aria-label="获取链接或二维码" class="el-dialog join-qrcode-dialog" style="margin-top:15vh;width:600px;"><div class="el-dialog__header"><span class="el-dialog__title">获取链接或二维码</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"></i></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer" data-v-38c57799></span></div></div></div> <div class="collapse-btn" data-v-4722a3ae><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAgCAYAAACFM/9sAAAAAXNSR0IArs4c6QAAAi1JREFUaEPtl01u01AUhc+N8wMSO4AxzJAqwQpKQsdtbMOICmKnwCKQ2ACDIgotrYKiduIiVZ10B0CBAjtAbICfooomJr3IcUoTiVLb15GNuG/67nm65/M5AxP0iAiQSK1iKEBhCBSgAhQSEMo1gQpQSEAo1wQqQCEBoVwT+K8CnLnWvER8cOHMaf95q9Xaj+vDtp3LPeD83u6p9a2t+U5cfVrzmSTQNOfOgg4+ATDAeNHp/Jza3Fz5HtWUZbl3GXjYn2e+53lL96Nq057LBOD0dOOcUSx8BFAcGHpZLlWmVlfnd08yaJrubRAe/Z77HwEG5kdS1E8StgFc9bzFb8dBrNtukxgLwOAXNEF6T/pAce8zSeDhknXbuUNMQRUHe/BrMNX+BNGyHIdBT45m6VVn36/FqX5cOFHmMwUYJrE5x+CgkuEujLe+361ubLS+HhowzeYtEC8NzWyXy5ValMpHgSCZyRxgsLxpui4Ij4/ShZ1S0aiurS18sSznJoOeDt29AaP6t6pLgMTV5gJgsHTddhvEWBwC9Y6AZww8AFA4Lp1xDac9nxuAYZ37aQuqGgIbPTt+t3tluNppw0jyXq4AhnV2ZkG0PAKR8b5UMiaDSicxOU5N7gCGSXRvMLAygPgB3Jv0vOXP4wSR9O1cAgzMzFxvXDR6hYlK5cd6u93eS2pw3LrcAhy38bTeV4BCkgpQAQoJCOWaQAUoJCCUawIVoJCAUK4JVIBCAkL5L1yapyGdIBwvAAAAAElFTkSuQmCC" alt data-v-4722a3ae></div></div><!----><!----><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor-user-right-rank" data-v-3d3affee><div class="el-tabs el-tabs--top" data-v-3d3affee><div class="el-tabs__header is-top"><div class="el-tabs__nav-wrap is-top"><div class="el-tabs__nav-scroll"><div role="tablist" class="el-tabs__nav is-top" style="transform:translateX(-0px);"><div class="el-tabs__active-bar is-top" style="width:0px;transform:translateX(0px);ms-transform:translateX(0px);webkit-transform:translateX(0px);"></div></div></div></div></div><div class="el-tabs__content"><div role="tabpanel" id="pane-integral" aria-labelledby="tab-integral" class="el-tab-pane" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-3" aria-labelledby="tab-3" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-5" aria-labelledby="tab-5" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-6" aria-labelledby="tab-6" class="el-tab-pane" style="display:none;" data-v-3d3affee></div></div></div> <div class="floor-user-right-rank-score" data-v-608528ce data-v-3d3affee><div class="floor-user-right-rank-score-tabs" data-v-608528ce><ul data-v-608528ce><li data-v-608528ce> 近7日 </li><li data-v-608528ce> 近30日 </li><li class="active" data-v-608528ce> 至今 </li></ul></div> <div class="floor-user-right-rank-common" data-v-46cf600d data-v-608528ce><div class="rank-list" data-v-46cf600d><!----> <div class="no-data loading" data-v-46cf600d><i class="el-icon-loading" data-v-46cf600d></i> <p data-v-46cf600d>加载中</p></div> <!----> <a href="https:///DotNET/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><p>.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。</p> <p>希望和大家一起共同营造一个活跃、友好的社区氛围。</p> </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></div></div><div comp-data="[object Object]" baseInfo="[object Object]" community="[object Object]" class="content-right-recommend" data-v-0f781e88><div data-v-3798762e data-v-0f781e88><!----> <!----></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="ai-entrance" data-v-eb1c454c><p data-v-eb1c454c>试试用AI创作助手写篇文章吧</p> <div class="entrance-btn-line" data-v-eb1c454c><a href="https://mp.csdn.net/edit?guide=1" target="_blank" data-report-click="{"spm":"3001.9712"}" data-report-query="spm=3001.9712" class="entrance-btn" data-v-eb1c454c>+ 用AI写文章</a></div></div></div></div></div></div></div></div></div></div></div></div></div> <div> <script type="text/javascript" src="https://g.csdnimg.cn/common/csdn-footer/csdn-footer.js" data-isfootertrack="false" defer></script> </div></div></div><script> window.__INITIAL_STATE__= {"csrf":"FOkclXPj-svtpCbC5tKF_s6b0FNDa8yz2t1k","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_27283063090-1715421280008-449115; csrfToken=2aikHfEaCK9s3-X4MhY-8W68; uuid_tt_dd=10_27283063090-1715421280008-449115; dc_sid=5b4cbf4ad672f63c4ad51b27909080e8; __cf_bm=QSXx2s9V4nE8PjJlDc.Pa1.LP8CySpVSohvQf4YQrd0-1715421279-1.0.1.1-RCWI0breKrnGk2lHdsWbj_Hg5DYoMH8pDy9jnlrUPDamLIw76oaOGSDMZMFO5dkcN9gE56NDMiIn9eTBJAkyVg; dc_session_id=10_1715421280008.250012","ip":"3.145.15.1","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-recommend\",\"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":"DotNET","communityHomePage":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET","owner":{"userName":"community_93","nickName":"ASP.NET","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":".NET社区","description":".NET技术交流专区","avatarUrl":"https:\u002F\u002Fimg-community.csdnimg.cn\u002Favatar\u002F745f64491f2744dcbce3cd7127270b93.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":62073,"contentCount":669028,"followersCount":49815,"communityRule":"\u003Cp\u003E.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。\u003C\u002Fp\u003E\n\n\u003Cp\u003E希望和大家一起共同营造一个活跃、友好的社区氛围。\u003C\u002Fp\u003E\n","communityId":211,"bgImage":"","hashId":"2lwpzdnk","domain":"","uriName":"DotNET","externalDisplay":1,"adBanner":{"img":"","url":"","adType":0,"adCon":null},"rightBanner":{"img":"","url":"","adType":0,"adCon":null},"tagId":null,"tagName":null,"communityType":2,"communityApplyUrl":"https:\u002F\u002Fmarketing.csdn.net\u002Fquestions\u002FQ2106040308026533763","joinType":0,"visibleType":0,"collapse":0,"topicMoveAble":0,"allowActions":{},"communityOwner":"community_93","tagNameInfo":{"provinceTag":null,"areaTag":null,"technologyTags":[{"id":190,"name":"javascript"},{"id":400064,"name":"云原生"}],"customTags":[{"id":1,"name":"企业社区"}]}},"tabList":[{"tabId":862,"tabName":"问答","tabUrl":"https:\u002F\u002Fask.csdn.net\u002Flist\u002F3\u002Ftag\u002F576","tabSwitch":1,"tabType":0,"tabContribute":0,"indexOrder":0,"iframe":true,"sortType":1},{"tabId":20680,"tabName":".NET Conf China","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=20680","iframe":false,"sortType":1},{"tabId":1370,"tabName":"全部","tabUrl":"","tabSwitch":1,"tabType":4,"tabContribute":0,"cardType":0,"indexOrder":2,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=1370","iframe":false,"sortType":1},{"tabId":420,"tabName":"招聘","tabUrl":"","tabSwitch":1,"tabType":3,"tabContribute":0,"indexOrder":3,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=420","iframe":false,"sortType":1},{"tabId":23493,"tabName":"社区公告","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":3,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=23493","iframe":false,"sortType":1},{"tabId":22149,"tabName":"寻找 .NET 技术达人","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":4,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=22149","iframe":false,"sortType":1},{"tabId":714,"tabName":".NET Framework","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":5,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=714","iframe":false,"sortType":1},{"tabId":21249,"tabName":".NET Core","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":6,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21249","iframe":false,"sortType":1},{"tabId":21248,"tabName":"微服务","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":7,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21248","iframe":false,"sortType":1},{"tabId":21250,"tabName":".NET5 \u002F 6","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":8,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21250","iframe":false,"sortType":1},{"tabId":21498,"tabName":".NET技术前瞻","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":9,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21498","iframe":false,"sortType":1},{"tabId":21500,"tabName":"VC","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":10,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21500","iframe":false,"sortType":1},{"tabId":21499,"tabName":".NET技术其他语言","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":11,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21499","iframe":false,"sortType":1},{"tabId":21251,"tabName":"ASP_NET","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":12,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21251","iframe":false,"sortType":1},{"tabId":21253,"tabName":"EF","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":13,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21253","iframe":false,"sortType":1},{"tabId":21254,"tabName":"EF Core","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":14,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21254","iframe":false,"sortType":1},{"tabId":715,"tabName":"Web Services","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":15,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=715","iframe":false,"sortType":1},{"tabId":717,"tabName":"桌面应用","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":16,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=717","iframe":false,"sortType":1},{"tabId":716,"tabName":"VB","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":17,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=716","iframe":false,"sortType":1},{"tabId":718,"tabName":"图表区","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":18,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=718","iframe":false,"sortType":1},{"tabId":21258,"tabName":"前端","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":19,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21258","iframe":false,"sortType":1},{"tabId":4055689,"tabName":"博文收录","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":19,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=4055689","iframe":false,"sortType":1},{"tabId":719,"tabName":"分析与设计","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=719","iframe":false,"sortType":1},{"tabId":1638782,"tabName":"Ada助手","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=1638782","iframe":false,"sortType":1},{"tabId":720,"tabName":"组件\u002F控件开发","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":21,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=720","iframe":false,"sortType":1},{"tabId":721,"tabName":"AppLauncher","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":22,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=721","iframe":false,"sortType":1},{"tabId":21252,"tabName":"圈内交友","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":23,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET?typeId=21252","iframe":false,"sortType":1}],"dataResource":{"mediaType":"c_cloud","subResourceType":"8_c_cloud_long_text","showType":"long_text","tabId":0,"communityName":".NET社区","communityHomePageUrl":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FDotNET","communityType":2,"content":{"id":"390947043","contentId":390947043,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F390947043","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F390947043","createTime":"2014-12-04 03:37:16","updateTime":"2021-05-28 19:28:20","resourceUsername":"baidu_23677379","best":0,"top":0,"text":null,"publishDate":"2014-12-04","lastReplyDate":"2014-12-08","type":"13","nickname":"baidu_23677379","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","username":"baidu_23677379","commentCount":3,"diggNum":0,"digg":false,"viewCount":128,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":" \u003Casp:Button 的 Enabled属性,FF 跟 柯弄...浏览器,只支援一半怎么解 ?","insertFirst":false,"likeInfo":null,"description":" 只支援一半的意思是在 FF 跟 柯弄浏览器上,按钮确定一开始是不能按,只是外观会跟一般可按按钮一模一样..... 我只是要预设一开始按钮是 Enabled,我验证成功会利用js把按钮打改 $('.BtnSearch').attr('disabled', false); 请问我要怎","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221109054125.png","content":"<asp:Button ID="btnSearch" runat="server" Text="查" CssClass="BtnSearch" OnClick="OnSearch" Enabled="false" \u002F>\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n只支援一半的意思是在 FF 跟 柯弄浏览器上,按钮确定一开始是不能按,只是外观会跟一般可按按钮一模一样.....\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n我只是要预设一开始按钮是 Enabled,我验证成功会利用js把按钮打改 $('.BtnSearch').attr('disabled', false);\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n请问我要怎么改写才能让【按钮】预设在所有浏览器看到都是效果都跟,\u003Cbr \u002F\u003E\n地表最2....\u003Cimg src=\"https:\u002F\u002Fforum.csdn.net\u002FPointForum\u002Fui\u002Fscripts\u002Fcsdn\u002FPlugin\u002F001\u002Fface\u002F10.gif\" alt=\"\" \u002F\u003E\u003Cbr \u002F\u003E\n的 IE 看到的效果一样呢【灰字+凹下去的效果】\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n","mdContent":null,"pictures":null,"videoInfo":null,"linkInfo":null,"student":{"isCertification":false,"org":"","bala":""},"employee":{"isCertification":false,"org":"","bala":""},"userCertification":[],"dependId":"0","dependSubType":null,"videoUrl":null,"favoriteCount":0,"favoriteStatus":false,"taskType":null,"defaultScore":null,"syncAsk":false,"videoPlayLength":null},"communityUser":{"userName":"baidu_23677379","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F9.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","nickname":"baidu_23677379","selfdesc":"","createdate":"2014-11-21 16:07:47","days":"3460","years":"9","username":"baidu_23677379","school":null,"company":null,"job":null},"userName":"baidu_23677379","event":"创建了帖子","body":"2014-12-04 03:37","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":3,"total":0,"list":[{"hit":null,"hitMsg":null,"content":"样式 重复几次 不同浏览器前面 加 前缀 如-moz-样式","topicTitle":null,"description":"样式 重复几次 不同浏览器前面 加 前缀 如-moz-样式","id":398641540,"contentResourceId":390947043,"bindContentResourceId":0,"communityId":211,"username":"zuoshuo55","userNickName":"zuoshuo55","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F6cae94627b0842e5a346d3b12b783f0b_zuoshuo55.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1784047694,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2014-12-08 11:52:42","updateTime":"2014-12-10 08:46:05","formatTime":"2014-12-08","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"你可以用设置‘button 禁用的样式。样式是图片的那种。","topicTitle":null,"description":"你可以用设置‘button 禁用的样式。样式是图片的那种。","id":398642150,"contentResourceId":390947043,"bindContentResourceId":0,"communityId":211,"username":"kongwei521","userNickName":"蝶恋花雨","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fed33ec5250f243bdb75b0bbf153b5e8a_kongwei521.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":2007457794,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2014-12-08 01:58:32","updateTime":"2014-12-10 08:46:06","formatTime":"2014-12-08","userRoleHonorary":{"userName":"kongwei521","roleId":0,"roleType":null,"roleStatus":null,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"disabled样式是浏览器自己实现的,不用去纠结这个非要一样。要不然你只能动态切换backgroud-image实现了","topicTitle":null,"description":"disabled样式是浏览器自己实现的,不用去纠结这个非要一样。要不然你只能动态切换backgroud-image实现了","id":398642057,"contentResourceId":390947043,"bindContentResourceId":0,"communityId":211,"username":"dongxinxi","userNickName":"IE11下面经常卡到爆","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F8065f886def446faa945b8ad43cde7ac_dongxinxi.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1960985849,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2014-12-08 01:46:28","updateTime":"2014-12-10 08:46:05","formatTime":"2014-12-08","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null}],"maxPageSize":3000},"defaultActiveTab":20680,"recommends":[{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fqing6454\u002F558337","title":"在\u003Cem\u003EASP\u003C\u002Fem\u003E.NET中使用Google Map","desc":"简介\u003Cbr\u003E\u003Cbr\u003E很多人都知道Google Earth(Google Map),其实,Google为我们自己开发应用程序提供了丰富的API,我们只要具备一些JavaScript的知识,就完全可以利用它们。但是,对于我来说,在\u003Cem\u003EASP\u003C\u002Fem\u003E.NET页面中使用JavaScript来调用Google Map的API有一定难度,尤其是利用服务器端函数来动态画出Google Map。例如,我想从SQL Server中读取经纬度信息,然后在Google Map中插入一个点。如果熟悉AJAX的话,很快就能得出答案。我们必须用JavaScript调用\u003Cem\u003EASP\u003C\u002Fem\u003E.NET服务器端函数,利用得到的数据来绘制Google Map。简单吧?其实,对于我来说并非如此。因此,我决定开发一个用户控件来处理JavaScript代码,这样,我就能集中精力于服务器端函数了。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E特点\u003Cbr\u003E\u003Cbr\u003E1.不需要JavaScript知识就能绘制Google Maps,只需在相应页面加入自定义控件即可。\u003Cbr\u003E\u003Cbr\u003E2.使用AJAX调用来获取服务器端数据。\u003Cbr\u003E\u003Cbr\u003E3.提供最优越的性能表现。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E如何使用\u003Cbr\u003E\u003Cbr\u003E在这里,我并不想\u003Cem\u003E解\u003C\u002Fem\u003E释我是如何创建该控件的。我只要教你如何使用它。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E系统需求\u003Cbr\u003E\u003Cbr\u003E1.Visual Studio 2005或更高版本\u003Cbr\u003E\u003Cbr\u003E2.Microsoft \u003Cem\u003EASP\u003C\u002Fem\u003E.NET AJAX Extensions支持\u003Cbr\u003E\u003Cbr\u003E3.Internet Explorer 7.0或Mozilla Firefox 2.x\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E你只需完成以下几步:\u003Cbr\u003E\u003Cbr\u003E1.新建一个\u003Cem\u003EASP\u003C\u002Fem\u003E.NET AJAX-\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E Website。\u003Cbr\u003E\u003Cbr\u003E2.将源代码中App_Code文件夹、GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet.ascx、GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet.ascx.cs,GService.asmx复制到你的\u003Cem\u003EASP\u003C\u002Fem\u003E.NET应用程序下。\u003Cbr\u003E\u003Cbr\u003E3.保证你的网站支持AJAX技术。\u003Cbr\u003E\u003Cbr\u003E4.打开Default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(或任何你想加入Google Map的位置),将该自定义控件拖放至相应位置并编译,这样就实现了最简单的带有Google Map的\u003Cem\u003EASP\u003C\u002Fem\u003E.NET网页。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E现在我们来为Google Map加一些标注点。在Page_Load()事件中加入一些代码。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E向Google Map控件传参\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E注意:使用时必须首先设定你的Google Maps API key(可以从Google免费获取)。\u003Cbr\u003E\u003Cbr\u003E以下是代码:\u003Cbr\u003E\u003Cbr\u003Eif (!IsPostBack)\u003Cbr\u003E{\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.APIKey = \"\u003CYourGoogleMapKey\u003E\"; \u002F\u002F定义你的Google Maps API key\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.APIVersion = \"2\"; \u002F\u002F选择Google Maps API版本\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Width = \"800px\";\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Height = \"600px\"; \u002F\u002F定义Google Map控件的大小\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.ZoomLevel = 14; \u002F\u002F定义缩放级别,默认值为3\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.CenterPoint = new GooglePoint(\"CenterPoint\", 31.19, 120.37); \u002F\u002F定义地图中心位置\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Points.Add(new GooglePoint(\"1\", 31.19, 120.37)); \u002F\u002F在指定经纬度定义新的地图标注点\u003Cbr\u003E\u003Cbr\u003E}\u003Cbr\u003E\u003Cbr\u003E这样,就能自定义地图加载位置和标注点了。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E自定义标注点图标\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E该控件支持自定义标注点图标。首先,将图标文件复制到你的网站目录下,接着,使用以下赋值语句:\u003Cbr\u003E\u003Cbr\u003E GP.IconImage = \"icons\u002Fpushpin-blue.png\";\u003Cbr\u003E\u003Cbr\u003E还可以为标注点添加注释,当用户单击标注点时,能看到注释内容。代码:\u003Cbr\u003E\u003Cbr\u003E GP.InfoHTML = \"这是一个标注点\";\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E至此,已经介绍了使用Google Maps Control的基本内容。接下来,我们来看一下它的高级功能。例如,当用户进行某些操作时移动标注点。\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E创建交互式地图\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E该控件支持用户创建交互式地图。下面这个例子是,当用户单击按钮时,移动标注点。以下是使用方法:\u003Cbr\u003E\u003Cbr\u003E \u003Cbr\u003E\u003Cbr\u003E1.插入一个\u003Cem\u003EButton\u003C\u002Fem\u003E控件,在它的Click事件中加入以下代码:\u003Cbr\u003E\u003Cbr\u003E protected void \u003Cem\u003EButton\u003C\u002Fem\u003E1_Click(object sender, EventArgs e)\u003Cbr\u003E {\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Points[\"1\"].Latitude += 0.003;\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Points[\"1\"].Longitude += 0.003;\u003Cbr\u003E }\u003Cbr\u003E\u003Cbr\u003E 可以自主控制经纬度的增量。\u003Cbr\u003E\u003Cbr\u003E2.运行该页面,你将发现整个页面都会被刷新或回传。为了避免这种现象,我们只需要把这个\u003Cem\u003EButton\u003C\u002Fem\u003E控件加入UpdatePanel控件中。\u003Cbr\u003E\u003Cbr\u003E3.重新运行该页面,可看到该页面已经一切正常了。\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E自动更新和GPS导航\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E我们可以使用AJAX框架中的Timer控件来实现这一功能。在Timer_Tick()事件中,可以定义标注点新的经度和纬度。这样,在指定的时间间隔后,地图上所有的标注点都会自动更新。你也可以连接到GPS设备,构成一个GPS导航系统。\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E使用Google Maps Control绘制折线\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E1.首先,添加该折线的各个端点。代码如下:\u003Cbr\u003E\u003Cbr\u003E GooglePoint GP1 = new GooglePoint();\u003Cbr\u003E GP1.ID = \"GP1\";\u003Cbr\u003E GP1.Latitude = 31.19; \u002F\u002F定义标注点纬度\u003Cbr\u003E GP1.Longitude = 120.37; \u002F\u002F定义标注点纬度\u003Cbr\u003E GP1.InfoHTML = \"这是标注点1\"; \u002F\u002F可选注释项\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Points.Add(GP1); \u002F\u002F在地图上添加这个点\u003Cbr\u003E\u003Cbr\u003E GooglePoint GP2 = new GooglePoint();\u003Cbr\u003E GP2.ID = \"GP2\";\u003Cbr\u003E GP2.Latitude = 31.19001;\u003Cbr\u003E GP2.Longitude = 120.37001;\u003Cbr\u003E GP2.InfoHTML = \"这是标注点2\";\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Points.Add(GP2);\u003Cbr\u003E\u003Cbr\u003E GooglePoint GP3 = new GooglePoint();\u003Cbr\u003E GP3.ID = \"GP3\";\u003Cbr\u003E GP3.Latitude = 31.19003;\u003Cbr\u003E GP3.Longitude = 120.36998;\u003Cbr\u003E GP3.InfoHTML = \"这是标注点3\";\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Points.Add(GP3);\u003Cbr\u003E\u003Cbr\u003E2.利用这些点绘制折线\u003Cbr\u003E\u003Cbr\u003E GooglePolyline PL1 = new GooglePolyline(); \u002F\u002F定义折线\u003Cbr\u003E PL1.ID = \"PL1\";\u003Cbr\u003E PL1.ColorCode = \"#0000\u003Cem\u003EFF\u003C\u002Fem\u003E\"; \u002F\u002F定义折线颜色\u003Cbr\u003E PL1.Width = 5; \u002F\u002F定义折线宽度\u003Cbr\u003E\u003Cbr\u003E PL1.Points.Add(GP1); \u002F\u002F加入这些点(绘制折线)\u003Cbr\u003E PL1.Points.Add(GP2);\u003Cbr\u003E PL1.Points.Add(GP3);\u003Cbr\u003E\u003Cbr\u003E3.将折线加入Google Maps Control中\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Polylines.Add(PL1);\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E使用Google Maps Control绘制多边形\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E1.按照上面的方法加入多边形各顶点。这里不再赘述。\u003Cbr\u003E\u003Cbr\u003E2.使用这些点创建一个多边形。代码如下:\u003Cbr\u003E\u003Cbr\u003E GooglePolygon PG1 = new GooglePolygon(); \u002F\u002F定义多边形\u003Cbr\u003E PG1.ID = \"PG1\";\u003Cbr\u003E PG1.FillColor = \"#0000\u003Cem\u003EFF\u003C\u002Fem\u003E\"; \u002F\u002F定义多边形各条边的颜色\u003Cbr\u003E PG1.FillOpacity = 0.4;\u003Cbr\u003E\u003Cbr\u003E\u003Cbr\u003E PG1.Points.Add(GP1); \u002F\u002F将上面创建的各点加入多边形(作为顶点)\u003Cbr\u003E PG1.Points.Add(GP2);\u003Cbr\u003E PG1.Points.Add(GP3);\u003Cbr\u003E ……………………………………\u003Cbr\u003E\u003Cbr\u003E PG1.Points.Add(GPn); \u002F\u002F第n个顶点\u003Cbr\u003E\u003Cbr\u003E3.将多边形加入Google Maps Control中\u003Cbr\u003E\u003Cbr\u003E GoogleMapFor\u003Cem\u003EASP\u003C\u002Fem\u003ENet1.GoogleMapObject.Polygons.Add(PG1);\u003Cbr\u003E","createTime":"2008-07-28 10:57:38","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-558337-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-558337-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fqing6454\u002F558337\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-558337-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fqing6454\u002F558337\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-558337-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657","title":"Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet v2.2.1 (2009-4-1) 值得一看","desc":"Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet v2.2.1\n\t\nExt\u003Cem\u003EAsp\u003C\u002Fem\u003ENet是一组专业的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。\n\n支持的\u003Cem\u003E浏览器\u003C\u002Fem\u003E: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002Fext\u003Cem\u003Easp\u003C\u002Fem\u003E.net\u002F\n开源: http:\u002F\u002Fext\u003Cem\u003Easp\u003C\u002Fem\u003Enet.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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例在单独\u003Cem\u003E浏览器\u003C\u002Fem\u003E打开后,不能弹出对话框的BUG。\n\t-隐藏示例首页最外层RegionPanel的边框ShowBorder=\"false\"。\n\t+集成Extjs最新版本v3.1.1。\n\t\t-增加一个新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时页面消失的BUG。\n\t\t-删除Panel的\u003Cem\u003EEnab\u003C\u002Fem\u003EleLightBackgroundColor\u003Cem\u003E属性\u003C\u002Fem\u003E,同时\u003Cem\u003EEnab\u003C\u002Fem\u003EleBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的控件Image\u003Cem\u003EButton\u003C\u002Fem\u003E具有和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的\u003Cem\u003EButton\u003C\u002Fem\u003E控件类似的行为(Ajax提交)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleTabCloseMenu\u003Cem\u003E属性\u003C\u002Fem\u003E,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision\u003Cem\u003E属性\u003C\u002Fem\u003E,用来控制小数点后的位数(需要设置NoDecimal=\"false\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会弹出确认对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正\u003Cem\u003EEnab\u003C\u002Fem\u003EleMaximize\u003Cem\u003E属性\u003C\u002Fem\u003E不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-删除\u003Cem\u003EButton\u003C\u002Fem\u003E控件的SystemIcon\u003Cem\u003E属性\u003C\u002Fem\u003E,比如以前这样定义SystemIcon=\"Close\",现在需要这样定义Icon=\"SystemClose\"。\n\t-WindowPosition默认居中,而不是黄金分割位置。\n\t+\u003Cem\u003EButton\u003C\u002Fem\u003E, Window等控件弹出位置\u003Cem\u003E属性\u003C\u002Fem\u003E的变化。\n\t\t-Window的Target\u003Cem\u003E属性\u003C\u002Fem\u003E由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_self\" -\u003E Target=\"Self\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003E, \u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003EField的ConfirmTarget\u003Cem\u003E属性\u003C\u002Fem\u003E由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。\n\t\t-Confirm.GetShowReference的最后一个参数target变为枚举类型。\n\t\t-Alert.GetShowReference中的showInParent参数也变为Target枚举类型。\n\t\t-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003E, \u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003EField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成Extjs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS问题。\n\t-修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加\u003Cem\u003E属性\u003C\u002Fem\u003EAjaxTimeout(单位秒,默认30秒)。\n\t-修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray\u003Cem\u003E属性\u003C\u002Fem\u003E的BUG(feedback:Violet)。\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E控件将不再自动拥有display:inline\u003Cem\u003E属性\u003C\u002Fem\u003E,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=\"float:left;\"\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleEdit\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-使用Hidden来显示隐藏Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件,而不是使用Visible\u003Cem\u003E属性\u003C\u002Fem\u003E(Visible目前设置为只读\u003Cem\u003E属性\u003C\u002Fem\u003E)。\n\t-使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。\n\t-增加TabStrip中Tab控件可关闭\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument中Icon\u003Cem\u003E属性\u003C\u002Fem\u003E映射错误(feedback:nopnop9)。\n\t-修正Htm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor不能编辑的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问题(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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex),如何通过简单的Javascript代码回发父页面(feedback:eroach)。\n\t-修正一些书写错误(feedback:bmck)。\n\t-从Region控件中删除SplitColor\u003Cem\u003E属性\u003C\u002Fem\u003E,增加CollapseMode, \u003Cem\u003EEnab\u003C\u002Fem\u003EleSplitTip, SplitTip, CollapsibleSplitTip\u003Cem\u003E属性\u003C\u002Fem\u003E(feedback:bmck)。\n\t-BorderPanel更名为RegionPanel。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加中国的省市县三级联动示例(data\u002Fshengshixian.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。\n\t-修正了启用AutoPostBack的Grid,其RowClick会覆盖Link\u003Cem\u003EButton\u003C\u002Fem\u003EField, 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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-修正Form不能自适应\u003Cem\u003E浏览器\u003C\u002Fem\u003E大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如Panel,Region,Tab等)增加AJAX\u003Cem\u003E属性\u003C\u002Fem\u003EIFrameUrl(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\u003Cem\u003E属性\u003C\u002Fem\u003E,增加GetCheckedNodes和GetCheckedNodeIDs函数。\n\t\t-删除ExpandedNodeIDArray\u003Cem\u003E属性\u003C\u002Fem\u003E,增加GetExpandedNodes和GetExpandedNodeIDs函数。\n\t\t-增加示例(data\u002Ftree_select_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的\u003Cem\u003E属性\u003C\u002Fem\u003ENodeId被重命名为NodeID,这是Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet中的一个命名约定。\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\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。\n\t-增加示例(other\u002Fcustom_postback.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:thebox)。\n\t\t-如何自定义Javascript脚本和C#处理函数来响应键盘事件。\n\t-为Tree增加AutoLeafIdentification\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-增加示例(tree_auto_leaf_identification.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:wdrabbit)。\n\t\n\t\n\n+2009-11-17 v2.1.4\n\t-修正Window的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。\n\t-部分Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件的设计时支持(会在后续版本中逐步完善)。\n\t-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时\u003Cem\u003E属性\u003C\u002Fem\u003E,和运行时是否保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack)。\n\t-为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E(feedback:dk3214)。\n\t+为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage\u003Cem\u003E属性\u003C\u002Fem\u003E,用于指定验证失败时提示信息。\n\t\t-为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。\n\t+为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。\n\t\t-增加示例:form\u002Fform_validate.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\n\t\n\t\n\n+2009-10-19 v2.1.3\n\t+增加支持在AJAX时改变的控件\u003Cem\u003E属性\u003C\u002Fem\u003E列表(\u002Fajax.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet支持原生的AJAX,也就是说控件的\u003Cem\u003E属性\u003C\u002Fem\u003E改变在AJAX过程中会反映到页面中,但并不是所有的控件\u003Cem\u003E属性\u003C\u002Fem\u003E都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例,使用验证图片(feedback:kedee)。\n\t-为Grid增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E和RowClick事件,示例在\u002Fdata\u002Fgrid_autopostback.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX\u003Cem\u003E属性\u003C\u002Fem\u003EReadOnly(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和GetCollapseAllNodesReference两个函数。\n\t-修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。\n\t-增加pt_BR语言,由Ujvari提供。\n\t+为所有Panel(包括Grid,Tree,Form等)增加枚举类型Icon,其中包含1700多个小图标。\n\t\t-如果Panel具有IconUrl\u003Cem\u003E属性\u003C\u002Fem\u003E,则IconUrl优先于Icon。\n\t\t-所有Icon的列表在icon.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t-为\u003Cem\u003EButton\u003C\u002Fem\u003E,MenuItem(Menu\u003Cem\u003EButton\u003C\u002Fem\u003E,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\n\t\n\n+2009-09-15 v2.1.1\n\t-修正不能动态修改AccordionPane\u003Cem\u003E属性\u003C\u002Fem\u003EItems的BUG。\n\t+为\u003Cem\u003EButton\u003C\u002Fem\u003E, Menu\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003EField增加ConfirmTarget。\n\t\t-如果需要在父页面弹出确认对话框,需要设置ConfirmTarget=\"_parent\"(类似Window控件的Target=\"_parent\")。\n\t+为Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Alert.Show增加点击确定的JavaScript回调函数。\n\t\t-一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。\n\t\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Alert.Show(\"参数错误!\", String.Empty, Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.ActiveWindow.GetCloseReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002Fext\u003Cem\u003Easp\u003C\u002Fem\u003E.net\u002Fdata\u002Ftree_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\n\t-Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的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-\u003Cem\u003EButton\u003C\u002Fem\u003E的Pressed\u003Cem\u003E属性\u003C\u002Fem\u003E值能够正确的反映客户端的变化。\n\t-优化Tree控件的AJAX实现。\n\t+为页面的Form添加autocomplete=\"o\u003Cem\u003Eff\u003C\u002Fem\u003E\"\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-参考http:\u002F\u002Fwww.cnblogs.com\u002Fsanshi\u002Farchive\u002F2009\u002F09\u002F04\u002F1560146.html#1635830\n\t+添加对extjs3.0中所有语言的支持。\n\t\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet扩展的多语言包在js\\languages\\ext\u003Cem\u003Easp\u003C\u002Fem\u003Enet目录下,目前只有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-为Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。\n\t+在\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面中必须显示的声明控件的集合\u003Cem\u003E属性\u003C\u002Fem\u003E(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。\n\t\t-这将会影响所有的\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面,所以要特别关注。\n\t-重命名AccordionPanel为AccordionPane (这也是在\u003Cem\u003EAsp\u003C\u002Fem\u003E.net AJAX中使用的名称).\n\t+所有的面板默认有两个集合\u003Cem\u003E属性\u003C\u002Fem\u003E(Toolbars和Items).\n\t\t-尽管TabStrip, From, Tree, Accordion继承了Items\u003Cem\u003E属性\u003C\u002Fem\u003E,但是你并不能对其设置(此时Items是只读的).\n\t\t-这将会影响所有的\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面,一定要将工具条(Toolbars)和Items区分开来。\n\t-祝你生日快乐 - 小师妹妹。\n\n\n\n+2009-08-29 v2.0.8\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的一个BUG(定义Mappings\u003Cem\u003E属性\u003C\u002Fem\u003E时)。\n\t+PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。\n\t -这个BUG导致\u003Cem\u003EAsp\u003C\u002Fem\u003E.net compatibility中的示例无法完成,现在已经修正。\n\t+去除PageManager中方法AddAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls,增加\u003Cem\u003E属性\u003C\u002Fem\u003EAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls。\n\t -这个\u003Cem\u003E属性\u003C\u002Fem\u003E和\u003Cem\u003EButton\u003C\u002Fem\u003E得ValidateForms\u003Cem\u003E属性\u003C\u002Fem\u003E类似,可以查看\u003Cem\u003EAsp\u003C\u002Fem\u003E.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\u003Cem\u003E属性\u003C\u002Fem\u003E访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。\n -增加示例-如何将Grid控件导出为Excel(data\\grid_excel_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:503684912)。\n -如果TreeNode的\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E=\"false\",则此项变灰并且不会被选中(feedback:your568)。\n -修正TreeNode的\u003Cem\u003E属性\u003C\u002Fem\u003ENavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID\u003Cem\u003E属性\u003C\u002Fem\u003E来代替。\n\t\t-这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。\n\t\t-简单方便,示例可以参考 default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex 或者 other\\accordion_tree_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n \n \n\n+2009-08-14 v2.0.6\n\t-动态生成菜单实例(other\\menu_dynamic_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和other\\menu_dynamic2_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(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+Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的提交按钮兼容问题(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的按钮AJAX提交,必须设置UseSubmitBehavior=\"false\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使一个\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjax为true即可,这是默认\u003Cem\u003E属性\u003C\u002Fem\u003E)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件了。\n\t\t-在Page_Load中设置了哪些需要在AJAX中更新的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件会在回发时保持状态,可以通过RemoveAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls来去除不需要更新的控件。\n\t\t-示例在\u003Cem\u003Easp\u003C\u002Fem\u003Enet\\fckeditor_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和\u003Cem\u003Easp\u003C\u002Fem\u003Enet\\\u003Cem\u003Easp\u003C\u002Fem\u003Enet_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t\t-FCKEditor和上传控件兼容。示例在\u003Cem\u003Easp\u003C\u002Fem\u003Enet\\fileupload_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t-修正ToolbarText的文本在AJAX下更新的BUG。\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E的Pressed\u003Cem\u003E属性\u003C\u002Fem\u003E在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+和\u003Cem\u003EAsp\u003C\u002Fem\u003E.Net的Forms Authentication兼容[feedback:mgzhenhong]。\n\t\t-采用和\u003Cem\u003EAsp\u003C\u002Fem\u003E.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。\n\t\t-现在支持Response.Redirect,你可以选择Response.Redirect或者Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.PageContext.Redirect重定向页面,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E增加Type\u003Cem\u003E属性\u003C\u002Fem\u003E(\u003Cem\u003Ebutton\u003C\u002Fem\u003E,reset,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不显示(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下测试通过。以后Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet将不会对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();会导致\u003Cem\u003Ebutton\u003C\u002Fem\u003E的click事件无法响应(IE8下无此问题)。\n\t\t-目前先禁用IE6.0-7.0的QuickTips。\n\t-优化底层JavaScript。\n\t\n\t\n\t\n+2009-07-05 v2.0 beta1\n\t-更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet自身的CSS会紧挨着页面\u003Ctitle\u003E标签引入,这样在\u003Chead\u003E中自定义的样式可以覆盖Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet缺省样式。\n\t+Alert对话框会遮挡所有的Window窗口。\n\t\t-使用一个变通的方法\u003Cem\u003E解\u003C\u002Fem\u003E决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。\t\n\t-为所有按钮的左右增加5px的空白边距:.x-btn \u003Cem\u003Ebutton\u003C\u002Fem\u003E { margin: 0 5px !important; }。\n\t-因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选中第一项。\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中的\u003Cem\u003EEnab\u003C\u002Fem\u003EleIFrame==false,则点击关闭按钮时报JS错误。[fixed]\n\t-页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例\u003Cem\u003Easp\u003C\u002Fem\u003Enet\u002Ffileupload.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t-Htm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor显示隐藏工具栏按钮不起作用,Htm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor目前不支持\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E和Readonly两个\u003Cem\u003E属性\u003C\u002Fem\u003E。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果弹出的窗口(Ext-Window)含有\u003Cem\u003EASP\u003C\u002Fem\u003E.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http:\u002F\u002Fextjs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果页面中存在\u003Cem\u003EASP\u003C\u002Fem\u003E.NET控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed]\n\t-页面上放置Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet-\u003Cem\u003EButton\u003C\u002Fem\u003E和\u003Cem\u003EASP\u003C\u002Fem\u003E.NET-\u003Cem\u003EButton\u003C\u002Fem\u003E,则点击Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet-\u003Cem\u003EButton\u003C\u002Fem\u003E时激发的是\u003Cem\u003EASP\u003C\u002Fem\u003E.NET-\u003Cem\u003EButton\u003C\u002Fem\u003E的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed]\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet工程中使用\u003Cem\u003EASP\u003C\u002Fem\u003E.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件和\u003Cem\u003EASP\u003C\u002Fem\u003E.NET标准控件和平共处了。[fixed]\n\t\t-如果一个\u003Cem\u003EASP\u003C\u002Fem\u003E.NET按钮控件要使用Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet的原生AJAX,只需要设置\u003Cem\u003E属性\u003C\u002Fem\u003E UseSubmitBehavior=\"false\" 即可。\n\t\t-如果要在一次Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet的原生AJAX回发时更新\u003Cem\u003EASP\u003C\u002Fem\u003E.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:\u003Cem\u003Easp\u003C\u002Fem\u003Enet\u002F\u003Cem\u003Easp\u003C\u002Fem\u003Enet.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\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,底层代码优化。表示“获取当前页面中表单修改的确认提示框的脚本”。\n\t\t---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference\u002FGetConfirmFormModifiedCloseRefreshReference\u002FGetConfirmFormModifiedClosePostBackReference三个方法代替。\n\t\t-不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript\u003Cem\u003E属性\u003C\u002Fem\u003E,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的\u003Cem\u003EASP\u003C\u002Fem\u003EX页面中查找RegisterPageStateChangedScript\u003Cem\u003E属性\u003C\u002Fem\u003E,并删除,否则会运行错误!\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函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。\n\t\t---Window控件的OnClientClose\u003Cem\u003EButton\u003C\u002Fem\u003EClick\u003Cem\u003E属性\u003C\u002Fem\u003E如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。\n\t\t-如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。\n\t\t-Window控件的IFrameName\u003Cem\u003E属性\u003C\u002Fem\u003E是自动生成的,只读\u003Cem\u003E属性\u003C\u002Fem\u003E。(因为有可能所有的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的支持和部分内存泄漏问题的修正)。[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可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。\n\t-Image控件增加ImageWidth\u002FImageHeight\u002FImageCssStyle\u002FImageCssClass\u002FImageAlt\u003Cem\u003E属性\u003C\u002Fem\u003E[feedback:jqpeng]。[fixed]\n\t-发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-ContentPanel的ShowHeader和ShowBorder\u003Cem\u003E属性\u003C\u002Fem\u003E默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时显示不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack\u003Cem\u003E属性\u003C\u002Fem\u003E会在回发时保持(也即是说如果\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack=true,回发时没改变\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样一个效果,如果Tab1默认显示,Tab1的\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack=true,则页面加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed]\n\t\t-需要替换新的blowery.Web.HttpCompress.dll,\u003Cem\u003E解\u003C\u002Fem\u003E决方案见http:\u002F\u002Fpohee.com\u002Fit\u002Fhttp-compression-in-\u003Cem\u003Easp\u003C\u002Fem\u003Enet-20\u002F。\n\t+DropDownList优化。[fixed]\n\t\t-去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleFirstItem\u002FFirstItemText\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.Insert(0, new Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。\n\t\t\t-和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = \"\";\n\t\t-ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。\n\t-处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed]\n\t-注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding\u002Fborder-width\u002Fmargin)。[fixed]\n\t+为所有控件\u003Cem\u003E属性\u003C\u002Fem\u003E增加在VS中的智能提示。[fixed]\n\t\t-需要将Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.XML和Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。\n\t+控件的\u003Cem\u003E属性\u003C\u002Fem\u003E如果是枚举类型,如果此\u003Cem\u003E属性\u003C\u002Fem\u003E可以不取值,则默认为None。[fixed]\n\t\t-TriggerIconType.Default -\u003E TriggerIconType.None\n\t\t-SystemIconType.Empty -\u003E SystemIconType.None\n\t\t-RegexPattern.USER_DEFINED -\u003E RegexPattern.None\n\t-表单验证\u003Cem\u003E属性\u003C\u002Fem\u003E名称变化(ValueToCompare-\u003ECompareValue,ControlToCompare-\u003ECompareControl)。[fixed]\n\t+注意:一个\u003Cem\u003E属性\u003C\u002Fem\u003E可以拥有多个值的情况。[fixed]\n\t\t-\u003Cem\u003E属性\u003C\u002Fem\u003E和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。\n\t\t-其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。\n\t+AccordionLink实现为控件。[fixed]\n\t\t-可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(Accordion-\u003EAccordionLink)(示例在other\u002Faccordion_links_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex,other\u002Faccordion_links_run_iframe_htm)[feedback:jima]。\n\t+确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form\u002Fform_dynamic_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-10-15 v1.2 beta5\n\t-验证表单字段的ValueToCompare\u003Cem\u003E属性\u003C\u002Fem\u003E,为字符串时会出错的BUG。[fixed]\n\t+优化下拉列表。[fixed]\n\t\t-验证下拉列表时,应该取ListItem的Value\u003Cem\u003E属性\u003C\u002Fem\u003E进行验证,而不是Text\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyText\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-ListItem启用\u003Cem\u003EEnab\u003C\u002Fem\u003EleSelect和SimulateTreeLevel\u003Cem\u003E属性\u003C\u002Fem\u003E,这样就可以直接在前台(\u003Cem\u003EASP\u003C\u002Fem\u003EX)中设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleSimulateTree\u003Cem\u003E属性\u003C\u002Fem\u003E(默认为false),如果设置了DataSimulateTreeLevelField,则自动将\u003Cem\u003EEnab\u003C\u002Fem\u003EleSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+\u003Cem\u003EEnab\u003C\u002Fem\u003EleLargeHeader\u003Cem\u003E属性\u003C\u002Fem\u003E对所有容器的效果一样,Accordion的\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other\u002Faccordion_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-Accordion去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleHightlight\u003Cem\u003E属性\u003C\u002Fem\u003E,AccordionPanel增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleHightlight\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-影响以前使用Box的应用,需要将Accordion的\u003Cem\u003E属性\u003C\u002Fem\u003E去掉,然后为每个AccordionPanel增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleLargeHeader和\u003Cem\u003EEnab\u003C\u002Fem\u003EleHightlight\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+AccordionPanel增加Links\u003Cem\u003E属性\u003C\u002Fem\u003E,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other\u002Faccordion_links_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上\u003CItems\u003E标签。\n\t\t-适当增大AccordionPanel中链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少\u003Cem\u003EASP\u003C\u002Fem\u003EX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在\u003Cem\u003EASP\u003C\u002Fem\u003EX页切换到“设计时”,方便\u003Cem\u003E属性\u003C\u002Fem\u003E的更改和事件处理函数的添加)。[fixed]\n\t\t-Panel\u002FGroupPanel\u002FContentPanel\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain\u003Cem\u003E属性\u003C\u002Fem\u003E,增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form中动态添加控件的BUG,现在form\u002Fform_dynamic_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordionPanel\u002FGroupPanel\u002FPanel\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)\u003Cem\u003E属性\u003C\u002Fem\u003E和Grid的Rows\u003Cem\u003E属性\u003C\u002Fem\u003E(GridRowCollection)。\n\t\t-保留TabStrip的Tabs(TabCollection)\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-保留PageLayout\u002FBorderLayout的Regions(RegionCollection)\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-预祝今晚神七发射成功。\n\t\n\t\n\t\n+2008-09-22 v1.2 beta2\n\t+Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对Grid进行多次删除添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002F\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FHyperLink\u002FLabel\u002FImage\u002FLink\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FTextBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FTextArea\u002FHtm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002FRadio\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FRadio\u003Cem\u003EButton\u003C\u002Fem\u003EList\u002FDropDownList\n\t\t-Grid\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLink\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FHyperLink增加一些Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003E。[fixed]\n\t+隐藏的方式由HideMode\u003Cem\u003E属性\u003C\u002Fem\u003E控制Visibility\u002FO\u003Cem\u003Eff\u003C\u002Fem\u003Esets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm中隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。\n\t-ToolbarText\u002FToolbarFill\u002FToolbarSeparator在\u003Cem\u003EASP\u003C\u002Fem\u003EX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed]\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E去除MarginRight\u003Cem\u003E属性\u003C\u002Fem\u003E(可以通过CssStyle=\"margin-right:5px;\"达到相同的效果)[fixed]\n\t\n\t\n\t\n+2008-09-09 v1.1\n\t+Toolbar去除IsPageMenu\u003Cem\u003E属性\u003C\u002Fem\u003E,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed]\n\t\t-网报:CssClass=\"toolbar-pagemenu\" CssStyle=\"border:0px;\",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(..\u002Fimages\u002Fpagemenu_toolbar_background.gif) repeat-x left top;}。\n\t-Region去除默认的Layout=Fit,如果希望Region使用Fit\u002FAnchor\u002FColumn\u002FRow等布局的话,需要手工指定。[fixed]\n\t-ToolbarSeparator\u002FToolbarFill在Ajax更新Hidden\u003Cem\u003E属性\u003C\u002Fem\u003E的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-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FMenuHyperLink增加HideOnClick\u003Cem\u003E属性\u003C\u002Fem\u003E,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick=\"false\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FMenuHyperLink\u002FMenuSeparator\u002FMenuText增加Hidden\u003Cem\u003E属性\u003C\u002Fem\u003E(此\u003Cem\u003E属性\u003C\u002Fem\u003E是Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003E,如果需要在Ajax时显示隐藏菜单,请使用此\u003Cem\u003E属性\u003C\u002Fem\u003E而不是Visible\u003Cem\u003E属性\u003C\u002Fem\u003E)。[fixed]\n\t+大部分的Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件增加Hidden\u003Cem\u003E属性\u003C\u002Fem\u003E(少数几个控件没有此\u003Cem\u003E属性\u003C\u002Fem\u003E:Menu),这样在Ajax时可以显示隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=false的\u003Cem\u003E属性\u003C\u002Fem\u003E不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet改造强烈依赖于此\u003Cem\u003E属性\u003C\u002Fem\u003E,这个版本发布后可以继续。\n\t\t-网报中唯一没有用到Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageContext.Redirect支持普通页面转向和Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax下页面转向。[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-\u003Cem\u003E解\u003C\u002Fem\u003E决方法:testValue += '';if(domValue.split(',').indexOf(testValue) \u003E= 0){ok}。\n\t-DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed]\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FMenu\u003Cem\u003EButton\u003C\u002Fem\u003E增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003EOnClientClick [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\u002FData\u003Cem\u003EEnab\u003C\u002Fem\u003EleSelectField等\u003Cem\u003E属性\u003C\u002Fem\u003E的值,否则Ajax回发时会出错)。[fixed]\n\t-UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用\u003Cem\u003EAsp\u003C\u002Fem\u003EnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的控件HiddenField,而是使用Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet的HiddenField,因为\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList中项如果存在汉字,则会换行的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,则在页面上方会有空白(可以通过设置\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EeferredRender=false\u003Cem\u003E解\u003C\u002Fem\u003E决,但会减慢页面的加载速度),现在已经\u003Cem\u003E解\u003C\u002Fem\u003E决这个问题。[fixed]\n\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleBackgroundColor\u002F\u003Cem\u003EEnab\u003C\u002Fem\u003EleLightBackgroundColor\u003Cem\u003E属性\u003C\u002Fem\u003E,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed]\n\t-Web.config中增加配置项FormLabelWidth=\"80\"(默认为80),同时PageManager增加FormLabelWidth\u003Cem\u003E属性\u003C\u002Fem\u003E用来控制页面上所有SimpleForm\u002FForm的表单字段标题的宽度。[fixed]\n\t+完善Ajax。[fixed]\n\t\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003ESelectedIndex(SelectedValue\u002FSelectedItem)。\n\t\t-DropDownList增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003Ele\u002FSelectedIndex(SelectedValue\u002FSelectedItem)\u002FDataSource。\n\t\t-Grid增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003EColumns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。\n\t\t-ToolbarText增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003EText。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EeferredRender\u003Cem\u003E属性\u003C\u002Fem\u003E(是否启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed]\n\t+安全的Ajax设计。[fixed]\n\t\t-这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。\n\t\t-基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些\u003Cem\u003E属性\u003C\u002Fem\u003E的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjax\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-整理支持Ajax的控件\u003Cem\u003E属性\u003C\u002Fem\u003E改变列表(所有被支持的\u003Cem\u003E属性\u003C\u002Fem\u003E改变都是安全的、快速的,所有不被支持的\u003Cem\u003E属性\u003C\u002Fem\u003E改变不会对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-控件设计的一个原则,凡是可以在客户端改变的\u003Cem\u003E属性\u003C\u002Fem\u003E都应该在回发时保持\u003Cem\u003E属性\u003C\u002Fem\u003E的状态。\n\t+完全抛弃\u003Cem\u003EAsp\u003C\u002Fem\u003E.NetAjax,Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件内置Ajax支持。[fixed]\n\t\t-这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和\u003Cem\u003EAsp\u003C\u002Fem\u003E.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的\u003Cem\u003E属性\u003C\u002Fem\u003E-\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的点击一个按钮弹出窗口,可以在\u003Cem\u003EButton\u003C\u002Fem\u003E的OnClick事件中设置Window1.Popup=true,也可以注册\u003Cem\u003EButton\u003C\u002Fem\u003E的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并\u003Cem\u003E解\u003C\u002Fem\u003E析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax的限制。\n\t\t\t-只对Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件起作用,对\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件不起作用。\n\t\t\t-对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。\n\t\t\t-对改变控件的Visible\u003Cem\u003E属性\u003C\u002Fem\u003E会有错误。\n\t\t\t-Window控件的\u003Cem\u003E属性\u003C\u002Fem\u003E改变只有少数几个起作用(Popup,IFrameUrl)。\n\t-PageManager增加\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003ElePageLoading和\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed]\n\t-Grid中的回发事件(主要是Link\u003Cem\u003EButton\u003C\u002Fem\u003EField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed]\n\t-Grid选中行的状态在第一次回发时不能保持的BUG。[fixed]\n\t\n\t\n\t\n+2008-08-26 v1.0\n\t+已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。\n\t\t-主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化弹出窗口中IFrame的显示速度。[fixed]\n\t\t-在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor\u003Cem\u003E属性\u003C\u002Fem\u003E,默认的背景色是透明的。(在网报中需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加\u003Cem\u003E属性\u003C\u002Fem\u003ETheme、Language、FormMessageTarget、FormO\u003Cem\u003Eff\u003C\u002Fem\u003EsetRight等\u003Cem\u003E属性\u003C\u002Fem\u003E,这些\u003Cem\u003E属性\u003C\u002Fem\u003E可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed]\n\t\t-一个典型的应用是为每个用户设置不同的皮肤(根据用户\u003Cem\u003E浏览器\u003C\u002Fem\u003E中Cookie设置的值)(示例在default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-TreeNode增加\u003Cem\u003E属性\u003C\u002Fem\u003ESingleClickExpand,表示点击可切换节点的折叠展开状态。[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-全新的Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Examples(基础知识\u002F表单控件\u002F数据绑定\u002F容器布局\u002FIFrame框架)。[fixed]\n\t\n\t\n\t\n+2008-08-19 v0.4 beta6\n\t+PageManager增加两个\u003Cem\u003E属性\u003C\u002Fem\u003E(\u003Cem\u003EEnab\u003C\u002Fem\u003EleInlineStyleJavascript\u002FApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe\u002Fdefault.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和iframe\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList放在在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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-现在的\u003Cem\u003E解\u003C\u002Fem\u003E决方法是在初始化时:if(this.initialized){return;}this.initialized=true;\n\t+需要先回发页面再弹出IFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl\u003Cem\u003E属性\u003C\u002Fem\u003E,因为这些\u003Cem\u003E属性\u003C\u002Fem\u003E是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。\n\t\t-另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-点击关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。[fixed]\n\t+Radio\u003Cem\u003Ebutton\u003C\u002Fem\u003Elist显示有重影(示例在radio.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal\u003Cem\u003E属性\u003C\u002Fem\u003E,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[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,也即是不保持状态。此问题\u003Cem\u003E解\u003C\u002Fem\u003E决。(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面,iexplorer占内存68.368M。\n\t\t-内存存在泄漏时,点击iframe\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面8次后iexplorer占118.792M内存。\n\t\t-修正后,点击iframe\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面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的\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"\u003Cem\u003E解\u003C\u002Fem\u003E决)。[fixed]\n\t+页面正在加载的提示尽早的显示出来。[fixed]\n\t\t-首先在执行js来完成页面渲染之前延迟5ms,以便\u003Cem\u003E浏览器\u003C\u002Fem\u003E把当前页面内容显示出来。\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_Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet目录下的页面应该为.\u002FFE_ApplyEditor.\u003Cem\u003Easp\u003C\u002Fem\u003Ex或~\u002FPages_Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet\u002FFE_ApplyEditor.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed]\n\t-\u003Cem\u003Ebutton\u003C\u002Fem\u003E_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex默认会加载form.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面(Window控件的BUG)。[fixed]\n\t-Window中的保存并关闭按钮和\u003Cem\u003EAsp\u003C\u002Fem\u003E.netAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到页面的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-08-05 v0.4 beta1\n\t-DropDownList去除Traditional\u003Cem\u003E属性\u003C\u002Fem\u003E,和传统的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件一样不可编辑。[fixed]\n\t-DropDownList增加SelectedText\u003Cem\u003E属性\u003C\u002Fem\u003E(去除了模拟树时通过SelectedItem.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-一种\u003Cem\u003E解\u003C\u002Fem\u003E决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。\n\t\t-另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的\u003Cem\u003E属性\u003C\u002Fem\u003E(会在每次页面回发(包含ajax回发)时注册脚本)(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在onreadyscript.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。\n\t-每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的\u003Cem\u003E属性\u003C\u002Fem\u003E出现)。[fixed]\n\t-TextField等表单字段增加Readonly\u003Cem\u003E属性\u003C\u002Fem\u003E。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fpage2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\n\t\t\t-虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个\u003Cem\u003E属性\u003C\u002Fem\u003E(Target=\"_parent\"),就完成了两种框架的转换,是不是很酷。\n\t\t\t-显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(A)\u002Fpage2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(B)\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,Grid中弹出窗口。(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\t\n\t\t+示例3,TriggerBox弹出窗口。(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Ftriggerbox.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\t\n\t\t\t-在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target\u003Cem\u003E属性\u003C\u002Fem\u003E即可。\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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex,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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar\u003Cem\u003E属性\u003C\u002Fem\u003E用于隐藏滚动条(IE\u002FFirefox)。\n\t\n\t\n\t\n+2008-07-24 v0.3 beta11\n\t-web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormO\u003Cem\u003Eff\u003C\u002Fem\u003EsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加O\u003Cem\u003Eff\u003C\u002Fem\u003EsetRight\u003Cem\u003E属性\u003C\u002Fem\u003E [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个\u003Cem\u003E属性\u003C\u002Fem\u003E,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-去掉DropDownList控件的Text\u003Cem\u003E属性\u003C\u002Fem\u003E(强制性),可以通过设置SelectedValue来设置选中哪一项 [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_database.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\t-ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确\u003Cem\u003E解\u003C\u002Fem\u003E析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能\u003Cem\u003E解\u003C\u002Fem\u003E决\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,从而实现\u003Cem\u003EFF\u003C\u002Fem\u003E和IE下样式的统一。\n\t\t-刚看到old9的\u003Cem\u003E解\u003C\u002Fem\u003E决方案:把“差旅交通费”改成“\u003Cspan style=\"margin-right: -1000px;\"\u003E差旅交通费\u003C\u002Fspan\u003E”,在IE下和\u003Cem\u003EFF\u003C\u002Fem\u003E下的都不换行,:-)\n\t-Link\u003Cem\u003EButton\u003C\u002Fem\u003E增加OnClick事件 [feedback:huihuang]。[fixed]\n\t-Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed]\n\t+增加树控件(Tree)(示例在tree2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[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中放置Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在ContentPanel中渲染Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。\n\t\t-现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。\n\t+IE6下,在应用\u003Cem\u003EAsp\u003C\u002Fem\u003E.NetAjax后,Form中字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。\n\t\t-最后发现IE6下应用\u003Cem\u003EAsp\u003C\u002Fem\u003E.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master 页面。\n\t+集成的\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed]\n\t\t-\u003Cem\u003E解\u003C\u002Fem\u003E决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法\u003Cem\u003E解\u003C\u002Fem\u003E决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();),\n\t\t 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的\u003Cem\u003E解\u003C\u002Fem\u003E决这个重大的BUG很是欣喜。\n\t\n\t\n\t\n+2008-07-14 v0.3 beta6\n\t-增加FlashObject控件。[fixed]\n\t-PageLoading增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleFadeOut\u003Cem\u003E属性\u003C\u002Fem\u003E(默认false),可以启用淡出效果。[fixed]\n\t-Accordion选中样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+Grid增加\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EelayRender\u003Cem\u003E属性\u003C\u002Fem\u003E(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed]\n\t\t-因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置\"\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EelayRender=false\"。\n\t-改变Grid中静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。\n\t+如果在编辑页面使用\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fajax_editor.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-这是由于ajax后执行的javascript中不能有return false语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.\u003Cem\u003Easp\u003C\u002Fem\u003Ex) [feedback:xmzhu]。[fixed]\n\t\t-在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-弹出Window默认显示的错误页面,\u003Cem\u003E解\u003C\u002Fem\u003E决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是\"#\"。[fixed]\n\t+弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例中alert\\alert_1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和alert\\alert_2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-点击提交按钮后变成灰色不可再次点击(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_click_gray.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[feedback:jima]。[fixed]\n\t+增加Menu、MenuText、MenuSeparator、Menu\u003Cem\u003EButton\u003C\u002Fem\u003E、MenuHyperLink控件,用于按钮的下拉菜单(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_menu.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-增加Split\u003Cem\u003EButton\u003C\u002Fem\u003E控件。[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四个\u003Cem\u003E属性\u003C\u002Fem\u003E,示例在form_compare.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t+TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在radio.\u003Cem\u003Easp\u003C\u002Fem\u003Ex) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[feedback:jima]。[fixed]\n\t+表单字段\u003Cem\u003EEnab\u003C\u002Fem\u003Ele=false时显示颜色太浅 [feedback:jima]。[fixed]\n\t\t-覆盖缺省样式的.x-item-disab\u003Cem\u003Eled\u003C\u002Fem\u003E,设置不透明。\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 如果 \u003Cem\u003EEnab\u003C\u002Fem\u003EleTextBox = true,则不能将Text回发(这是html的限制)。[fixed]\n\t\t-最后的\u003Cem\u003E解\u003C\u002Fem\u003E决方案居然是设置 readonly=true,同时更改\u003Cem\u003E属性\u003C\u002Fem\u003E为 Readonly(示例在textbox2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-增加 Data\u003Cem\u003EEnab\u003C\u002Fem\u003EleSelectField \u003Cem\u003E属性\u003C\u002Fem\u003E,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-Link\u003Cem\u003EButton\u003C\u002Fem\u003E和Grid的Link\u003Cem\u003EButton\u003C\u002Fem\u003EField增加\u003Cem\u003EEnab\u003C\u002Fem\u003Ele\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在hyperlink.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和grid.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加UpdatePanelConnector控件,支持在布局构建的页面使用\u003Cem\u003EAsp\u003C\u002Fem\u003E.net Ajax。[fixed]\n\t\t-使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。\n\t\t-示例在ajax3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fcontent_page4.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t\t-示例content_page3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为false。[fixed]\n\t\t-使用GroupPanel的地方需要手工添加AutoHeight=\"true\"\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t+增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-也可以在ContentPanel中放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在Site.master)。[fixed]\n\t+支持\u003Cem\u003EAsp\u003C\u002Fem\u003E.net ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在ContentPanel中使用,示例在ajax1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fcontent_ajax2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex中。\n\t\t-对于使用布局构建的页面(比如content_page1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)还不能使用\u003Cem\u003EAsp\u003C\u002Fem\u003E.net ajax,因为页面是整体渲染的,先放弃。\n\t\n\t\n\t\n+2008-07-02 v0.2 beta12\n\t+关闭前提示当前页面已经被修改(示例在content_page1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-支持Iframe内按钮和window右上角关闭按钮。\n\t\t-删除CloseAction\u003Cem\u003E属性\u003C\u002Fem\u003E,可以在后台通过OnClientClose\u003Cem\u003EButton\u003C\u002Fem\u003EClick\u003Cem\u003E属性\u003C\u002Fem\u003E指定(为了和iframe中做法一致)。\n\t+iframe中的alert\u002Fconfirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed]\n\t\t-在Firefox下还有问题。[fix pending]\n\t+排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。\n\t\t-可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed]\n\t-可以在ContentPanel中放置用户控件(示例在page_usercontrol.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-Grid的数据库分页需要增加\u003Cem\u003E属性\u003C\u002Fem\u003EIsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-Grid中的Link\u003Cem\u003EButton\u003C\u002Fem\u003EField设置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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例)。\n\t\t-Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField\u003Cem\u003E属性\u003C\u002Fem\u003E(一个Grid只能有一个Column指定此\u003Cem\u003E属性\u003C\u002Fem\u003E),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\t-切换分页时清空选中的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的\u003Cem\u003E属性\u003C\u002Fem\u003E [feedback:xmzhu] (示例在grid_prerowdatabound.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField\u003Cem\u003E属性\u003C\u002Fem\u003E,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体中的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-在simpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex中: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-去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleClientPaging和\u003Cem\u003EEnab\u003C\u002Fem\u003EleClientSort\u003Cem\u003E属性\u003C\u002Fem\u003E,客户端排序和客户端分页在\u003Cem\u003EASP\u003C\u002Fem\u003E.NET应用中会有很多问题(主要是状态保持的问题)。\n\t\t+\u003Cem\u003EEnab\u003C\u002Fem\u003EleServerSort改名AllowSorting。(示例在grid_sorting.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\n\t\t\t-使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数中重新绑定数据。\n\t\t+增加AllowPaging\u003Cem\u003E属性\u003C\u002Fem\u003E。(示例在grid_paging.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\n\t\t\t-使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数中Grid1.PageIndex = e.NewPageIndex;OK。\n\t\t+数据库分页支持。(示例在grid_database_paging.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\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-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2190657-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","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-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"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-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fedu.csdn.net\u002Fcourse\u002Fdetail\u002F27122","title":"\u003Cem\u003Easp\u003C\u002Fem\u003E获取微信公众号网页授权和用户信息(code、access_token、openid等)","desc":"讲\u003Cem\u003E解\u003C\u002Fem\u003E用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。获取code、access_token、openid、用户昵称、地区、性别、头像等官方文档https:\u002F\u002Fdevelopers.weixin.qq.com\u002Fdoc\u002Fo\u003Cem\u003Eff\u003C\u002Fem\u003Eiaccount\u002FOA_Web_Apps\u002FWeb_Developer_Tools.html#1开发步骤1、引导用户进入授权页面同意授权,获取code2、通过code换取网页授权access_token(与基础支持中的access_token不同)3、如果需要,开发者可以刷新网页授权access_token,避免过期4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)\u003Cem\u003Easp\u003C\u002Fem\u003E获取微信公众号网页授权和用户信息(code、access_token、openid等)01-\u003Cem\u003Easp\u003C\u002Fem\u003E获取微信公众号网页授权和用户信息演示02-\u003Cem\u003Easp\u003C\u002Fem\u003E获取远程网页内容03-官方文档概要04-获取用户同意授权05-拿到code后获取返回信息06-获取access_token内容07-获取微信用户openid数据08-获取微信用户的所有信息09-用户头像、昵称、区域、性别","createTime":"2019-12-18 12:05:33","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fedu.csdn.net\u002Fcourse\u002Fdetail\u002F27122\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fedu.csdn.net\u002Fcourse\u002Fdetail\u002F27122\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-course-2~default~OPENSEARCH~Rate-3-27122-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"course"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130","title":"Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet_v2.3.2_dll","desc":"Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet - ExtJS based \u003Cem\u003EASP\u003C\u002Fem\u003E.NET Controls with Full AJAX Support\n\t\nExt\u003Cem\u003EAsp\u003C\u002Fem\u003ENet是一组专业的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。\n\n支持的\u003Cem\u003E浏览器\u003C\u002Fem\u003E: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002Fext\u003Cem\u003Easp\u003C\u002Fem\u003E.net\u002F\n开源: http:\u002F\u002Fext\u003Cem\u003Easp\u003C\u002Fem\u003Enet.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列\u003Cem\u003E属性\u003C\u002Fem\u003EDataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。\n\t-修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。\n\t-增加土耳其语言资料文件(feedback:abdullaharslan)。\n\t-Grid的BoundField增加NullDisplayText\u003Cem\u003E属性\u003C\u002Fem\u003E,用于处理数据库中的null值,如果没有设置则默认为空字符串。\n\t-修正DatePicker中的一个bug(31\u002F01\u002F2010将会返回NULL)使用DateFormatString来生成SelectedDate\u003Cem\u003E属性\u003C\u002Fem\u003E(feedback:OktaEndy)。\n\t-修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。\n\t-应用补丁#6593, #6621(feedback:vbelyaev)。\n\t+修正IE7下Grid分页速度慢(feedback:youwei, StevenGuan, hazardvn, gavindou, ttjacky)。\n\t\t-实际上IE7下所以的回发都慢,原因是客户端的Base64编码速度慢,已经使用encodeURIComponent来代替Base64编码。\n\t-俄语翻译(feedback:vbelyaev)。\n\t\n\t\n\n+2010-06-30 v2.3.1\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件将不在依赖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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例在单独\u003Cem\u003E浏览器\u003C\u002Fem\u003E打开后,不能弹出对话框的BUG。\n\t-隐藏示例首页最外层RegionPanel的边框ShowBorder=\"false\"。\n\t+集成Extjs最新版本v3.1.1。\n\t\t-增加一个新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时页面消失的BUG。\n\t\t-删除Panel的\u003Cem\u003EEnab\u003C\u002Fem\u003EleLightBackgroundColor\u003Cem\u003E属性\u003C\u002Fem\u003E,同时\u003Cem\u003EEnab\u003C\u002Fem\u003EleBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的控件Image\u003Cem\u003EButton\u003C\u002Fem\u003E具有和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的\u003Cem\u003EButton\u003C\u002Fem\u003E控件类似的行为(Ajax提交)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleTabCloseMenu\u003Cem\u003E属性\u003C\u002Fem\u003E,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision\u003Cem\u003E属性\u003C\u002Fem\u003E,用来控制小数点后的位数(需要设置NoDecimal=\"false\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会弹出确认对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正\u003Cem\u003EEnab\u003C\u002Fem\u003EleMaximize\u003Cem\u003E属性\u003C\u002Fem\u003E不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-删除\u003Cem\u003EButton\u003C\u002Fem\u003E控件的SystemIcon\u003Cem\u003E属性\u003C\u002Fem\u003E,比如以前这样定义SystemIcon=\"Close\",现在需要这样定义Icon=\"SystemClose\"。\n\t-WindowPosition默认居中,而不是黄金分割位置。\n\t+\u003Cem\u003EButton\u003C\u002Fem\u003E, Window等控件弹出位置\u003Cem\u003E属性\u003C\u002Fem\u003E的变化。\n\t\t-Window的Target\u003Cem\u003E属性\u003C\u002Fem\u003E由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_self\" -\u003E Target=\"Self\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003E, \u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003EField的ConfirmTarget\u003Cem\u003E属性\u003C\u002Fem\u003E由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。\n\t\t-Confirm.GetShowReference的最后一个参数target变为枚举类型。\n\t\t-Alert.GetShowReference中的showInParent参数也变为Target枚举类型。\n\t\t-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003E, \u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003EField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成Extjs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS问题。\n\t-修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加\u003Cem\u003E属性\u003C\u002Fem\u003EAjaxTimeout(单位秒,默认30秒)。\n\t-修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray\u003Cem\u003E属性\u003C\u002Fem\u003E的BUG(feedback:Violet)。\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E控件将不再自动拥有display:inline\u003Cem\u003E属性\u003C\u002Fem\u003E,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=\"float:left;\"\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleEdit\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-使用Hidden来显示隐藏Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件,而不是使用Visible\u003Cem\u003E属性\u003C\u002Fem\u003E(Visible目前设置为只读\u003Cem\u003E属性\u003C\u002Fem\u003E)。\n\t-使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。\n\t-增加TabStrip中Tab控件可关闭\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument中Icon\u003Cem\u003E属性\u003C\u002Fem\u003E映射错误(feedback:nopnop9)。\n\t-修正Htm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor不能编辑的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问题(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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex),如何通过简单的Javascript代码回发父页面(feedback:eroach)。\n\t-修正一些书写错误(feedback:bmck)。\n\t-从Region控件中删除SplitColor\u003Cem\u003E属性\u003C\u002Fem\u003E,增加CollapseMode, \u003Cem\u003EEnab\u003C\u002Fem\u003EleSplitTip, SplitTip, CollapsibleSplitTip\u003Cem\u003E属性\u003C\u002Fem\u003E(feedback:bmck)。\n\t-BorderPanel更名为RegionPanel。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加中国的省市县三级联动示例(data\u002Fshengshixian.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。\n\t-修正了启用AutoPostBack的Grid,其RowClick会覆盖Link\u003Cem\u003EButton\u003C\u002Fem\u003EField, 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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-修正Form不能自适应\u003Cem\u003E浏览器\u003C\u002Fem\u003E大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如Panel,Region,Tab等)增加AJAX\u003Cem\u003E属性\u003C\u002Fem\u003EIFrameUrl(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\u003Cem\u003E属性\u003C\u002Fem\u003E,增加GetCheckedNodes和GetCheckedNodeIDs函数。\n\t\t-删除ExpandedNodeIDArray\u003Cem\u003E属性\u003C\u002Fem\u003E,增加GetExpandedNodes和GetExpandedNodeIDs函数。\n\t\t-增加示例(data\u002Ftree_select_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的\u003Cem\u003E属性\u003C\u002Fem\u003ENodeId被重命名为NodeID,这是Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet中的一个命名约定。\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\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。\n\t-增加示例(other\u002Fcustom_postback.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:thebox)。\n\t\t-如何自定义Javascript脚本和C#处理函数来响应键盘事件。\n\t-为Tree增加AutoLeafIdentification\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-增加示例(tree_auto_leaf_identification.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:wdrabbit)。\n\t\n\t\n\n+2009-11-17 v2.1.4\n\t-修正Window的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。\n\t-部分Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件的设计时支持(会在后续版本中逐步完善)。\n\t-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时\u003Cem\u003E属性\u003C\u002Fem\u003E,和运行时是否保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack)。\n\t-为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E(feedback:dk3214)。\n\t+为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage\u003Cem\u003E属性\u003C\u002Fem\u003E,用于指定验证失败时提示信息。\n\t\t-为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。\n\t+为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。\n\t\t-增加示例:form\u002Fform_validate.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\n\t\n\t\n\n+2009-10-19 v2.1.3\n\t+增加支持在AJAX时改变的控件\u003Cem\u003E属性\u003C\u002Fem\u003E列表(\u002Fajax.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet支持原生的AJAX,也就是说控件的\u003Cem\u003E属性\u003C\u002Fem\u003E改变在AJAX过程中会反映到页面中,但并不是所有的控件\u003Cem\u003E属性\u003C\u002Fem\u003E都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例,使用验证图片(feedback:kedee)。\n\t-为Grid增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E和RowClick事件,示例在\u002Fdata\u002Fgrid_autopostback.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX\u003Cem\u003E属性\u003C\u002Fem\u003EReadOnly(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和GetCollapseAllNodesReference两个函数。\n\t-修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。\n\t-增加pt_BR语言,由Ujvari提供。\n\t+为所有Panel(包括Grid,Tree,Form等)增加枚举类型Icon,其中包含1700多个小图标。\n\t\t-如果Panel具有IconUrl\u003Cem\u003E属性\u003C\u002Fem\u003E,则IconUrl优先于Icon。\n\t\t-所有Icon的列表在icon.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t-为\u003Cem\u003EButton\u003C\u002Fem\u003E,MenuItem(Menu\u003Cem\u003EButton\u003C\u002Fem\u003E,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\n\t\n\n+2009-09-15 v2.1.1\n\t-修正不能动态修改AccordionPane\u003Cem\u003E属性\u003C\u002Fem\u003EItems的BUG。\n\t+为\u003Cem\u003EButton\u003C\u002Fem\u003E, Menu\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003E, Link\u003Cem\u003EButton\u003C\u002Fem\u003EField增加ConfirmTarget。\n\t\t-如果需要在父页面弹出确认对话框,需要设置ConfirmTarget=\"_parent\"(类似Window控件的Target=\"_parent\")。\n\t+为Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Alert.Show增加点击确定的JavaScript回调函数。\n\t\t-一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。\n\t\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Alert.Show(\"参数错误!\", String.Empty, Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.ActiveWindow.GetCloseReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002Fext\u003Cem\u003Easp\u003C\u002Fem\u003E.net\u002Fdata\u002Ftree_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\n\t-Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的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-\u003Cem\u003EButton\u003C\u002Fem\u003E的Pressed\u003Cem\u003E属性\u003C\u002Fem\u003E值能够正确的反映客户端的变化。\n\t-优化Tree控件的AJAX实现。\n\t+为页面的Form添加autocomplete=\"o\u003Cem\u003Eff\u003C\u002Fem\u003E\"\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-参考http:\u002F\u002Fwww.cnblogs.com\u002Fsanshi\u002Farchive\u002F2009\u002F09\u002F04\u002F1560146.html#1635830\n\t+添加对extjs3.0中所有语言的支持。\n\t\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet扩展的多语言包在js\\languages\\ext\u003Cem\u003Easp\u003C\u002Fem\u003Enet目录下,目前只有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-为Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。\n\t+在\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面中必须显示的声明控件的集合\u003Cem\u003E属性\u003C\u002Fem\u003E(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。\n\t\t-这将会影响所有的\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面,所以要特别关注。\n\t-重命名AccordionPanel为AccordionPane (这也是在\u003Cem\u003EAsp\u003C\u002Fem\u003E.net AJAX中使用的名称).\n\t+所有的面板默认有两个集合\u003Cem\u003E属性\u003C\u002Fem\u003E(Toolbars和Items).\n\t\t-尽管TabStrip, From, Tree, Accordion继承了Items\u003Cem\u003E属性\u003C\u002Fem\u003E,但是你并不能对其设置(此时Items是只读的).\n\t\t-这将会影响所有的\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面,一定要将工具条(Toolbars)和Items区分开来。\n\t-祝你生日快乐 - 小师妹妹。\n\n\n\n+2009-08-29 v2.0.8\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的一个BUG(定义Mappings\u003Cem\u003E属性\u003C\u002Fem\u003E时)。\n\t+PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。\n\t -这个BUG导致\u003Cem\u003EAsp\u003C\u002Fem\u003E.net compatibility中的示例无法完成,现在已经修正。\n\t+去除PageManager中方法AddAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls,增加\u003Cem\u003E属性\u003C\u002Fem\u003EAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls。\n\t -这个\u003Cem\u003E属性\u003C\u002Fem\u003E和\u003Cem\u003EButton\u003C\u002Fem\u003E得ValidateForms\u003Cem\u003E属性\u003C\u002Fem\u003E类似,可以查看\u003Cem\u003EAsp\u003C\u002Fem\u003E.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\u003Cem\u003E属性\u003C\u002Fem\u003E访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。\n -增加示例-如何将Grid控件导出为Excel(data\\grid_excel_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(feedback:503684912)。\n -如果TreeNode的\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E=\"false\",则此项变灰并且不会被选中(feedback:your568)。\n -修正TreeNode的\u003Cem\u003E属性\u003C\u002Fem\u003ENavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID\u003Cem\u003E属性\u003C\u002Fem\u003E来代替。\n\t\t-这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。\n\t\t-简单方便,示例可以参考 default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex 或者 other\\accordion_tree_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n \n \n\n+2009-08-14 v2.0.6\n\t-动态生成菜单实例(other\\menu_dynamic_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和other\\menu_dynamic2_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)(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+Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的提交按钮兼容问题(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的按钮AJAX提交,必须设置UseSubmitBehavior=\"false\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使一个\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjax为true即可,这是默认\u003Cem\u003E属性\u003C\u002Fem\u003E)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件了。\n\t\t-在Page_Load中设置了哪些需要在AJAX中更新的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件会在回发时保持状态,可以通过RemoveAjax\u003Cem\u003EAsp\u003C\u002Fem\u003EnetControls来去除不需要更新的控件。\n\t\t-示例在\u003Cem\u003Easp\u003C\u002Fem\u003Enet\\fckeditor_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和\u003Cem\u003Easp\u003C\u002Fem\u003Enet\\\u003Cem\u003Easp\u003C\u002Fem\u003Enet_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t\t-FCKEditor和上传控件兼容。示例在\u003Cem\u003Easp\u003C\u002Fem\u003Enet\\fileupload_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t-修正ToolbarText的文本在AJAX下更新的BUG。\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E的Pressed\u003Cem\u003E属性\u003C\u002Fem\u003E在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+和\u003Cem\u003EAsp\u003C\u002Fem\u003E.Net的Forms Authentication兼容[feedback:mgzhenhong]。\n\t\t-采用和\u003Cem\u003EAsp\u003C\u002Fem\u003E.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。\n\t\t-现在支持Response.Redirect,你可以选择Response.Redirect或者Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.PageContext.Redirect重定向页面,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E增加Type\u003Cem\u003E属性\u003C\u002Fem\u003E(\u003Cem\u003Ebutton\u003C\u002Fem\u003E,reset,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不显示(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下测试通过。以后Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet将不会对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();会导致\u003Cem\u003Ebutton\u003C\u002Fem\u003E的click事件无法响应(IE8下无此问题)。\n\t\t-目前先禁用IE6.0-7.0的QuickTips。\n\t-优化底层JavaScript。\n\t\n\t\n\t\n+2009-07-05 v2.0 beta1\n\t-更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet自身的CSS会紧挨着页面标签引入,这样在中自定义的样式可以覆盖Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet缺省样式。\n\t+Alert对话框会遮挡所有的Window窗口。\n\t\t-使用一个变通的方法\u003Cem\u003E解\u003C\u002Fem\u003E决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。\t\n\t-为所有按钮的左右增加5px的空白边距:.x-btn \u003Cem\u003Ebutton\u003C\u002Fem\u003E { margin: 0 5px !important; }。\n\t-因为下拉列表不可编辑,所以不能为空,如果不设置SelectedIndex或SelectedValue,则默认选中第一项。\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中的\u003Cem\u003EEnab\u003C\u002Fem\u003EleIFrame==false,则点击关闭按钮时报JS错误。[fixed]\n\t-页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例\u003Cem\u003Easp\u003C\u002Fem\u003Enet\u002Ffileupload.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t-Htm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor显示隐藏工具栏按钮不起作用,Htm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor目前不支持\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E和Readonly两个\u003Cem\u003E属性\u003C\u002Fem\u003E。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果弹出的窗口(Ext-Window)含有\u003Cem\u003EASP\u003C\u002Fem\u003E.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http:\u002F\u002Fextjs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果页面中存在\u003Cem\u003EASP\u003C\u002Fem\u003E.NET控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed]\n\t-页面上放置Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet-\u003Cem\u003EButton\u003C\u002Fem\u003E和\u003Cem\u003EASP\u003C\u002Fem\u003E.NET-\u003Cem\u003EButton\u003C\u002Fem\u003E,则点击Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet-\u003Cem\u003EButton\u003C\u002Fem\u003E时激发的是\u003Cem\u003EASP\u003C\u002Fem\u003E.NET-\u003Cem\u003EButton\u003C\u002Fem\u003E的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed]\n\t-Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet工程中使用\u003Cem\u003EASP\u003C\u002Fem\u003E.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件和\u003Cem\u003EASP\u003C\u002Fem\u003E.NET标准控件和平共处了。[fixed]\n\t\t-如果一个\u003Cem\u003EASP\u003C\u002Fem\u003E.NET按钮控件要使用Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet的原生AJAX,只需要设置\u003Cem\u003E属性\u003C\u002Fem\u003E UseSubmitBehavior=\"false\" 即可。\n\t\t-如果要在一次Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet的原生AJAX回发时更新\u003Cem\u003EASP\u003C\u002Fem\u003E.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:\u003Cem\u003Easp\u003C\u002Fem\u003Enet\u002F\u003Cem\u003Easp\u003C\u002Fem\u003Enet.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\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,底层代码优化。表示“获取当前页面中表单修改的确认提示框的脚本”。\n\t\t---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference\u002FGetConfirmFormModifiedCloseRefreshReference\u002FGetConfirmFormModifiedClosePostBackReference三个方法代替。\n\t\t-不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript\u003Cem\u003E属性\u003C\u002Fem\u003E,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的\u003Cem\u003EASP\u003C\u002Fem\u003EX页面中查找RegisterPageStateChangedScript\u003Cem\u003E属性\u003C\u002Fem\u003E,并删除,否则会运行错误!\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函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。\n\t\t---Window控件的OnClientClose\u003Cem\u003EButton\u003C\u002Fem\u003EClick\u003Cem\u003E属性\u003C\u002Fem\u003E如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。\n\t\t-如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。\n\t\t-Window控件的IFrameName\u003Cem\u003E属性\u003C\u002Fem\u003E是自动生成的,只读\u003Cem\u003E属性\u003C\u002Fem\u003E。(因为有可能所有的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的支持和部分内存泄漏问题的修正)。[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可能的取值为_self,_parent,_top,分别表示在当前窗口,父窗口,顶级窗口重定向[feedback:jqpeng]。\n\t-Image控件增加ImageWidth\u002FImageHeight\u002FImageCssStyle\u002FImageCssClass\u002FImageAlt\u003Cem\u003E属性\u003C\u002Fem\u003E[feedback:jqpeng]。[fixed]\n\t-发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-ContentPanel的ShowHeader和ShowBorder\u003Cem\u003E属性\u003C\u002Fem\u003E默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时显示不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack\u003Cem\u003E属性\u003C\u002Fem\u003E会在回发时保持(也即是说如果\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack=true,回发时没改变\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样一个效果,如果Tab1默认显示,Tab1的\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack=true,则页面加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed]\n\t\t-需要替换新的blowery.Web.HttpCompress.dll,\u003Cem\u003E解\u003C\u002Fem\u003E决方案见http:\u002F\u002Fpohee.com\u002Fit\u002Fhttp-compression-in-\u003Cem\u003Easp\u003C\u002Fem\u003Enet-20\u002F。\n\t+DropDownList优化。[fixed]\n\t\t-去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleFirstItem\u002FFirstItemText\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.Insert(0, new Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。\n\t\t\t-和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net中的保持一致,ListItem的Value值可以为空字符串。 也就是可以这样写DropDownList1.SelectedValue = \"\";\n\t\t-ListItemCollection增加重载函数Add(string text, string value),这样方便后台添加列表项。\n\t-处于布局内的容器控件(Layout!=LayoutType.Container),AutoHeight会自动设置为false(避免开发人员发生此类错误)。[fixed]\n\t-注意,控件的高度指的是整个控件的高度,包含BodyPadding(这和CSS中的height不同,CSS中的height是指内容的高度,除去padding\u002Fborder-width\u002Fmargin)。[fixed]\n\t+为所有控件\u003Cem\u003E属性\u003C\u002Fem\u003E增加在VS中的智能提示。[fixed]\n\t\t-需要将Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.XML和Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。\n\t+控件的\u003Cem\u003E属性\u003C\u002Fem\u003E如果是枚举类型,如果此\u003Cem\u003E属性\u003C\u002Fem\u003E可以不取值,则默认为None。[fixed]\n\t\t-TriggerIconType.Default -\u003E TriggerIconType.None\n\t\t-SystemIconType.Empty -\u003E SystemIconType.None\n\t\t-RegexPattern.USER_DEFINED -\u003E RegexPattern.None\n\t-表单验证\u003Cem\u003E属性\u003C\u002Fem\u003E名称变化(ValueToCompare-\u003ECompareValue,ControlToCompare-\u003ECompareControl)。[fixed]\n\t+注意:一个\u003Cem\u003E属性\u003C\u002Fem\u003E可以拥有多个值的情况。[fixed]\n\t\t-\u003Cem\u003E属性\u003C\u002Fem\u003E和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。\n\t\t-其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。\n\t+AccordionLink实现为控件。[fixed]\n\t\t-可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(Accordion-\u003EAccordionLink)(示例在other\u002Faccordion_links_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex,other\u002Faccordion_links_run_iframe_htm)[feedback:jima]。\n\t+确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form\u002Fform_dynamic_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-10-15 v1.2 beta5\n\t-验证表单字段的ValueToCompare\u003Cem\u003E属性\u003C\u002Fem\u003E,为字符串时会出错的BUG。[fixed]\n\t+优化下拉列表。[fixed]\n\t\t-验证下拉列表时,应该取ListItem的Value\u003Cem\u003E属性\u003C\u002Fem\u003E进行验证,而不是Text\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyText\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-ListItem启用\u003Cem\u003EEnab\u003C\u002Fem\u003EleSelect和SimulateTreeLevel\u003Cem\u003E属性\u003C\u002Fem\u003E,这样就可以直接在前台(\u003Cem\u003EASP\u003C\u002Fem\u003EX)中设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleSimulateTree\u003Cem\u003E属性\u003C\u002Fem\u003E(默认为false),如果设置了DataSimulateTreeLevelField,则自动将\u003Cem\u003EEnab\u003C\u002Fem\u003EleSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+\u003Cem\u003EEnab\u003C\u002Fem\u003EleLargeHeader\u003Cem\u003E属性\u003C\u002Fem\u003E对所有容器的效果一样,Accordion的\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003EleLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other\u002Faccordion_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-Accordion去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleHightlight\u003Cem\u003E属性\u003C\u002Fem\u003E,AccordionPanel增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleHightlight\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-影响以前使用Box的应用,需要将Accordion的\u003Cem\u003E属性\u003C\u002Fem\u003E去掉,然后为每个AccordionPanel增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleLargeHeader和\u003Cem\u003EEnab\u003C\u002Fem\u003EleHightlight\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+AccordionPanel增加Links\u003Cem\u003E属性\u003C\u002Fem\u003E,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other\u002Faccordion_links_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上标签。\n\t\t-适当增大AccordionPanel中链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少\u003Cem\u003EASP\u003C\u002Fem\u003EX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在\u003Cem\u003EASP\u003C\u002Fem\u003EX页切换到“设计时”,方便\u003Cem\u003E属性\u003C\u002Fem\u003E的更改和事件处理函数的添加)。[fixed]\n\t\t-Panel\u002FGroupPanel\u002FContentPanel\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain\u003Cem\u003E属性\u003C\u002Fem\u003E,增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form中动态添加控件的BUG,现在form\u002Fform_dynamic_run.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordionPanel\u002FGroupPanel\u002FPanel\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)\u003Cem\u003E属性\u003C\u002Fem\u003E和Grid的Rows\u003Cem\u003E属性\u003C\u002Fem\u003E(GridRowCollection)。\n\t\t-保留TabStrip的Tabs(TabCollection)\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-保留PageLayout\u002FBorderLayout的Regions(RegionCollection)\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-预祝今晚神七发射成功。\n\t\n\t\n\t\n+2008-09-22 v1.2 beta2\n\t+Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对Grid进行多次删除添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002F\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FHyperLink\u002FLabel\u002FImage\u002FLink\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FTextBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FTextArea\u002FHtm\u003Cem\u003ElEd\u003C\u002Fem\u003Eitor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002FRadio\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FRadio\u003Cem\u003EButton\u003C\u002Fem\u003EList\u002FDropDownList\n\t\t-Grid\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLink\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FHyperLink增加一些Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003E。[fixed]\n\t+隐藏的方式由HideMode\u003Cem\u003E属性\u003C\u002Fem\u003E控制Visibility\u002FO\u003Cem\u003Eff\u003C\u002Fem\u003Esets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm中隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。\n\t-ToolbarText\u002FToolbarFill\u002FToolbarSeparator在\u003Cem\u003EASP\u003C\u002Fem\u003EX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed]\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E去除MarginRight\u003Cem\u003E属性\u003C\u002Fem\u003E(可以通过CssStyle=\"margin-right:5px;\"达到相同的效果)[fixed]\n\t\n\t\n\t\n+2008-09-09 v1.1\n\t+Toolbar去除IsPageMenu\u003Cem\u003E属性\u003C\u002Fem\u003E,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed]\n\t\t-网报:CssClass=\"toolbar-pagemenu\" CssStyle=\"border:0px;\",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(..\u002Fimages\u002Fpagemenu_toolbar_background.gif) repeat-x left top;}。\n\t-Region去除默认的Layout=Fit,如果希望Region使用Fit\u002FAnchor\u002FColumn\u002FRow等布局的话,需要手工指定。[fixed]\n\t-ToolbarSeparator\u002FToolbarFill在Ajax更新Hidden\u003Cem\u003E属性\u003C\u002Fem\u003E的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-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FMenuHyperLink增加HideOnClick\u003Cem\u003E属性\u003C\u002Fem\u003E,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick=\"false\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-Menu\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FMenuHyperLink\u002FMenuSeparator\u002FMenuText增加Hidden\u003Cem\u003E属性\u003C\u002Fem\u003E(此\u003Cem\u003E属性\u003C\u002Fem\u003E是Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003E,如果需要在Ajax时显示隐藏菜单,请使用此\u003Cem\u003E属性\u003C\u002Fem\u003E而不是Visible\u003Cem\u003E属性\u003C\u002Fem\u003E)。[fixed]\n\t+大部分的Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件增加Hidden\u003Cem\u003E属性\u003C\u002Fem\u003E(少数几个控件没有此\u003Cem\u003E属性\u003C\u002Fem\u003E:Menu),这样在Ajax时可以显示隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=false的\u003Cem\u003E属性\u003C\u002Fem\u003E不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet改造强烈依赖于此\u003Cem\u003E属性\u003C\u002Fem\u003E,这个版本发布后可以继续。\n\t\t-网报中唯一没有用到Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageContext.Redirect支持普通页面转向和Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax下页面转向。[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-\u003Cem\u003E解\u003C\u002Fem\u003E决方法:testValue += '';if(domValue.split(',').indexOf(testValue) \u003E= 0){ok}。\n\t-DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed]\n\t-\u003Cem\u003EButton\u003C\u002Fem\u003E\u002FMenu\u003Cem\u003EButton\u003C\u002Fem\u003E增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003EOnClientClick [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\u002FData\u003Cem\u003EEnab\u003C\u002Fem\u003EleSelectField等\u003Cem\u003E属性\u003C\u002Fem\u003E的值,否则Ajax回发时会出错)。[fixed]\n\t-UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用\u003Cem\u003EAsp\u003C\u002Fem\u003EnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的控件HiddenField,而是使用Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet的HiddenField,因为\u003Cem\u003EAsp\u003C\u002Fem\u003E.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList中项如果存在汉字,则会换行的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,则在页面上方会有空白(可以通过设置\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EeferredRender=false\u003Cem\u003E解\u003C\u002Fem\u003E决,但会减慢页面的加载速度),现在已经\u003Cem\u003E解\u003C\u002Fem\u003E决这个问题。[fixed]\n\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList去除\u003Cem\u003EEnab\u003C\u002Fem\u003EleBackgroundColor\u002F\u003Cem\u003EEnab\u003C\u002Fem\u003EleLightBackgroundColor\u003Cem\u003E属性\u003C\u002Fem\u003E,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed]\n\t-Web.config中增加配置项FormLabelWidth=\"80\"(默认为80),同时PageManager增加FormLabelWidth\u003Cem\u003E属性\u003C\u002Fem\u003E用来控制页面上所有SimpleForm\u002FForm的表单字段标题的宽度。[fixed]\n\t+完善Ajax。[fixed]\n\t\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003ESelectedIndex(SelectedValue\u002FSelectedItem)。\n\t\t-DropDownList增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003Ele\u002FSelectedIndex(SelectedValue\u002FSelectedItem)\u002FDataSource。\n\t\t-Grid增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003EColumns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。\n\t\t-ToolbarText增加Ajax可更新\u003Cem\u003E属性\u003C\u002Fem\u003EText。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EeferredRender\u003Cem\u003E属性\u003C\u002Fem\u003E(是否启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed]\n\t+安全的Ajax设计。[fixed]\n\t\t-这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。\n\t\t-基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些\u003Cem\u003E属性\u003C\u002Fem\u003E的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjax\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t\t-整理支持Ajax的控件\u003Cem\u003E属性\u003C\u002Fem\u003E改变列表(所有被支持的\u003Cem\u003E属性\u003C\u002Fem\u003E改变都是安全的、快速的,所有不被支持的\u003Cem\u003E属性\u003C\u002Fem\u003E改变不会对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-控件设计的一个原则,凡是可以在客户端改变的\u003Cem\u003E属性\u003C\u002Fem\u003E都应该在回发时保持\u003Cem\u003E属性\u003C\u002Fem\u003E的状态。\n\t+完全抛弃\u003Cem\u003EAsp\u003C\u002Fem\u003E.NetAjax,Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件内置Ajax支持。[fixed]\n\t\t-这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和\u003Cem\u003EAsp\u003C\u002Fem\u003E.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的\u003Cem\u003E属性\u003C\u002Fem\u003E-\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的点击一个按钮弹出窗口,可以在\u003Cem\u003EButton\u003C\u002Fem\u003E的OnClick事件中设置Window1.Popup=true,也可以注册\u003Cem\u003EButton\u003C\u002Fem\u003E的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并\u003Cem\u003E解\u003C\u002Fem\u003E析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax的限制。\n\t\t\t-只对Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件起作用,对\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件不起作用。\n\t\t\t-对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。\n\t\t\t-对改变控件的Visible\u003Cem\u003E属性\u003C\u002Fem\u003E会有错误。\n\t\t\t-Window控件的\u003Cem\u003E属性\u003C\u002Fem\u003E改变只有少数几个起作用(Popup,IFrameUrl)。\n\t-PageManager增加\u003Cem\u003E属性\u003C\u002Fem\u003E\u003Cem\u003EEnab\u003C\u002Fem\u003ElePageLoading和\u003Cem\u003EEnab\u003C\u002Fem\u003EleAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed]\n\t-Grid中的回发事件(主要是Link\u003Cem\u003EButton\u003C\u002Fem\u003EField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed]\n\t-Grid选中行的状态在第一次回发时不能保持的BUG。[fixed]\n\t\n\t\n\t\n+2008-08-26 v1.0\n\t+已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。\n\t\t-主要是父页面加载一个比较大的css文件(~100k),则每次打开iframe页面,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化弹出窗口中IFrame的显示速度。[fixed]\n\t\t-在当前页面弹出窗口需要~20ms,在父页面弹出窗口需要100~300ms。通过缓存弹出的窗口实例,从而第二次弹出窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor\u003Cem\u003E属性\u003C\u002Fem\u003E,默认的背景色是透明的。(在网报中需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加\u003Cem\u003E属性\u003C\u002Fem\u003ETheme、Language、FormMessageTarget、FormO\u003Cem\u003Eff\u003C\u002Fem\u003EsetRight等\u003Cem\u003E属性\u003C\u002Fem\u003E,这些\u003Cem\u003E属性\u003C\u002Fem\u003E可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed]\n\t\t-一个典型的应用是为每个用户设置不同的皮肤(根据用户\u003Cem\u003E浏览器\u003C\u002Fem\u003E中Cookie设置的值)(示例在default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-TreeNode增加\u003Cem\u003E属性\u003C\u002Fem\u003ESingleClickExpand,表示点击可切换节点的折叠展开状态。[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-全新的Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet.Examples(基础知识\u002F表单控件\u002F数据绑定\u002F容器布局\u002FIFrame框架)。[fixed]\n\t\n\t\n\t\n+2008-08-19 v0.4 beta6\n\t+PageManager增加两个\u003Cem\u003E属性\u003C\u002Fem\u003E(\u003Cem\u003EEnab\u003C\u002Fem\u003EleInlineStyleJavascript\u002FApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe\u002Fdefault.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和iframe\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList放在在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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-现在的\u003Cem\u003E解\u003C\u002Fem\u003E决方法是在初始化时:if(this.initialized){return;}this.initialized=true;\n\t+需要先回发页面再弹出IFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl\u003Cem\u003E属性\u003C\u002Fem\u003E,因为这些\u003Cem\u003E属性\u003C\u002Fem\u003E是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。\n\t\t-另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-点击关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。[fixed]\n\t+Radio\u003Cem\u003Ebutton\u003C\u002Fem\u003Elist显示有重影(示例在radio.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal\u003Cem\u003E属性\u003C\u002Fem\u003E,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[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,也即是不保持状态。此问题\u003Cem\u003E解\u003C\u002Fem\u003E决。(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面,iexplorer占内存68.368M。\n\t\t-内存存在泄漏时,点击iframe\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面8次后iexplorer占118.792M内存。\n\t\t-修正后,点击iframe\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面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的\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"\u003Cem\u003E解\u003C\u002Fem\u003E决)。[fixed]\n\t+页面正在加载的提示尽早的显示出来。[fixed]\n\t\t-首先在执行js来完成页面渲染之前延迟5ms,以便\u003Cem\u003E浏览器\u003C\u002Fem\u003E把当前页面内容显示出来。\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_Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet目录下的页面应该为.\u002FFE_ApplyEditor.\u003Cem\u003Easp\u003C\u002Fem\u003Ex或~\u002FPages_Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet\u002FFE_ApplyEditor.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed]\n\t-\u003Cem\u003Ebutton\u003C\u002Fem\u003E_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex默认会加载form.\u003Cem\u003Easp\u003C\u002Fem\u003Ex页面(Window控件的BUG)。[fixed]\n\t-Window中的保存并关闭按钮和\u003Cem\u003EAsp\u003C\u002Fem\u003E.netAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到页面的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-08-05 v0.4 beta1\n\t-DropDownList去除Traditional\u003Cem\u003E属性\u003C\u002Fem\u003E,和传统的\u003Cem\u003EAsp\u003C\u002Fem\u003E.net控件一样不可编辑。[fixed]\n\t-DropDownList增加SelectedText\u003Cem\u003E属性\u003C\u002Fem\u003E(去除了模拟树时通过SelectedItem.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-一种\u003Cem\u003E解\u003C\u002Fem\u003E决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。\n\t\t-另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的\u003Cem\u003E属性\u003C\u002Fem\u003E(会在每次页面回发(包含ajax回发)时注册脚本)(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在onreadyscript.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。\n\t-每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的\u003Cem\u003E属性\u003C\u002Fem\u003E出现)。[fixed]\n\t-TextField等表单字段增加Readonly\u003Cem\u003E属性\u003C\u002Fem\u003E。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和\u003Cem\u003EAsp\u003C\u002Fem\u003E.net Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fpage2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\n\t\t\t-虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个\u003Cem\u003E属性\u003C\u002Fem\u003E(Target=\"_parent\"),就完成了两种框架的转换,是不是很酷。\n\t\t\t-显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(A)\u002Fpage2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(B)\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,Grid中弹出窗口。(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fpage3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\t\n\t\t+示例3,TriggerBox弹出窗口。(default.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Ftriggerbox.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)\t\n\t\t\t-在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target\u003Cem\u003E属性\u003C\u002Fem\u003E即可。\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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex,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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar\u003Cem\u003E属性\u003C\u002Fem\u003E用于隐藏滚动条(IE\u002FFirefox)。\n\t\n\t\n\t\n+2008-07-24 v0.3 beta11\n\t-web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormO\u003Cem\u003Eff\u003C\u002Fem\u003EsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加O\u003Cem\u003Eff\u003C\u002Fem\u003EsetRight\u003Cem\u003E属性\u003C\u002Fem\u003E [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个\u003Cem\u003E属性\u003C\u002Fem\u003E,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-去掉DropDownList控件的Text\u003Cem\u003E属性\u003C\u002Fem\u003E(强制性),可以通过设置SelectedValue来设置选中哪一项 [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_database.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\t-ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确\u003Cem\u003E解\u003C\u002Fem\u003E析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能\u003Cem\u003E解\u003C\u002Fem\u003E决##差旅交通费在IE和Firefox下显示的不同效果。\n\t\t-但是通过用来代替,从而实现\u003Cem\u003EFF\u003C\u002Fem\u003E和IE下样式的统一。\n\t\t-刚看到old9的\u003Cem\u003E解\u003C\u002Fem\u003E决方案:把“差旅交通费”改成“差旅交通费”,在IE下和\u003Cem\u003EFF\u003C\u002Fem\u003E下的都不换行,:-)\n\t-Link\u003Cem\u003EButton\u003C\u002Fem\u003E增加OnClick事件 [feedback:huihuang]。[fixed]\n\t-Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed]\n\t+增加树控件(Tree)(示例在tree2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[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中放置Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在ContentPanel中渲染Ext\u003Cem\u003EAsp\u003C\u002Fem\u003ENet控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。\n\t\t-现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。\n\t+IE6下,在应用\u003Cem\u003EAsp\u003C\u002Fem\u003E.NetAjax后,Form中字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。\n\t\t-最后发现IE6下应用\u003Cem\u003EAsp\u003C\u002Fem\u003E.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master 页面。\n\t+集成的\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed]\n\t\t-\u003Cem\u003E解\u003C\u002Fem\u003E决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法\u003Cem\u003E解\u003C\u002Fem\u003E决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();),\n\t\t 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的\u003Cem\u003E解\u003C\u002Fem\u003E决这个重大的BUG很是欣喜。\n\t\n\t\n\t\n+2008-07-14 v0.3 beta6\n\t-增加FlashObject控件。[fixed]\n\t-PageLoading增加\u003Cem\u003EEnab\u003C\u002Fem\u003EleFadeOut\u003Cem\u003E属性\u003C\u002Fem\u003E(默认false),可以启用淡出效果。[fixed]\n\t-Accordion选中样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+Grid增加\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EelayRender\u003Cem\u003E属性\u003C\u002Fem\u003E(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed]\n\t\t-因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置\"\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003EleD\u003C\u002Fem\u003EelayRender=false\"。\n\t-改变Grid中静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加\u003Cem\u003EEnab\u003C\u002Fem\u003ElePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。\n\t+如果在编辑页面使用\u003Cem\u003EAsp\u003C\u002Fem\u003ENetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fajax_editor.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-这是由于ajax后执行的javascript中不能有return false语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.\u003Cem\u003Easp\u003C\u002Fem\u003Ex) [feedback:xmzhu]。[fixed]\n\t\t-在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-弹出Window默认显示的错误页面,\u003Cem\u003E解\u003C\u002Fem\u003E决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是\"#\"。[fixed]\n\t+弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例中alert\\alert_1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和alert\\alert_2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-点击提交按钮后变成灰色不可再次点击(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_click_gray.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[feedback:jima]。[fixed]\n\t+增加Menu、MenuText、MenuSeparator、Menu\u003Cem\u003EButton\u003C\u002Fem\u003E、MenuHyperLink控件,用于按钮的下拉菜单(示例在\u003Cem\u003Ebutton\u003C\u002Fem\u003E_menu.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-增加Split\u003Cem\u003EButton\u003C\u002Fem\u003E控件。[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四个\u003Cem\u003E属性\u003C\u002Fem\u003E,示例在form_compare.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t+TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-Radio\u003Cem\u003EButton\u003C\u002Fem\u003EList增加AutoPostBack\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在radio.\u003Cem\u003Easp\u003C\u002Fem\u003Ex) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[feedback:jima]。[fixed]\n\t+表单字段\u003Cem\u003EEnab\u003C\u002Fem\u003Ele=false时显示颜色太浅 [feedback:jima]。[fixed]\n\t\t-覆盖缺省样式的.x-item-disab\u003Cem\u003Eled\u003C\u002Fem\u003E,设置不透明。\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 如果 \u003Cem\u003EEnab\u003C\u002Fem\u003EleTextBox = true,则不能将Text回发(这是html的限制)。[fixed]\n\t\t-最后的\u003Cem\u003E解\u003C\u002Fem\u003E决方案居然是设置 readonly=true,同时更改\u003Cem\u003E属性\u003C\u002Fem\u003E为 Readonly(示例在textbox2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-增加 Data\u003Cem\u003EEnab\u003C\u002Fem\u003EleSelectField \u003Cem\u003E属性\u003C\u002Fem\u003E,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-Link\u003Cem\u003EButton\u003C\u002Fem\u003E和Grid的Link\u003Cem\u003EButton\u003C\u002Fem\u003EField增加\u003Cem\u003EEnab\u003C\u002Fem\u003Ele\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在hyperlink.\u003Cem\u003Easp\u003C\u002Fem\u003Ex和grid.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加UpdatePanelConnector控件,支持在布局构建的页面使用\u003Cem\u003EAsp\u003C\u002Fem\u003E.net Ajax。[fixed]\n\t\t-使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。\n\t\t-示例在ajax3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fcontent_page4.\u003Cem\u003Easp\u003C\u002Fem\u003Ex。\n\t\t-示例content_page3.\u003Cem\u003Easp\u003C\u002Fem\u003Ex中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为false。[fixed]\n\t\t-使用GroupPanel的地方需要手工添加AutoHeight=\"true\"\u003Cem\u003E属性\u003C\u002Fem\u003E。\n\t+增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-也可以在ContentPanel中放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId\u003Cem\u003E属性\u003C\u002Fem\u003E(示例在Site.master)。[fixed]\n\t+支持\u003Cem\u003EAsp\u003C\u002Fem\u003E.net ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在ContentPanel中使用,示例在ajax1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fcontent_ajax2.\u003Cem\u003Easp\u003C\u002Fem\u003Ex中。\n\t\t-对于使用布局构建的页面(比如content_page1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)还不能使用\u003Cem\u003EAsp\u003C\u002Fem\u003E.net ajax,因为页面是整体渲染的,先放弃。\n\t\n\t\n\t\n+2008-07-02 v0.2 beta12\n\t+关闭前提示当前页面已经被修改(示例在content_page1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-支持Iframe内按钮和window右上角关闭按钮。\n\t\t-删除CloseAction\u003Cem\u003E属性\u003C\u002Fem\u003E,可以在后台通过OnClientClose\u003Cem\u003EButton\u003C\u002Fem\u003EClick\u003Cem\u003E属性\u003C\u002Fem\u003E指定(为了和iframe中做法一致)。\n\t+iframe中的alert\u002Fconfirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed]\n\t\t-在Firefox下还有问题。[fix pending]\n\t+排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t-可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。\n\t\t-可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed]\n\t-可以在ContentPanel中放置用户控件(示例在page_usercontrol.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-Grid的数据库分页需要增加\u003Cem\u003E属性\u003C\u002Fem\u003EIsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。[fixed]\n\t-如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.\u003Cem\u003Easp\u003C\u002Fem\u003Ex\u002Fsimpleform.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-Grid中的Link\u003Cem\u003EButton\u003C\u002Fem\u003EField设置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.\u003Cem\u003Easp\u003C\u002Fem\u003Ex示例)。\n\t\t-Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField\u003Cem\u003E属性\u003C\u002Fem\u003E(一个Grid只能有一个Column指定此\u003Cem\u003E属性\u003C\u002Fem\u003E),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t\t-切换分页时清空选中的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的\u003Cem\u003E属性\u003C\u002Fem\u003E [feedback:xmzhu] (示例在grid_prerowdatabound.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\n\t-DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField\u003Cem\u003E属性\u003C\u002Fem\u003E,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.\u003Cem\u003Easp\u003C\u002Fem\u003Ex)。\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-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"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-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"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-4-2726130-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fweixin_30674525\u002Farticle\u002Fdetails\u002F98827539","title":"\u003Cem\u003EAsp\u003C\u002Fem\u003E.net 火狐和IE的兼容性代码\u003Cem\u003E解\u003C\u002Fem\u003E析本篇文章来源于:开发学院 http:\u002F\u002Fedu.codepub.com 原文链接:http:\u002F\u002Fedu.codepub.com\u002F2010\u002F0308\u002F208...","desc":"png透明 AlphaImageLoader  filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(\u003Cem\u003Eenab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E=b\u003Cem\u003EEnab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E,sizingMethod=sSize,src=sURL)  \u003Cem\u003Eenab\u003C\u002Fem\u003E\u003Cem\u003Eled\u003C\u002Fem\u003E:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true:默认值。滤镜激活。false:滤镜被禁止。siz...","createTime":"2010-09-16 10:06:00","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_30674525\u002Farticle\u002Fdetails\u002F98827539\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_30674525\u002Farticle\u002Fdetails\u002F98827539\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-98827539-bbs-390947043.264^v3^pc_relevant_bbs_down_v2_opensearchbbsnew\\\",\\\"dist_request_id\\\":\\\"1715421290583_94329\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"}],"staffDOList":[{"id":null,"communityId":211,"username":"community_93","userNickname":"ASP.NET","roleCode":1,"status":1,"createUsername":"","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2021-05-12 18:07:05","updateTime":"2021-05-12 18:07:05","lastLoginTime":"2021-05-12 18:07:05"},{"id":null,"communityId":211,"username":"dotnetconf","userNickname":".Net开发者社区","roleCode":2,"status":1,"createUsername":"community_93","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2022-12-01 00:26:57","updateTime":"2022-12-01 00:26:57","lastLoginTime":"2022-12-01 00:26:57"},{"id":null,"communityId":211,"username":"weixin_41960540","userNickname":"R小R","roleCode":2,"status":1,"createUsername":"community_93","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Faa17748a52c84d88ba031f9895a4ea32_weixin_41960540.jpg!1","createTime":"2022-04-16 21:18:57","updateTime":"2022-04-16 21:18:57","lastLoginTime":"2022-04-16 21:18:57"}],"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\u002F390947043","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F390947043","typeId":"20680","hasIndex":false},"CFG":{"ALIPLAYER_VERSION":"v4","ALIPLAYER_H5_VERSION":"mobile_v1","ENV":"prod","ROOT_URL":"https:\u002F\u002Fcms-mall.csdn.net\u002F","VUE_APP_API_URL_SERVER":"http:\u002F\u002Fcms-community-api.internal.csdn.net\u002F","VUE_APP_API_URL":"https:\u002F\u002Fcms-api.csdn.net\u002F","LOGIN_URL":"https:\u002F\u002Fpassport.csdn.net\u002Faccount\u002Flogin","VUE_APP_DOMAIN_SKILL":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_DOMAIN_PATH":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_COMMUNITY_API_URL":"https:\u002F\u002Fcommunity-api.csdn.net\u002F","VUE_APP_CCLOUD_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fcommunity-cloud\u002Fv1\u002F","VUE_APP_SKILL_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fskilltree\u002Fapi\u002F","VUE_APP_SEARCH_PLUGIN_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fsearchplugin\u002F","VUE_APP_COMMUNITY_ASK_API_URL":"https:\u002F\u002Fmp-ask.csdn.net\u002F","VUE_APP_ME_URL":"https:\u002F\u002Fme.csdn.net\u002F","VUE_APP_CCLOUD_RESUME":"https:\u002F\u002Fbizapi.csdn.net\u002Fjob-api\u002F","VUE_APP_CCLOUD_MAIN":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_UC":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_BZP_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002F","VUE_APP_CCLOUD_START_API_URL":"https:\u002F\u002Fmp-action.csdn.net\u002F","VUE_APP_PRACTIVE":"https:\u002F\u002Fbizapi.csdn.net\u002Fdaily-practice\u002F","VUE_APP_CCLOUD_HOSTPATH":"https:\u002F\u002Fbbs.csdn.net\u002F"},"queries":{"pageId":[],"domain":["ccloud.csdn.net\u002Fccloud\u002Fdetail1"],"id":["390947043"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F390947043","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F390947043","active":0,"navBarFixed":false,"title":" \u003Casp:Button 的 Enabled属性,FF 跟 柯弄...浏览器,只支援一半怎么解 ?","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":211,"topicId":390947043},"keywords":"","description":"以下内容是CSDN社区关于 \u003Casp:Button 的 Enabled属性,FF 跟 柯弄...浏览器,只支援一半怎么解 ?相关内容,如果想了解更多关于.NET社区社区其他内容,请访问CSDN社区。"};</script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/runtime.3e5c09eb.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/common.7672e502.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/tpl/ccloud-detail/index.243a94d0.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>