asp.net的页面怎么弹出一个提示框,用于是否确认删除

zhanghui166 2010-05-21 05:42:56
前台在datalist里面有一个LinkButton,点击的时候后台删除一条记录,可没有任何提示,怎么在点击的时候弹出向下面图片一样的提示框。

我用这种方法可以弹出一个提示框,可不知道是啥意思。ScriptManager.RegisterStartupScript(hidden1, this.GetType(), "warning", "alert('感谢支持')", true);

能不能再后台弹出下面的框框,返回TRUE或者FALSE让我执行是否要删除啊。

...全文
2514 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
kay002 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lirenniao 的回复:]
C# code

<asp:ImageButton runat="server" ID="delete" CommandName="Delete"
OnClientClick="return confirm('确定要删除吗?')" ImageUrl="images/delete.gif" />
[/Quote]

+1
futrueing 2010-05-22
  • 打赏
  • 举报
回复
<asp:ImageButton runat="server" ID="delete" CommandName="Delete"
OnClientClick="return confirm('确定要删除吗?')" ImageUrl="" />
这个很好弄了
b87936260 2010-05-22
  • 打赏
  • 举报
回复
Respond.write("<script>window.confirm('是否删除?')</script>");
tao_jile 2010-05-22
  • 打赏
  • 举报
回复
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
.......
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除成功!');", true);
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除失败!');", true);


}
nextuntil 2010-05-22
  • 打赏
  • 举报
回复
OnClientClick="return confirm('确定要删除吗?')"
fanganer88 2010-05-22
  • 打赏
  • 举报
回复
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除成功!');", true);
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除失败!');", true);
灵雨飘零 2010-05-22
  • 打赏
  • 举报
回复
OnClientClick="return confirm('确定要删除吗?')"

以上很多都正解
dhttaso 2010-05-22
  • 打赏
  • 举报
回复
以上很多都正解
wuyq11 2010-05-21
  • 打赏
  • 举报
回复
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton btn = (LinkButton)e.Item.FindControl("lbl");
btn.Attributes.Add("onclick", "return confirm (\"确定要执行此操作吗?\");"); }
onclientClic="return confirm('确定删除吗')"
或 ClientScript.RegisterStartupScript(this.GetType(), "PleaseCheck", "if(confirm('确定删除吗'))document.getElementById('hf').value='1';else
document.getElementById('hf').value='0;",true);
if(hf.value.Equals("1"))
{

}
zhouwei7682719 2010-05-21
  • 打赏
  • 举报
回复
"alert('感谢支持')", 改成 "if(confirm('是否确认支持?')){window.close() }"
天下在我心 2010-05-21
  • 打赏
  • 举报
回复
在linkButton加个属性 OnClientClick="return confirm('确定要删除吗?')" 就可以,这个根据返回时true 或false决定执行 onclick事件
a365477312 2010-05-21
  • 打赏
  • 举报
回复
支持3楼的回答
huhanlinhhl 2010-05-21
  • 打赏
  • 举报
回复
你那些发就是JavaScript只不过这样写比直接response.write("<script>alert('感谢支持')</script>")要好!这样不会是的弹出提示框时页面变为空白!
cuidehuashow 2010-05-21
  • 打赏
  • 举报
回复
ImageButton imgbtn = (ImageButton)e.Row.FindControl("imgbtnDelete");
imgbtn.Attributes.Add("onclick", "return confirm('您确定要删除么?');");
我用的图片按钮做的、
zjw19 2010-05-21
  • 打赏
  • 举报
回复
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lkDelete = (LinkButton)e.Item.FindControl("lkDel");
lkDelete.Attributes.Add("onclick", "return confirm('你确定要删除该公告吗?')");
}
}

protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "delete")
{
int id = Convert.ToInt32(this.DataList1.DataKeys[e.Item.ItemIndex].ToString());
//EasyWeb.Blog.IDbTask.Iblog_placard blog_placard = EasyWeb.Blog.DALFactory.dblog_placard.Create();
dal.Delete(id);//这个是调用删除数据库里记录的方法,你自个写啊。
BindUser();//删完了数据再绑定一次。
}
}
骑猪看海 2010-05-21
  • 打赏
  • 举报
回复
<asp:LinkButton ID="del" runat="server" OnClientClick="return confirm('确定删除吗?')"></asp:LinkButton>
lirenniao 2010-05-21
  • 打赏
  • 举报
回复

<asp:ImageButton runat="server" ID="delete" CommandName="Delete"
OnClientClick="return confirm('确定要删除吗?')" ImageUrl="images/delete.gif" />
mohugomohu 2010-05-21
  • 打赏
  • 举报
回复
“此图片来自腾讯旗下搜索网站”
zhuhuazhengpei 2010-05-21
  • 打赏
  • 举报
回复
在Page_Load里加上这个,然后再删除的时候就会提示了。给分吧,ib_delete.Attributes.Add("onclick", "javascript:return window.confirm('您确定要删除该项吗?')")
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式 静态构造函数 忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object pool 泛型技巧系列:用泛型打造可复用的抽象工厂 体验.net2.0的优雅(四):Provider、策略、控制反转和依赖注入 泛型最佳实践 asp.net 2.0下嵌套masterpage页的可视化编辑 C# 2.0与泛型 动态调用对象的属性和方法——性能和灵活性兼备的方法 泛型技巧系列:用泛型打造可复用的抽象工厂 泛型技巧系列:如何提供类型参数之间的转换 .NET 2.0 泛型Quiz Visual Studio 2005体验泛型编程 C++ 泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼中的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 从NUnit中理解.NET自定义属性的应用(转载) 如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 我对J2EE和.NET的一点理解 难分难舍的DSO(一) InternalsVisibleToAttribute,友元程序集访问属性 Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup Object Click button only once in asp.net 2.0 Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP.Net中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及其他感应事件 动态控制Page页的Head信息 SubmitOncePage:解决刷新页面造成的数据重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) ASP.NET 2.0 控件 ASP.NET 2.0 验证控件新的功能 DataGridView中如何在textbox列中限制输入。 ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu ) 体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP.NET 2.0中使用webpart系列控件 ASP.NET 2.0 中实现跨页提交 新控件、管理外观、布局及其它用户体验 ASP.NET 2.0 缓存技术 (原创) asp.net 2.0中的theme主题覆盖问题 asp.net 2.0中利用app_offline.htm功能 .NET 2.0中的字符串比较 小试ASP.NET 2.0的兼容性 为 asp.net 2.0 的菜单控件增加 target 属性 ASP.NET 2.0 的内部变化 常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0) VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署 ASP.NET 2.0 Security FAQs Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression Builders 怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) asp.net 2.0 新特性 Visual Web Development 2005开发ASP.NET使用小技巧 ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! 将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 中的数据源控件 使用 ASP.NET 2.0 ObjectDataSource 控件 ASP.NET 2.0 的内部变化 使用SQL Cache Dependency 代替 Ibatisnet 提供的CacheModel ASP.NET 2.0中小心Profile命名冲突 使用ASP.NET 2.0 Profile存储用户信息[翻译] Level 200 [ASP.NET 2.0]PageParser.GetCompiledPageInstance中存在一个Bug 如何在DotNet 2的登录组件中检索用户的锁定状态及解锁? ASP.NET 2.0, 想说爱你不容易 SqlDataSource WEB控件:当DeleteCommandType= 遭遇 ASP.NET 2.0 只读 TextBox 回发后信息丢失的 bug asp.net2.0:扩展ImageButton控件定制自己需要的功能 ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换 ASP.NET2.0 ObjectDataSource的使用详解(1) ASP.NET2.0 ObjectDataSource的使用详解(2) TextDataSource(1) — DataSourceControl内幕 TextDataSource(2) — 翠花,上“数据” ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认中的主题外观 数据库开发 ADO.NET 通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 理解DataSet的数据缓存机制 存储过程 可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! 2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件表格 获取數据库表的前N条记录 几段SQL Server语句和存储过程 生成表中的数据的脚本 最详细的SQL注入相关的命令整理 Oracle Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser XCodeFactory2.0完全手册(中) XCodeFactory2.0完全手册(上) XCodeFactory3.0Beta1推出 ! SQL Server 2005 SQL Server 2005的几个新功能 在SQL Server 2005中解决死锁 在 SQL Server 2005 中查询表结构及索引 sql server 2005中的DDL触发器 在 SQL Server 2005 中使用表值函数来实现空间数据库 SQL Server 2005的30个最重要特点 同时安装sql2000和sql2005的经验 类如何与界面绑定 在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server) C# 获取数据库中某个某个表的创建脚本 DbHelperV2 - Teddy的通用数据库访问组件设计和思考 也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息[原创] 如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0时代,RSS你会用了吗?(技术实现总结) 知识集锦:三分钟全面了解 Blog 和 RSS C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, C#] 如何用RSS技术升级您的网站 RSS技术在行业中的应用三案例 RSS的力量 为自己的网站添加RSS功能 建立自己的RSS asp.net+c#+sql生成rss2.0代码 如何获取远程RSS内容? C#如何实现读取RSS VC# 2005 Screen Saver Starter kit里的Rss处理类分析 使用XmlHttp与Javascript实现对RSS的读取 WEB BUILDER中的动态页面生成 WebBulider 中的RSSWebpar — 建立自己的 RSS 阅读器 RSS 2.0规范 C#版简易RSS阅读器(新增读取OPML功能) C#版简易RSS阅读器 asp.net 页面中生成 RSS 2.0 提要 用 Ajax 和 RSS 攒个首页新闻 用RSS来整合内容以满足不同的需要 简单的在线RSS阅读器(原创) 用户自定义配置接点读取 通用方案 利用XmlDocument更新Xml文件中的数据 XML的特征以及一些用途 如何创建一个XML文件,然后创建一个与之关联的样式表文件? Rss为什么会兴起?什么时候会被替代? 遍历指定文件夹下所有的xml文件并动态生成HTML页面 通过XML来远程抓娶图片的代码 .Net1.0和2.0下 soap序列化和binary序列化的比较 NET中书写XML的一种简单方法 适用于IE浏览器及非IE浏览器的xmlhttp脚本 用实例说明如何用JavaScript生成XML XML驱动开发 XamlReader.Load(): Build Up Your Own XamlPad 如何理解xslt中模板调用 Web Service 从WEB SERVICE 上返回大数据量的DATASET MSMQ,Enterprise Service, DotNet Remoting,Web Service 的优缺点 动态调用web服务 Web服务最佳实践(翻译) HTTP协议下用Web Service上传大文件的解决方案 与大家分享一些Web Service的经验 Web Service Security --- Introduction XML Web Service 安全性 SOA 设计原则和 Web 服务中的数据传输 解决内网通过代理服务器访问外网部署WebService报错问题“请求因 HTTP 状态 407 失败” 对象与状态 Application Session 如何得到Sessionid的值 Session研习笔记 Cookie cookie 学习总结 ViewState ASP.NET 小技巧:重写 ViewState 的存储目的地,以提高页面性能 由重写ViewState存储目的而想到的 [总结]关于在线用户列表的统计! Persistent Strategy (1) - 问题定义与实现 Persistent Strategy (2) - Xml序列化的应用 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆 控件 DataGrid 简单实用的DATAGRID组件 为DataGrid创建自定义列控件(二) 为DataGrid创建自定义列控件(一) 为DataGrid创建自定义列控件(三) 在ASP.NET环境下完整的datagrid填充数据后界面动态显示填充方案 在dataGrid中拖动改变列宽度,在asp.net中 用javascript实现dataGrid表头排序 存储过程DataGrid分页及注意点 在后代码里创建DataGrid控件 为DataGrid自定义分页添加自定义导航和分页信息 如何利用DataGrid纵向显示数据? 如何用DataGrid实现类似DataList多列的效果 竖表转横表(支持多列) 竖表变横表(支持固定列) 通用分页控件(DataGrid,DataList,Repeater都可以用它来分页) 如何同时选择DataGrid的多行 DataGrid单元格移动变色,点击变色,双击取消颜色,排序. 分页管理器实现 oButton加入DataGrid模板列引起的问题。 将RadioButton加入到DataGrid模板列后单选简单实现 用c#实现将DataGrid中的数据导为microsoft office excel 2003 TreeView ASP.NET环境下完整的treeview使用类 C#加javaScripts实现选中树节点后显示节点内容(微软TreeView) treeview 的使用心得 FlyTreeView for ASP.NET 3.2 破解攻略 用Ajax技术让IE Web Control Tree View实现大数据量读取 我在使用C#中Treeview与解析XML遇到的问题! TreeView父子联动效果保持节点状态一致 Asp.Net 2.0 TreeView的Checkbox级联操作 DataList Html控件 table动态改变颜色包括一个边框 功能超强的表格(上下左右移动,添加删除行列,导出) 用户控件开发 ASP.NET 服务器控件授权 为控件添加自定义属性和事件 让你的控件属性注释支持多语言 自定义UserControl的属性为什么不能在设计时显示在属性窗口中 asp .net 服务器控件开发心得 今天你写控件了吗 --Asp.net服务器控件开发系列文章 汇总 将ASP.NET用户控件转化为自定义控件 TextBox 创建具有自验证功能的textbox控件 textbox上实现右键菜单 给FreeTextBox 3.0.5 添加上QQ和MSN表情 FreeTextBox中存在一个严重的安全漏洞 DOTNET2.0 的编辑器:WebHtmlEditor 1.5 Release提供在线演示和下载 FreeTextBox使用详解 (版本3.1.1) 弹出式选择文本控件 ASP.NET: Custom AutoCompleteTextBox WebControl [With Source Code] Button 水晶报表 水晶报表数据填充(一种推模式,两种拉模式)类库 RDLC报表(一) RDLC报表(二) 其他控件 让asp.net默认的上传组件支持进度条反映 HtmlTextWriter学习笔记 用户控件例码 ASP.net下的前台日历控件源代码(不刷新页面) ASP.net下DataGrid的单项选择控件 个ASP.Net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程 自动获取当前日期下一周的年月日代码 asp.net下的日历控件源代码 写了一个live.com的Gadget——农历日历 令你心动的Asp.net 开发中的MessageBox控件 WebForm的MessageBox类 复合控件开发系列之一 年月日三联动下拉框 下拉日期控件 客户端计时器控件(clientTimer)的c#源码 在线考试系统中卷面计时的一点思考 GridView GridView 控件使用不完全指南! GridView 控件使用不完全指南!(续一) ASP.NET2.0中Gridview中数据操作技巧 一套可嵌入或独立使用的翻页控件: WebPager(附源码) Web进度条的简单方案 ComponentArt WebUI3.0控件使用方法 在ASP.NET页面中使用SolpartMenu控件 共享两个做项目最常用功能操作的封装类 国内报表设计器的分析 基于Ajax的日期控件 缓存服务与性能优化 通过系统配置来提高ASP.NET应用程序的稳定性 通过系统配置来提高ASP.NET应用程序的稳定性(续) 异步加载图片,提高HTML性能 负载均衡环境下缓存处理 网站速度优化模块HttpCompressionModule [连载]Tuning .NET Performance [连载]Tuning .NET Performance [连载]Tuning .NET Performance 连载]Tuning .NET Performance 安全与验证 加密解密 使用证书来做RSA非对称式加密 自已做的一个加密软件,超好用而且加密强度极高,公布源码 身份权限审核 使用URL参数+Controls层实现网站用户权限管理 系统分析中大家是怎样设计系统的多级权限控制的?? 多级权限设置请教。 基于角色的权限控制 AspNetForums中基于角色的权限控制 asp.net页面如何控制页面依据不同用户权限有不可见、可见、编辑 三种操作权限? 请问在SmartClient应用中,如何做到科学的身份验证和权限分配?~~UP有分 做过权限管理和想做权限管理的人进来(附我的思路) 关于权限设计的探讨 Asp.net中基于Forms验证的角色验证授权 用户权限系统设计方案 权限控制系统的设计 统一用户及权限管理系统 权限系统:分散实现、关注变化 关于权限管理的系统的构思 EsbAOP应用--权限管理 asp.net能实现身份认证的EMAIL发送方法(c#版本) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(二) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(三) 权限系统概要(收集,整理) membership,想说爱你不容易 蛙蛙推荐:web下的授权简单解决方案 将权限引入系统的探索 数据库有效验证 浅谈在ASP.NET中数据有效性校验的方法 XML Schema Validator Class JSClientValidator-客户端javascript验证新模式 如果做到安全的系统之验证用户输入. 部署安全 查看贴子内容 CLI里面的秘密……(二)强命名、元数据以及文件结构(上半部分) Assembly学习心得 asp.net 保护网站不受用户上传文件的侵害 在设置窗体身份验证时设置个别页面不需要进行验证 基于Web应用程序的安全问题之一Cross-Site Scripting Vulnerabilities 代码安全 基于强名称签名的代码访问保护及其改进 防止对 Visual Basic .NET 或 C# 代码进行反相工程 如何防止 DLL 被反编译 揭开.NET程序保护的秘密 如何建立有效的.Net软件注册保护机制 由浅至深,谈谈.NET混淆原理 (一) 由浅至深,谈谈.NET混淆原理 (二) 最简单的混淆 由浅至深 谈谈.NET混淆原理(三)-- 流程混淆 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇) 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法) 看了下面那篇“Crack别人应用程序”的文章有感,简述.Net下的应用程序授权。 vs2003中设计强名称程序集并制作安装入GAC的MSI 无法破解的软件注册码算法 保护你的代码——谁动了我的组件? ASP.NET中的单点登录 Cookie 支持二级域名和FormsAuthentication 加强版 论电子签章(Electronic Signature)在C#中的实现方法 使用IHttpHandler防止非法链接 使用 Ildasm, ILasm, Peverify 来 Crack 别人写的应用程序。 ASP.NET2.0应用中定制安全凭证之实践篇 创建安全的ASP.NET虚拟主机 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法. Kerberos简介 在ASP.NET中防止注入攻击[翻译] 封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA 学习一下 .net framework 中有关安全的内容 学习一下 .net framework 中有关安全的内容(续) 环境配置与部属 使用ASP.NET的跟踪服务 无ASPX文件部署(续) 无aspx文件部署 aspx->cs->dll 如何把用http访问的网页转换用https访问 一个配置IIS的问题 在Apache环境下成功的运行ASP.NET 关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet) 在.net中使用强类型来读取配置信息 Asp.net网站的ClickOnce自动部署(1)-自动部署的内容 Asp.net网站的ClickOnce自动部署(2)-虚拟目录的配置 Asp.net网站的ClickOnce自动部署(3)-虚拟目录的配置 web.config文件自定义配置节的使用方法 模仿AppSettings进行web.config的自定义节读取[简单实用型] 关于无aspx文件部署,我的一些探索心得 .NET配置文件解析过程详解(二) Asynchronous Pluggable Protocols Microsoft CRM3.0 多服务器安装部署过程 解决w3wp.exe内存占用问题 实战1.1下Web.Config配置标记configSections 系统设计与项目管理 系统设计 分层开发思想与小笼包 N层企业级架构模板 系统设计的一些原则 在UI层使用Domain逻辑的一些探讨 在C#程序中实现插件架构 组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge) 逻辑设计的例子 一个.net的系统的AOP设计思路一——NHibernate和界面/对象映射层 设计和编写可复用的代码 基于工作流程系统日志生成业务流程模型 SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(一) 系统分析员,让我头痛 .NET下的域对象持久模式 业务流程管理综述 动态工作流的设计 提升软件的用户体验 应用软件的合理性 架构(Architecture)和框架(Framework)杂谈 小议模型 再议模型 软件设计评价 软件设计评价(续) 理解架构师 架构师不是建筑师 MDA(模型驱动架构) 家庭财务总管--软件设计 应用系统架构设计-补全篇 对Web平台和软件架构的一些看法 关于多层设计想到的问题-涉及Nhibernate和Log4Net 谁拥有接口? Codd提出的RDBMS的12项准则 一个糟糕的设计 业务系统里面常见的方法接口设计 将UI和UI控制分离 DotNet软件开发框架 细节决定成败:业务拦截器 广告管理系统的UML分析与设计 软件的架构设计 框架不是框框—应用框架的基本思想 创建成功的工程 软件可行性分析 GIS系统与一个好的软件架构,Why not and how? 直观而简单的解决方案--软件设计的永恒追求 企业开发基础设施--序 企业开发基础设施--类厂服务 企业开发基础设施--事件通知服务 面向对象 基于Visual C#的接口基础教程 基于C#的接口基础教程之一 基于C#的接口基础教程之二 基于C#的接口基础教程之三 基于C#的接口基础教程之四 基于C#的接口基础教程之五 基于C#的接口基础教程之六 基于C#的接口基础教程之七 小结 一个代理的例子 关于委托事件的一两个很好的例子! 依赖倒置 细说继承关系映射 面向对象与面向组件小议 C#中接口多重继承的注意事项 [ASP.NET入门随想四]吸星大法——页面的OO思想篇 如何在类中编写事件 OOD经验原则总结 [ASP.NET入门随想六]大航海家——OO思想的类间关系 接口跟基类的一点点感受 [ASP.NET入门随想七]主角与配角——OO思想的多态、接口与委托 Win32中安全的子类化 (1) Emit生成Property C#中类和接口的设计思想 数据库设计 数据库设计指南 使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程 UML 聚合 的概念 UML视图 静态视图 构件图 包图 初学uml-(1) 类图和关系 UML学习-通过用例分析来确认需求 国际化组件的设计 Web应用的UML建模与.NET框架开发 基于UML的短信计费系统的分析与设计 基于UML的系统分析方法研究 UML的三大“硬伤” 系统约定:用UML描述工作流管理 使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程 文档 项目开发总结报告 方案设计书 系统规格/需求规格说明/概要设计书范例 “一卡通”信息系统数据库设计初步探讨(原创) 某M1射频卡餐饮收费系统简单数据模型 广告发布统计实现的可行性分析阶段报告 应用软件部2005年年度工作总结 CPMS企业绩效考核管理系统 V1.1 介绍 设计模式 吕震宇设计模式随笔系列 C#设计模式(1) C#设计模式(2) C#设计模式(3) C#设计模式(4)-Simple Factory C#设计模式(5)-Factory Method Pattern C#设计模式(6)-Abstract Factory Pattern C#设计模式(7)-Singleton Pattern C#设计模式(8)-Builder Pattern C#设计模式(9)-Prototype Pattern C#设计模式(10)-Adapter Pattern C#设计模式(11)-Composite Pattern C#设计模式(12)-Decorator Pattern C#设计模式(13)-Proxy Pattern 设计模式(14)-Flyweight Pattern 设计模式(15)-Facade Pattern 设计模式(16)-Bridge Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(18)-Command Pattern 设计模式(19)-Observer Pattern 设计模式(20)-Visitor Pattern 设计模式(21)-Template Method Pattern 设计模式(22)-Strategy Pattern 设计模式随笔-蜡笔与毛笔的故事 设计模式随笔-从“有病”说起(工厂模式前传) 设计模式随笔-发大米喽 设计模式随笔-锦囊妙计 设计模式随笔-让众口不再难调 设计模式随笔-用奶箱订报纸 设计模式随笔-再论锦囊妙计 也说说“从Adapter模式到Decorator模式” 梦幻.Net设计模式 Dot Net设计模式—桥接模式 如何在实际工作中发现模式 设计模式能够解决的问题 设计模式不能做什么 Dot NET设计模式—抽象工厂 Dot NET设计模式—反射工厂 Dot Net 设计模式—简单工厂 Dot Net设计模式—工厂方法模式 Dot Net设计模式—生成器模式 Dot Net设计模式—原型模式 如何掌握并在实践中自如运用设计模式 Dot Net设计模式—单件模式 Dot Net设计模式—适配器模式 Dot Net设计模式—外观模式 Dot Net设计模式—适配器、桥接与外观三模式之间的关系 .NET反射、委托技术与设计模式 创建型模式之间的比较 用实例解说Dot Net设计模式——装饰模式 New Folder 设计模式原型模式(Prototype)- 面馆里的菜单 程序员的时间管理---做一个高效的程序员 设计模式-工厂模式(手工作坊到工业化的转变 c#实现) 设计模式-简单工厂模式(SimpleFactory-C#) 设计模式学习笔记(一) Terrylee 探索设计模式(五):工厂方法模式(Factory Method) 探索设计模式(1):开篇 探索设计模式(2):深入浅出单件模式(Sigleton Pattern) 探索设计模式(3):抽象工厂模式新解(Abstract Factory) 探索设计模式(4):建造者模式过程图解(Builder Pattern) 探索设计模式(六):原型模式(Prototype Pattern) 探索设计模式(七):创建型模式专题总结(Creational Pattern) 探索设计模式(九):桥接模式(Bridge Pattern) 探索设计模式(八):适配器模式(Adapter Pattern) 探索设计模式(11):组合模式(Composite Pattern) .NET设计模式(13):享元模式(Flyweight Pattern) Head First Design Patterns(深入浅出设计模式 Head First Design Patterns(深入浅出设计模式)-目录 Head First Design Patterns(深入浅出设计模式)-设计模式介绍 你真的了解Ioc与AOP吗? Spring.Net 示例代码分析 乱改:Visitor经典模式改进1 乱评:《c#设计模式》中的“访问者模式” 软件的架构与设计模式之模式的种类 Ioc模式(又称DI:Dependency Injection) 隐藏在.NET中的IoC? 一步一步开发Spring Framework MVC应用程序 CSharp面向对象设计模式纵横谈--Singleton Pattern 听课笔记 CSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔记 最少职责OOD设计手段 OOD的设计手段总结 面向对象设计的六大原则简介 由浅入深学“工厂模式”(1) 由浅入深学“工厂模式”(2) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) 与大虾对话: 领悟设计模式 Design&Pattern团队《设计模式在软件开发的应用》精华版 由浅入深学“工厂模式”(3) 简话设计模式 观察者模式 (using .net) C#中事件与观察者模式 Role分析模式(一) 角色对象基本概念 Role分析模式(二)角色对象创建和管理 在开发中体验设计模式 重新诠释AOP 侃中介者模式(Mediator) 采用AOP 的观点来 Log 所有方法的调用 MS 的IOC容器(ObjectBuilder)? .Net event vs. observer Pattern DProxy介绍 – 一种高性能轻量级AOP开发组件(.NET 1.1) JavaScript中的Decorator模式 魔法牌里的模式(Bridge) 决策者得选择(Strategy) 通讯兵(Chain of Responsibility) 面向智能体编程(Agent Oriented Programmig, AOP)一些体会 Bridge? 一个GIS二次开发中常用的设计模式 Switch语句,僵化的毒药 策略模式的应用实践 重读GoF Factory Method来实现数据库操作的类 用Factory Method模式扩展MyMSDNTVLibrary 工厂模式和容器模式的探索 反编译 Component重要类,全文解释 - 容器篇 单系统多类型数据源随意切换的c#实现 用C#实现MVC(Model View Control)模式介绍 小议.NET中的对象拷贝 设计模式原则详解 封装变化(一) AOP的纯.Net实现 使用纯.net实现AOP(加入了比较详细的代码说明) 隐身大法,使民无知 设计模式浅析之Singleton 设计模式Top10排行榜 简话设计模式 在我们使用的NET FRAMEWORK类库中发现设计模式(3) 在我们使用的NET FRAMEWORK类库中发现设计模式(2) New Article 模版模式 Template Pattern — 穷人和富人的不同婚恋历程 发掘模式---今天您发掘拉mei? 老师讲的抽象工厂,错了一点点 Singleton + Proxy 模式+AOP Observer模式为何要区分推拉模式 也来谈谈工厂模式 项目管理 需求分析控制 项目经理 七个关于有效沟通的哲理故事 新主管如何生存? 怎样从一名程序员过度到项目经理 论《金瓶梅》与项目管理中人际关系协调 做项目经理的一些思考 怎样从一名程序员过度到项目经理 什么是项目经理 团队建设 软件项目中的人员管理和团队建设 建立“杀手”开发团队 软件开发组的团队精神 如何指导软件开发新手 改变一个状况不佳的项目组 论软件开发中的三种重要角色 如何调动员工的积极性 成功项目团队中应树立的五种意识 管理观点系列:团队管理 现在有多同事工作较懒散,没有一点工作效率,开发出来的东西,Bug又多。如果让你来管理你会怎么做? 人才的识与用 用人之道 高效团队的速成之道 管理人员如何有效应用表扬与批评进行反馈 [项目管理]管理中的人 [团队管理]+[软件人生]从项目计划到保密管理到个人学习与提高的方法 建立团队精神 你实现团队管理了吗? 需求管理 怎么做需求分析 撰写优秀的需求 需求分析的20条法则 从用户接触到完成需求说明书 需求调研步骤和方法 一种界面需求分析方法 细谈软件需求分析过程:提取、抽象、升华 网站项目管理-如何做好需求分析 如何写系统分析书 客户需求何时休? 软件需求管理-用例方法,读书摘要 [理解需求变更之一]说说需求变更的必然 RUP简介 软件开发过程中最重要的是人?还是领导者? 开贴讨论:我观察国内几乎所有公司都有这样或者那样的管理问题,开贴讨论:小团队web项目负责人的工作办法 技术不是全部,归纳和演绎能力也很重要 谈恋爱与IT项目管理 广为流传的一个关于项目管理的通俗讲解 诸子百家与项目管理 之 序 诸子百家与项目管理 之 总述 问答 诸子百家与项目管理 之 周易篇(项目管理的两个基本点) 诸子百家与项目管理 之 孙子兵法篇(项目管理的整体思维) 实战解析----项目目的和范围 项目管理过程中的棘轮效应 任务管理 项目整体管理 项目风险管理 项目采购管理 项目沟通管理 项目人力资源管理 项目成本管理 项目质量管理 项目时间管理 项目范围管理 编码人员和美工的配合问题 心得体会:关于开发效率和项目周期的问题 紧急项目处理方法 做项目的一些体会(之一)_软件开发过程中我们应当具有的能力 团队技能之一——分析问题 价值高于一切-企业软件开发谈 项目管理之我见(原创) 项目开发管理经验交流 软件实例开发手记(自序)-为保证文章完整性,谢绝对某篇而非全部手记的转载 紧急项目处理方法 浅谈项目管理中的职责权 - [原创] 由一个虚构的例子谈谈中小型研发型项目的技术管理及成本控制(全文) 优化IT企业的基础架构 一个研发经理的项目日记 .net敏捷开发及常用工具 关于项目管理和项目计划制定的对话 微软资深经理人的项目管理经验 WEB项目开发 MyMsn动态Resize页框架的布局详解 性能,安全,集成才是web之道 重构之美-走在Web标准化设计的路上[深入结构:理解h系列的不合理。] 重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ] 重构之美-走在Web标准化设计的路上[复杂表单]3 2 Update 重构之美-走在Web标准化设计的路上[唠叨先] 重构之美-迎接Web标准化设计的来临[总结一:网页设计回归?] 重构之美-走在Web标准化设计的路上[对HTML/XHTML/XML/XSL的一些认识] 雅虎网站项目工作流程 微软资深经理人的网站项目管理经验 其它 软件工程 一个测试的重构 RUP 核心概念 配置管理的概念 RUP && MSF 特点 构建面向对象的应用软件系统框架 构建面向对象的应用软件系统框架 目录 构建面向对象的应用软件系统框架 第1章 构建面向对象的应用软件系统框架 第2章 第3章 数据和对象 第4章 O/R Mapping的一般做法 第5章 设计一个O/R Mapping框架 第6章 面向方面编程 第7章 接口 第8章 事务处理 第9章 性能优化 第10章 界面层的功能划分 第11章 界面设计模式 第12章 动态代码生成和编译技术 第13章 远程过程访问的客户端整合 第14章 智能客户端 第15章 简述 Effective Coding - Readability 单元测试时的一些最佳实践 Best free tools/frameworks/libraries I use 统一界面设计 十二种实践方法与我的XP心得 使用CVS做.NET项目 在asp.net页面上得到Castle容器的实例 当前软件开发的反思 面向对象设计,ORM,NHIBERNATE杂谈(有感) 投标方案应该怎么写? CMM/CMMI将带我们走向何方——一个CMM从业人员的反思 对一个排序程序的不断重构 FxCop 设计规则 敏捷实践12 条原则 《敏捷软件开发》读书笔记 (1) 《敏捷软件开发》读书笔记 (2) -- 设计原则 《重构》 读书笔记 (1) 企业应用之领域模型 我的.net项目经验(一)。 也谈 SOA 重新诠释SOA 登山的程序员(极限与敏捷之一) 敏捷的总设计师(极限与敏捷之二) 实战解析--项目的主要技术储备 产品升级策略 读《DTS分析模型、设计模型》有感 软件开发核心工作流程 新产品研发 分析设计过程.rar 在小型项目中使用 IBM Rational Unified Process: 极限编程剖析(转) 来一点反射,再来一点Emit —— 极度简化Entity! 软件整合--硬件整合--平台整合 用自定义KeyValueCollection类代替Dictionary/Hastable,改善简化后的Entity性能 Java剑 VS .NET刀 -- 东山再起(论模式)(二)【推荐】 基于构件技术的需求管理过程-框架需求调研 PSP课程(一): PSP简介 我对系统重构的理解 重构---Who are you?! 单元测试应该测什么,不应该测什么? AccEAP架构介绍(1)---实体的设计 我的单元测试认识之路 中小型MIS开发之我见(一)---开发阶段 中小型MIS开发之我见(二)---具体实施(上) 中小型MIS开发之我见(二)---具体实施(下) 团队开发框架(Developement Structure for Team),内容列表及整理计划 风继续吹----对一些ORM框架的使用心得(2) 冷眼程序人生----对一些ORM框架的使用心得 读书笔记]-道法自然之需求分析 个人对软件开发的思考 网络应用 一个Udp信息收发静态类! [修改]脚本判断网站是否能打开 IIS防止文件下载完全手册(非更改文件名法) 在.NET中利用XMLHTTP下载文件 开发 .NET 下的 FTP 客户端组件 如何不让没有登录的用户下载的问题 文件下载时如何隐藏实际地址? ASP.NET 多文件上传 .net 中发mail到hotmail中乱码问题的解决 郁闷的OpenPOP的MIME Parser Asp.net(c#)实现多线程断点续传 关于 OpenSmtp 邮件标题过长后出现乱码问题的解决 支付宝Payto接口的c#.net实现 文件操作 发布一个Asp.Net文件夹复制类 关于File的一些例子 文件操作工具类 FileUtility 大文件上传之异常处理(原创) 文件 在线压缩 技术 ASP.NET在线压缩与在线解压缩 c#文件操作(二) 在ASP.NET中跟踪和恢复大文件下载 Response.BinaryWrite()下载时文件名的问题. Windows Workflow Foundation之旅(二)——指南1(创建顺序工作流) DotNet 序列化学习笔记 一个上传的类 系统控制 WMI类--所有可用的WMI的类封装 用ActiveX控件和JavaScript脚本实现基于Web的票据套打(源码下载) 运用API函数获取系统信息 通过ASP.NET页面重启服务器 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现(全部源码) 关于如何打印ListView的解决方法 修改IIS目录的Asp.Net版本 如何获取客户IE统计信息[代码] 图像多媒体 js图形报表 一个可设置背景图片的验证码图片的生成方法 图片翻页幻灯效果 图片渐变轮换效果 讨论一下flash.ocx(8.0版本的)与.net结合的编程 动态生成缩略图 SharpMap介绍及源码分析 利用Javascript 结合 VML 生成三维报表(饼图) 技巧与总结 代码阅读总结(个人总结开发小技巧) DotNet精美书籍大检阅 asp.net页面代码组织模式 金鼎俱乐部项目总结 总结一下散乱的开发点滴(3) (高手勿入) 说的都是概念——有关编程范式 组织一些开源项目 VS.NET操作技巧 Visual SourceSafe VSS信息的读取的操作 安装程序 安装程序自动安装数据库 程序安装时检查是否已经安装.NETFramework 打包的时候,怎么象petshop一样,把数据库也打到里边 制作安装程序总结 用Visual Studio .Net 2003制作安装程序时轻松实现将自己的程序添加到系统的鼠标右键菜单 .net打包自动安装数据库 用自删除dll实现应用程序的安装/卸载代码 .NET打包自动安装数据库 调试常见问题 IE安装了flash插件还不能显示swf动画的问题 让人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决! 关于异常处理的一点感受 项目调试时候,出现其中用到的一个组件“访问被拒绝”的解决方法。 对于引用的控件被拒绝访问的解决办法的补充(续) 对于引用的控件被拒绝访问的解决办法的补充(续++)++ 对于引用的控件被拒绝访问的解决办法的补充(续++) 使用Visual Studio.net调试javascript最方便的方法 在Apache上调试Asp.net 1.1/2.0代码 VS.NET 2005 vs.net 2005 中自定义模版项 自己动手打造Visual Studio 2005 Team Suite 正式汉化版 用Visual Studio 2005创建宏代码生成器 Visual Studio 2005 Team Foundation Server Beta3 安装手记 Visual Studio 2005 Team System的BUG? 对vs2005生成dll文件的一点疑惑 开发VS2005下ComboBoxTreeView(下拉列表框弹出树) 与ToolStripComboBoxTreeView(下拉列表框工具条弹出树) Visual Studio 2005中编译调试新功能 使用 Visual Studio 2005 Team System 进行单元测试并生成用于 Unit Test Framework 的源代码 在VS.NET2005中使用java代码段以及SOL文件格式的解析 ClubWEBSite starter kit二次开发及Vs2005中ObjectDataSource控件的应用小记 Visual Studio 2005 RTM的奇怪问题 Team Foundation Server Beta3 安装指南 VS2005中通过code snippet定制类模板 C#2.0 Singleton 的实现 Dataset+TableAdapter _.net最终数据访问类出现? 我的心血显然被藐视了 目前发现的 asp.net数据绑定的几个BUG(不定期连载) 使用GDI+在VS2005下开发基于DataGridView的财务显示单元格控件 目前发现的VS2005 asp.net 数据绑定bug (二) -关于ObjectDatasource 和TableAdapter Use Whidbey Beta2 to target .NET Runtime 1.1 Targetting 1.1 .NET Framework with MSBuild 安装TFS vs.net 2005中web.config智能感知丢失时 VS2005中用Code Snippets提高开发效率 VS2005运行速度优化心得 vs2005 的WebSite 的开发方式的替代Visual Studio Web Application Projects VS2005如何进行单元测试. 善用免费的Code Snippet Libraries加快你的开发速度 Code Snippet Libraries压缩下载包 Visual Studio 2005 Web Application项目RC发布 Visual Studio 2005 Web Application Projects 项目Cool的地方 VS2005将支持的两种WEB编程模型的比较 VS.NET 工具 CodeSmith 我的用CodeSmith生成的业务对象 CodeSmith基础(一) CodeSmith基础(二) CodeSmith基础(三) CodeSmith基础(四) CodeSmith基础(五) CodeSmith基础(六) CodeSmith基础(七) CodeSmith基础(八) CodeSmith应用(一) CodeSmith应用(二) CodeSmith应用(三) CodeSmith应用(四):实现选择路径对话框 CodeSmith-Terrylee CodeSmith实用技巧(一):使用StringCollection 数据库字段属性配置工具界面[用于代码生成] Sharpdevelop2.0预览版放出来了 对nunit很失望 Resharper的快捷键 ReSharper 利用Together For VS.NET检查所编写的代码是否够规范 如何用CodeSmith减少代码重复编写 NET 的Refletion的初步了解 VS2005 Add-in:CSS Properties Window 每个开发人员现在应该下载的十种必备工具 体验ReSharper V1.0 for VS.Net 2003 - Part I 用DNS、IIS实现Web项目团队协作开发! 创建自定义的Visual Studio项模板 Microsoft Windows Workflow Foundation 入门:开发人员演练 将asp.net1.1的应用程序升级到asp.net2.0的一点心得 自动填写版权信息 .Net1.x转换为.Net 2.0要注意的几个问题 服务器同时存在1.1和2.0程序注意事项 使用@Page指令的Src 属性 简化对老版本的 asp.net程序的维护 常见的 Web 项目转换问题及解决方案 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南 常见的 ASP.NET 2.0 转换问题和解决方案 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误 安装vsts:如何卸载SQL Server 2005 其他新技术 反射 初识.net反射技术 .NET反射、委托技术与设计模式 .net反射技术的应用—如何调用Java的COM接口 灵活正确的实现.NET插件机制 C#中使用反射的性能分析 论.NET反射、委托技术与设计模式关系 Ajax 用Ajax技术让IE Web Control Tree View实现大数据量读取 AJAX设计模式 之 怎样构建一个可刷新的无刷新应用 AJAX设计模式实践 之 可刷新Ajax应用范例+Framework 在ASP.NET中实现AJAX Ajax.Net的onLoading及aspx页面的默认名字空间及ajaxpro的google组怎么没有一个chinese? CuteEditor5.0的安装及它与Ajax.net配合无刷新操作数据库! 使用简单的Ajax Framework -MagicAjax.NET 剖析MagicAjax 利用AJAX技术开发应用程序实战 基于Ajax的五子棋演示 AJAX页面XMLHTTP对象生成及下一步技术研究 到了该讨论XMLHTTP在Ajax中作用的时候... Ajax,纠正错误,又向前一小步 Ajax, 想得更实际一些 Ajax, 使用PostBack响应模型和Web控件资源, 让服务器返回更少的数据 几句话介绍MagicAjax 使用MagicAjax 实现无刷新Webparts AJAX编写用户注册实例及技术小结 Web 2.0中AJAX技术应用详解 一个要钱的ajax框架zumipage 网站的推广之痛-使用AJAX和.NET网站的朋友注意了 让MagicAjax支持中文! 阿特拉斯神(二) AJAX急速狂飙:开发www.99scj.com体验(1) ASP.NET 调味品:AJAX 一套使用简单的Ajax服务器控件-Anthem.NET Introduction to Anthem.NET 三种Ajax框架使用比较 Ajax基本原理讲解 【AjaxPro实现机制浅析二】*.ashx文件是怎么来的? 利用Ajax与数据岛实现无刷新绑定 应用Ajax.net在Asp.net中实现无aspx文件应用 Atlas 用Atlas来实现一个基于AJAX的无刷新Chatroom Atlas Table Layout Template 学习Atlas是发现的几个小问题 Atlas笔记1:介绍和调用WebService的方法 Atlas是什么? Atlas 实现机制浅析 [1] Atlas 实现机制浅析 [3] 使用ASP.NET Atlas编写显示真实进度的ProgressBar(进度条)控件 Atlas应用程序调试技巧 在Atlas服务器端实现中推荐使用Web Service而不是Page Method Atlas揭秘 —— 绑定(Binding) 在ASP.NET Atlas中创建自定义的Transformer 在ASP.NET Atlas中创建自定义的Validator 使用ASP.NET Atlas ItemView控件显示集合中的单个数据 使用ASP.NET Atlas ListView控件显示列表数据 调试Atlas客户端JavaScript脚本 在ASP.NET Atlas中创建自定义的Behavior 使用ASP.NET Atlas SortBehavior实现客户端排序 在Atlas中实现检测postback progress的状态的方法 使用ASP.NET Atlas XSLTView控件用XSLT修饰并显示XML数据 Remoting 一步一步学Remoting之一:从简单开始 初识用.NET Remoting来开发分布式应用 使用.NET Remoting开发分布式应用——配置文件篇 基于消息与.Net Remoting的分布式处理架构 使用.NET Remoting开发分布式应用——基于租约的生存期 Remoting多个信道(Chennel)的注册问题 Remoting中的线程与网络通信内幕初探 Remoting Event 远程事件 Remoting Discussion(二) Remoting Discussion(三) 移动开发 在PPC上用时间做唯一编号遇到的问题及其解决方法 正确处理 SqlCeException 的方法 通过ActiveSync使你的Windows Mobile Emulator连接到Internet Pocket PC 2003编程环境 Windows Mobile开发环境搭建指南 短信任务源程序分享[.NET CF C#] 循序渐进:使用 Visual Studio 2005 为基于 Windows Mobile 的设备生成 .NET Compact Framework 应用程序 是不是.net compact framework的Bug呢? 窗体切换中的小技巧 Web 2.0 WEB2.0商业模式才刚开始 用Blog和Wiki搭建IT团队的知识库 论web2.0的定义及web2.0盈利的实现方式 MagicAjax-NoStore,Session,Cache模式的区别 Wiki的介绍 wiki、Blog与项目知识管理 wiki的来龙去脉与企业应用 2006年 Web 2.0 将面临的10个问题 web 2.0 精彩语录 创新的媒介:Web 2.0三大营销变革 2005年Web 2.0领域涌现的11大高质量软件 学习冲电 <> Go back什么是Web 2.0? Web 2.0时代,你属于哪一份子? 全面精通Web 2.0,做互联网潮头人 项目Wiki的选择和配置 2005年 Web2.0 带动的11大软件 最近的asp.net技术demo 通用异常处理框架 在C#中调用WINCE连接PC的程序 GPS定位信息的接收 PDA/GPS检测报告 CnForums和已有系统的整合方案 Community Server技术分析——CS是如何将三个项目整合到一起的 Microsoft.mshtml到底是什么? BI与CRM深入行业应用 纯粹B/S方式实现InfoPath的设计和运行时--Web Builder WebBuilder 界面一览 大话 .NET/MONO 跨平台应用 移植 ASP.net 项目到 Mono 的问题报告 激动的一天 MONO - .NET跨平台之亲身经历(一) 使用Updater Application Block实现自动更新例子 Component/Service Oriented Software System Development Thinking Smart Client Case Study Source Code Download from MSDN China 初探YAML 在将WEBPART打包成*.CAB包和*.MSI安装包后,竟然无法将其安装到指定的WSS网站 Microsoft Windows Workflow Foundation 入门:开发人员演练 如何让ClickOnce进行手动更新(含代码) WEB BUILDER中的动态页面生成 flash与asp.net通信(LoadVars类) EsbAOP应用--异常关闭器 EnterpriseServerBase的AOP--EsbAOP实现 [WPF]WPF中如何实现数据与表示分离。(一) —— XAML 翻译:微软是如何输掉API之战(上) 微软是如何输掉API之战(下) Log4Net五步走 Agile Framework功能介绍(1):自动事件连接 基于构件技术的软件工程 - Small Team Practice小型团队项目实践标准 RIA全程追踪-引子 Boo简介及无关的一些牢骚 企业应用之领域模型 企业应用之数据持久化方案 通过Spring.net来使用XCodeFactory生成的数据层! 关于SNS规则引擎的一点想法 Biztalk2004 Decoder的二次开发----春田花花幼稚园的信息化项目 虚拟社会,做尽天下业务(集思广义,以求大同) ORM新实现——Dali 使用Microsoft Systems Management Server 2.0 进行补丁管理 CNN评出25个典型的下一代互联网公司 SQL Server Report Services 的RS数据库移植到另外一台服务器,报“rsReportServerNotActivated”错误 .NET和JAVA的跨平台,我们很期望.但是容易吗 LoadRunner 架构概览 关于Flex、Jrun、ColdFusion、IIS、ASP.Net结合使用的误区!(只说Flex1.5版本) Windows Communication Foundation入门(Part One) office 操作 ADO.NET(OleDb)读取Excel表格时的一个BUG Office with .Net 系列之 ――― 在自己的程序中宿主Office Office with .Net (二) ――― 使用.Net访问Office编程接口 Office with .Net(二)之外传―――“彻底干净的”关闭Office程序 我写的Asp.net操作Excel的一个类库ExcelHelper(源码下载) C#操作Excel,套用模板并对数据进行分页 关于ASP.NET中调用Excel组件不能结束进程的解决方法 用完Excel组件后 如何彻底关闭Excel进程 一个Excel exporter的组件 web 下实现文档的可浏览但不可保存 Excel开发:简化工作表中选定区域的操作 开源代码系列之Office文档读写(Excel/Word) 将Exce嵌入你的.Net程序 实例与经典源码 .NET Pet Shop 4 .NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0 NET Pet Shop 4 .NET Pet Shop 4 关于练习项目的一些背景 基于.NET 2.0的Petshop4正式推出了 PetShop的系统架构设计 Petshop 4 学习 Agile Framework 介绍Agile Framework Agile Framework架构图 利用db4o做中间层数据缓存 关于数据层设计的取舍思考 基于SOA思想的架构设计 框架设计之Castle&CompositeUI容器融合 架构设计之Smart Client 架构设计之离线处理 DotNetNuke DNN 数据访问策略 【译】 快速正确的制作DNN模块数据库安装脚本 DotNetNuke开始支持ASP.NET2.0 DotNetNuke从入门到进阶(1)怎样写自己的模块 DotNetNuke 代码文档 翻译DNN-Documentation-readme.txt DotNetNuke:如何创建自己的模块(FlashPlayer Module) [DNN模块开发]让模块支持“导入”“导出”功能 [DNN模块开发]DNN模块的层次划分 [DNN模块开发]模块的文件结构及命名方法 [DNN模块开发]如何写模块数据库安装脚本 建立单独的解决方案来开发DNN模块 [DNN模块开发]快速制作DNN模块安装包 [DNN模块开发]快速正确的制作DNN模块数据库安装脚本 [DNN扩展]将Lion.Web.WebHtmlEditor作为DNN的富文本编辑器(初步实现) [DNN扩展]LionHtmlEditorProvider(v1.0.1) [DNN扩展]LionHtmlEditorProvider(v1.0.2) 最后更新:2005-7-25 [DNN模块开发]如何写dnn文件 [DNN模块开发]分类链接模块终于大功告成了 [DNN扩展]LionHtmlEditorProvider(v1.0.3) [DNN模块开发]分类链接模块V1.1 [DNN模块开发]增强型DNN在线调查模块 [DNN学习所得]如何防止页面中的敏感信息被提取 如何修改DotNetNuke(DNN)中服务条款和隐私说明 利用反射工厂模式支持多数据库访问 DNN中搜索引擎原理——如何获取SearchItem DNN中搜索引擎原理——数据库分析篇 [DNN通用控件]TextEditor [DNN学习所得]SolpartMenu一个相当不错的下拉菜单控件 [DNN功能]列表管理添加中国的省份选择下拉框 [DNN学习所得]CBO——简化从数据库读取数据并实例化对象的有效方法 刚开始学习DNN的一点小经验(二) 全新安装dnn3.1.0 DNN安装模板(DotNetNuke.install) [DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载) DNN核心用户控件——实现页面灵活布局的第一步 DNN的数据访问方式——合理运用模式,提高数据访问的灵活性(有修正) 刚开始学习DNN的一点小经验(一) [DNN学习所得]HttpModule到底是个什么东西 DotNetNuke3研究报告一(安装) 初识DotNetNuke(DNN) 关于DotNetNuke(DNN)的语言问题 DotNetNuke3研究报告二(数据访问) [DNN学习所得]HttpModule到底是个什么东西 DNN文件夹说明 [DNN通用控件]DualListControl介绍 DNN3.2.2安装说明 [DNN 3.2.2] DNN开发中的一些细节(2) DNN开发中的一些细节(1) Flash+xml 在 Dnn系统开发中的应用 DNN开发中的一些细节(3) 开源项目 开源CMS Alfresco 1.0 发布 ArgoUML -- 开源UML 建模工具 应用IBatisNet+Castle进行项目的开发 再论IBatisNet + Castle进行项目的开发 NHibernate VS IbatisNet IBatisNet 之 自动生成主关键字 细节决定成败:一个公共类库 BugTracker.NET 汉化手札 ORM开题篇-Gentle.NET之牛刀小试 使用NHIBERNATE写DAL层的流程和牢骚 Mono 开发 (使用.NET技术的你,绝对不能忽略Mono) .NET开源项目链接 MonoRail - 前期准备 MonoRail - 简介 经典案例介绍 广州市工商局商标管理软件 Duwamish 学习Duwamish7的MSDN说明及相关技术策略 Duwamish7学习笔记(七) Duwamish7学习笔记(六) Duwamish7学习笔记(五) Duwamish7学习笔记(四) Duwamish7学习笔记(三) Duwamish7学习笔记(二) Duwamish7学习笔记(-) NHibernate 使用NHibernateContrib中的Nullables NHibernate文档翻译进度&问题收集(持续更新) NHibernate文档翻译 第3章 持久化类(Persistent Classes) NHibernate文档翻译 第5章 集合类(Collections)映射 NHibernate文档翻译 第6章 关联映射 NHibernate文档翻译 第7章 示例: Parent/Child NHibernate 1.0.1 发布了 NHibernate文档翻译完成 NHibernate文档翻译 第8章 NHibernate缓存(NHibernate.Caches) NHibernate文档翻译 第9章 使用AttributesNHibernate.Mapping.Attributes NHibernate文档翻译 第10章 NHibernate.Tool.hbm2net DDL的NHibernate文档 1.快速起步 NHibernate中DateTime,int,bool空值的处理方法 使用NHibernate进行数据持久层开发的最佳实践 基于NHibernate的三层结构应用程序开发初步 NHibernate.Helper Project NHibernate学习手记(1) - 对象的简单CRUD操作 NHibernate学习手记(6) - 实现one2many/many2one的映射 NHibernate快速指南 NHibernate之1——为什么不用DataSet? NHibernate文档翻译 第1章 体系结构 NHibernate文档翻译 第2章 ISessionFactory配置 NHibernate文档翻译 第4章 O/R Mapping基础 由为什么要学习NHibernate说开去 NHibernate 使用手迹(1st) NHibernate 使用手迹(2nd) NHibernate使用手迹(3rd) 发布:偶写的NHibernate代码生成器 面向对象设计,ORM,NHIBERNATE杂谈(有感) Snake.Net Snake.Net 框架中的ORM(一) (Version 0.2 Beta) Snake.Net 框架中的ORM(二) (Version 0.2 Beta) Snake.Net 框架中的ORM(三) (Version 0.2 Beta) Snake.Net网络通讯模块 序 Snake.Net网络通讯模块 - SMTP(一) Snake.Net网络通讯模块 - POP3(二) Snake.Net网络通讯模块 - IMAP4(三) Snake.Net网络通讯模块 - FTP(四) Snake.Net 框架中的ORM(四) (Version 0.2 Beta) Snake.Net 框架中的ORM(五) (Version 0.2 Beta) QPG平台 编写容易被维护的代码(1) QPG--基本用法介绍 技术篇(1)--QPG容器的基本用法 技术篇(2)--QPG容器的高级用法 技术篇(3)--QPG界面分解方法介绍 技术篇(4)--基于QPG容器的服务扩展 技术篇(5)--QPG数据处理方法 技术篇(6)--大话AOP 实践篇(1)--QPG之“打狗棍法” 思想篇(3)—IT运用模式的轮回 思想篇(2)--归纳和演绎能力也很重要 思想篇(1)--企业需要什么样的人才? 思想篇(完)----跟往事干杯 思想篇(4)---- 实战解析(完)----总结 Enterprise Library Enterprise Library2.0(1):Data Access Application Block学习 Enterprise Library2.0(2):Logging Application Block学习 Enterprise Library2.0中加密数据库连接字符串 Enterprise Library——企业库配置管理应用程序块 Enterprise Library——企业库缓存应用程序块 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 Enterprise Library Step By Step系列(二):配置应用程序块——进阶篇 Enterprise Library Step By Step系列(三):数据访问程序块——入门篇 Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 Enterprise Library Step By Step系列(五):安全应用程序块——入门篇 Enterprise Library Step By Step系列(六):安全应用程序块——进阶篇 Enterprise Library Step By Step系列(七):日志和监测应用程序块——入门篇 terprise Library Step By Step系列(八):日志和监测应用程序块——进阶篇 Enterprise Library Step By Step系列(九):缓冲应用程序块——入门篇 Enterprise Library Step By Step系列(十):缓冲应用程序块——进阶篇 Enterprise Library Step By Step系列(十一):异常处理应用程序块——入门篇 Enterprise Library Step By Step系列(十二):异常处理应用程序块——进阶篇 Enterprise Library Step By Step系列(十三):加密应用程序块——入门篇 Enterprise Library Step By Step系列(十四):创建基于消息队列(MSMQ)的异步日志 Enterprise Library Step By Step系列(十五):配置应用程序块——设计篇 Enterprise Library Step By Step系列(十六):使用AppSetting Application Block Composite UI Application Block 学习笔记之Commands Composite UI Application Block学习笔记之Event Broker 使用Updater Application Block实现自动更新例子 使用企业程序库的两点体会 Composite UI Application Block学习笔记之Smart Part 关于在服务器端使用Microsoft Exception Management Application Block Logging application block of Enterprise Library 2.0 TimeStamp of the Logging Application Block in EntLib 2.0 对 Updater Application Block v2的表面行为分析及问题 (一) HTTP Downloader for Updater Application Block 2 ObjectBuilder内功心法之中国特色 一个从网页中提取天气预报信息的程序(附源码) Ilungasoft Framework: 使用视图处理继承关系、Tree结构实体关系映射示例[源码] DataQuicker2快速入门-----存储过程篇 一个ASP.NET2.0的小项目-BLOG Ilungasoft Framework中处理有关联关系的实体 Community Server2.0专注细节一 邮件提醒按钮实现(上) DataQuicker(ORM)中的缓存机制 数据框架DataQuicker2第一个版本开源下载. SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记3(完) 新的数据框架DataQuicker2 Walk through Message----春田花花幼稚园的信息化项目(II) SVG + Javascript + ASP.NET + WebSe
ExtAspNet - ExtJS based ASP.NET Controls with Full AJAX Support ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有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-09-29 v2.3.2 -不绑定任何数据到Grid时,确保页面不会出错。 -修正了Grid列属性DataFormatString的一个bug,比如设置{0:yy-MM-dd HH:mm}时没有效果。 -修正下拉列表控件不能绑定DataTable的BUG(feedback:RedOcean)。 -增加土耳其语言资料文件(feedback:abdullaharslan)。 -Grid的BoundField增加NullDisplayText属性,用于处理数据库中的null值,如果没有设置则默认为空字符串。 -修正DatePicker中的一个bug(31/01/2010将会返回NULL)使用DateFormatString来生成SelectedDate属性(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 -ExtAspNet控件将不在依赖ViewState,减少1/4左右的HTTP数据传输量。 -控件和示例的增强。 +2010-03-28 v2.2.1 +为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel的边框ShowBorder="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会紧挨着页面标签引入,这样在中自定义的样式可以覆盖ExtAspNet缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用一个变通的方法解决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn button { 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中的EnableIFrame==false,则点击关闭按钮时报JS错误。[fixed] -页面包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet/fileupload.aspx)[fixed] -HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed] +2009-03-03 v1.3.0 -如果弹出的窗口(Ext-Window)含有ASP.NET控件FileUpload,则此弹出窗口在关闭时出现JS错误(http://extjs.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果页面中存在ASP.NET控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed] -页面上放置ExtAspNet-Button和ASP.NET-Button,则点击ExtAspNet-Button时激发的是ASP.NET-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed] -ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在ExtAspNet工程中使用ASP.NET标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和ASP.NET标准控件和平共处了。[fixed] -如果一个ASP.NET按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 UseSubmitBehavior="false" 即可。 -如果要在一次ExtAspNet的原生AJAX回发时更新ASP.NET控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet/aspnet.aspx)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新页面重试。”。[fixed] -自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建一个Window控件的代码由原来的2000字符减少为500个字符。 -PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前页面中表单修改的确认提示框的脚本”。 ---[updated]删除PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference/GetConfirmFormModifiedCloseRefreshReference/GetConfirmFormModifiedClosePostBackReference三个方法代替。 -不会修改弹出页面的URL(Ext-Window中的IFrame),以前为了实现功能为每个弹出页面添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。 ---注意:以前的项目需要在所有的ASPX页面中查找RegisterPageStateChangedScript属性,并删除,否则会运行错误! -A页面有Ext-Window控件弹出B页面,B页面有Ext-Window控件弹出C页面,B页面的Ext-Window控件设置Target='_parent',则弹出的Ext-Window(C页面)会覆盖整个A页面,这是正确的。 ---当时如果用户直接访问B页面,就会报JS错误,因为此时找不到B页面的父页面A了。现在的版本修正为如果找不到父页面,则就在当前页面弹出窗口,这样用户直接访问B页面也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先确认IFrame的页面中表单改变,然后关闭弹出窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先确认表单改变,然后关闭弹出Ext-Window,再然后刷新父页面或回发父页面”。 ---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单是否更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父页面或者关闭后回发父页面的行为。 -如果弹出窗口(Window控件)中IFrame的页面不能正常加载(网络暂时出错或页面抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时页面尚未加载完毕。 ---此版本修正了这个BUG,即时页面不能加载完全,也能通过右上角的关闭按钮关闭弹出含IFrame的窗体。 -Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-Window最终都渲染到最外层的页面,为了保证这些IFrame的name不同,IFrameName使用的是GUID,内部处理)。 -CurrentActiveWindow改名为ActiveWindow。 -[特别注意]GetWriteBackValueReference(string controlClientIds, string value, params string[] values)函数现在的定义是GetWriteBackValueReference(params string[] values) ---所有调用GetWriteBackValueReference的地方,需要删除一个参数(一般是ActiveWindow.GetLoadStateReference())。 +2009-02-23 v1.2 beta8 -ContentPanel中内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed] -DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed] -DropDownList在页面第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed] -升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[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属性[feedback:jqpeng]。[fixed] -发布包中增加一个Web.config.txt,这是一个空的Web.config文件,包含BOX基本的配置信息。[fixed] -ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时显示不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样一个效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则页面加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,解决方案见http://pohee.com/it/http-compression-in-aspnet-20/。 +DropDownList优化。[fixed] -去除EnableFirstItem/FirstItemText/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.Insert(0, new ExtAspNet.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。 -和Asp.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] +为所有控件属性增加在VS中的智能提示。[fixed] -需要将ExtAspNet.XML和ExtAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.USER_DEFINED -> RegexPattern.None -表单验证属性名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:一个属性可以拥有多个值的情况。[fixed] -属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子页面(iframe)中通过js切换父页面中选中的菜单项(Accordion->AccordionLink)(示例在other/accordion_links_run.aspx,other/accordion_links_run_iframe_htm)[feedback:jima]。 +确认:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form/form_dynamic_run.aspx)。[fixed] +2008-10-15 v1.2 beta5 -验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed] +优化下拉列表。[fixed] -验证下拉列表时,应该取ListItem的Value属性进行验证,而不是Text属性。 -DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyText属性。 -ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other/accordion_run.aspx)。[fixed] -Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。 -影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。 -AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other/accordion_links_run.aspx)。[fixed] -原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上标签。 -适当增大AccordionPanel中链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed] -Panel/GroupPanel/ContentPanel/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed] -向Form中动态添加控件的BUG,现在form/form_dynamic_run.aspx示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/AccordionPanel/GroupPanel/Panel/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。 -保留TabStrip的Tabs(TabCollection)属性。 -保留PageLayout/BorderLayout的Regions(RegionCollection)属性。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed] -表现为对Grid进行多次删除添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/Button/HyperLink/Label/Image/LinkButton/TextBox -TriggerBox/TwinTriggerBox/Window/TextArea/HtmlEditor/DatePicker/NumberBox -CheckBox/RadioButton/RadioButtonList/DropDownList -Grid +2008-09-19 v1.2 beta1 -Image/LinkButton/HyperLink增加一些Ajax可更新属性。[fixed] +隐藏的方式由HideMode属性控制Visibility/Offsets/Display。[fixed] -修正Form/SimpleForm中隐藏一个表单字段(Hidden=false)会占据页面空间的BUG。 -ToolbarText/ToolbarFill/ToolbarSeparator在ASPX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -Button去除MarginRight属性(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu属性,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed] -网报:CssClass="toolbar-pagemenu" CssStyle="border:0px;",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(../images/pagemenu_toolbar_background.gif) repeat-x left top;}。 -Region去除默认的Layout=Fit,如果希望Region使用Fit/Anchor/Column/Row等布局的话,需要手工指定。[fixed] -ToolbarSeparator/ToolbarFill在Ajax更新Hidden属性的BUG。[fixed] +布局整理。[fixed] -新增Column/Absolute/Row三种布局,加上以前的Container/Fit/Anchor/Accordion/Border/Form六种布局,总共有9中布局可供使用。 -其中一些控件默认使用一种布局:SimpleForm(Form)/Form(Form)/Panel-GroupPanel(Container)/Accordion(Accordion)/PageLayout(Border)/BorderLayout(Border)/TabStrip(Card),所有布局控件默认的布局是Container。 -经常用到的布局控件:SimpleForm/Form/Accordion/TabStrip/BorderLayout,经常用到的布局:Fit/Row/Anchor +2008-09-08 v1.1 beta7 -MenuButton/MenuHyperLink增加HideOnClick属性,如果一个菜单项的作用仅仅为了弹出下级菜单,点击没反应,则可以这样设置HideOnClick="false" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -MenuButton/MenuHyperLink/MenuSeparator/MenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed] +大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。 -网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageContext.Redirect支持普通页面转向和ExtAspNetAjax下页面转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,DropDownList,TabStrip)。 -解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) >= 0){ok}。 -DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed] -Button/MenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed] -Tree的Ajax支持(尚需优化)。[fixed] +2008-09-02 v1.1 beta5 -DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed] -模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项是否可选状态是最新的(页面第一次加载时,即使没有数据也需要设置DataTextField/DataValueField/DataSimulateTreeLevelField/DataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed] -UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed] -不要使用Asp.net的控件HiddenField,而是使用ExtAspNet的HiddenField,因为Asp.net的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,RadioButtonList中项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab中如果有ContentPanel,则在页面上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢页面的加载速度),现在已经解决这个问题。[fixed] -RadioButtonList去除EnableBackgroundColor/EnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第一个Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed] -Web.config中增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth属性用来控制页面上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue/SelectedItem)。 -DropDownList增加Ajax可更新属性Enable/SelectedIndex(SelectedValue/SelectedItem)/DataSource。 -Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。 -ToolbarText增加Ajax可更新属性Text。 +2008-08-31 v1.1 beta3 -TabStrip增加EnableDeferredRender属性(是否启用延迟加载Tab,默认启用)。[fixed] -重定向页面,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed] +安全的Ajax设计。[fixed] -这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。 -基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。 -整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。 -网报Ajax整合(目前只支持所有的列表页面)(v0.8.1)。[fixed] +2008-08-29 v1.1 beta1 +Window控件是否弹出的状态在回发时维持。[fixed] -控件设计的一个原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。 +完全抛弃Asp.NetAjax,ExtAspNet控件内置Ajax支持。[fixed] -这是一个值得骄傲的设计,可以明显提高页面回发的速度(相比普通的回发和Asp.netAjax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的点击一个按钮弹出窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前ExtAspNetAjax的限制。 -只对ExtAspNet控件起作用,对Asp.net控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible属性会有错误。 -Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用页面第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个页面都添加PageLoading控件。[fixed] -Grid中的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=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属性,默认的背景色是透明的。(在网报中需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个页面设置。[fixed] -一个典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。 -TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed] +TabStrip中非当前Tab会延迟渲染。[fixed] -这会明显加快页面的渲染速度,网报中一个典型的费用审批页面可以减少200ms的渲染时间。 -由于非当前Tab不会在页面加载时渲染,所以那些Tab中的节点在页面加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据页面空间,已修正)。[fixed] -全新的ExtAspNet.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个属性(EnableInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame页面中使用父页面的脚本和样式(示例在iframe/default.aspx和iframe/page3.aspx)。[fixed] -测试发现,IFrame页面的加载速度并没有明显加快,可以先不使用此属性。 -RadioButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed] +extjs的BUG,当页面中含有iframe时,Ext.onReady会被调用两次(IE6/IE7)(http://www.extjs.net/forum/showthread.php?t=43246)(示例在test.aspx)[fixed] -现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true; +需要先回发页面弹出IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。 -另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference("./simpleform.aspx"));。 +2008-08-15 v0.4 beta5 -点击关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.aspx。[fixed] +Radiobuttonlist显示有重影(示例在radio.aspx)。[fixed] -全新的样式。 -去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed] +IFrame弹出窗口关闭后回发父页面,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是一个重要的BUG,会严重影响页面的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父页面后Window中的IFrame被添加到页面,而这是不需要的。 -现在"是否弹出窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx) +2008-08-13 v0.4 beta4 -点击关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正一个的内存泄漏。[fixed] -IE7下测试,打开iframe/default.aspx页面,iexplorer占内存68.368M。 -内存存在泄漏时,点击iframe/page3.aspx页面8次后iexplorer占118.792M内存。 -修正后,点击iframe/page3.aspx页面8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed] -Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"解决)。[fixed] +页面正在加载的提示尽早的显示出来。[fixed] -首先在执行js来完成页面渲染之前延迟5ms,以便浏览器把当前页面内容显示出来。 -加载js脚本的script标签放置在页面的最后,放置加载js而阻塞PageLoading的显示。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的页面应该为./FE_ApplyEditor.aspx或~/Pages_ExtAspNet/FE_ApplyEditor.aspx。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在页面显示后进行,不计算在js渲染时间内。[fixed] -优化费用申请页面(尽量减少不必要的层次嵌套)。[fixed] -button_iframe.aspx默认会加载form.aspx页面(Window控件的BUG)。[fixed] -Window中的保存并关闭按钮和Asp.netAjax冲突。[fixed] -优化关闭Window的js脚本,减少写到页面的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional属性,和传统的Asp.net控件一样不可编辑。[fixed] -DropDownList增加SelectedText属性(去除了模拟树时通过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调用此脚本时报错。 -一种解决方法是将向页面注册脚本的函数移动到if语句的外面,即每次都向页面注册此脚本。 -另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向页面注册监视页面中表单内容改变的脚本)的属性(会在每次页面回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx/simpleform.aspx)。 +PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed] -这个手工添加onReady函数能够在每次页面回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。 -每个页面必须添加一个PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed] -TextField等表单字段增加Readonly属性。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和Asp.net Ajax保持兼容)。[fixed] -最大的好处是可以减少页面下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过点击按钮弹出IFrame窗口,可直接关闭父页面,也可在关闭后刷新或回发父页面。(default.aspx/page2.aspx/simpleform.aspx) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加一个属性(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个页面(default.aspx(A)/page2.aspx(B)/simpleform.aspx(C)),其中A包含B页面,当你在B中打开包含有页面C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个页面,当你从C中返回需要回发页面B时,却发现取得的是A页面,因为我们窗口是在A页面中创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,Grid中弹出窗口。(default.aspx/page3.aspx/simpleform.aspx) +示例3,TriggerBox弹出窗口。(default.aspx/triggerbox.aspx/simpleform.aspx) -在整个页面弹出窗口或者在当前页面弹出窗口,仅仅设置Window的Target属性即可。 -示例4,弹出窗口中的弹出窗口。 -对整个Examples更新测试。[fixed] +2008-07-31 v0.3 beta12 -IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab显示为空的BUG。[fixed] -对TabStrip/Panel/Window中的IFrame重新设计,如果设置IFrameUrl="#"或者"about:blank",则不渲染iframe到页面节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed] -如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed] -Tree控件,点击一个节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx/simpleform.aspx)。[fixed] -内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个页面UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed] -Firefox下,如果页面太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed] +IFrame内的页面宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx/simpleform.aspx/simpleform2.aspx)[fixed] -增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个页面的宽度和高度的Panel),HideScrollbar属性用于隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果一个节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起页面死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed] -去掉DropDownList控件的Text属性(强制性),可以通过设置SelectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息中的换行符(转换为),否则提示信息可能导致页面渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库中的数据绑定到Tree(示例在tree2_bind_database.aspx)。 -ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。 -更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。 -Grid的GridColumn的ID改名成ColumnId,否则同一个页面放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -Grid所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确解析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed] -虽然最后未能解决##差旅交通费在IE和Firefox下显示的不同效果。 -但是通过用来代替,从而实现FF和IE下样式的统一。 -刚看到old9的解决方案:把“差旅交通费”改成“差旅交通费”,在IE下和FF下的都不换行,:-) -LinkButton增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.aspx)。[fixed] -可以在回发时维持树的状态(选中行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -点击树节点可以链接到页面,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +ContentPanel中放置ExtAspNet控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed] -隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。 -现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。 +IE6下,在应用Asp.NetAjax后,Form中字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。 -最后发现IE6下应用Asp.NetAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正页面中所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master 页面。 +集成的AspNetAjax有一个很大的BUG,只要你在页面上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -解决方法相当怪异,经过一个下午的不断尝试,终于用一个怪异的方法解决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed] -Accordion选中样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +Grid增加EnableDelayRender属性(默认false),可以加快页面的渲染速度(一个典型的20个记录的页面,可提前0.7s-1s显示出来)。[fixed] -因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置"EnableDelayRender=false"。 -改变Grid中静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击一个Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed] +2008-07-12 v0.3 beta5 -页面菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而一个NumberBox和TextBox比较大小需要指定CompareType。 +如果在编辑页面使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx/ajax_editor.aspx)。[fixed] -这是由于ajax后执行的javascript中不能有return false语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed] -在页面添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -弹出Window默认显示的错误页面,解决方法在当前目录添加一个空的html页面,然后把Window控件的IFrameUrl指向这个页面而不是"#"。[fixed] +弹出的窗口中的弹出窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个弹出窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例中alert\alert_1.aspx和alert\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。 -点击提交按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed] +增加Menu、MenuText、MenuSeparator、MenuButton、MenuHyperLink控件,用于按钮的下拉菜单(示例在button_menu.aspx)。[fixed] -增加SplitButton控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个属性,示例在form_compare.aspx。 +TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed] +表单字段Enable=false时显示颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disabled,设置不透明。 +2008-07-08 v0.3 beta3 -Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed] -最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。 -模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed] -增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。 -LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed] +2008-07-07 v0.3 beta2 +增加UpdatePanelConnector控件,支持在布局构建的页面使用Asp.net Ajax。[fixed] -使用UpdatePanelConnector有一个要求:ContentTemplate下只能有一个子节点,比如box:Panel。 -示例在ajax3.aspx/content_page4.aspx。 -示例content_page3.aspx中,点击“Ajax查询”按钮和关闭弹出的窗口(点击右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为false。[fixed] -使用GroupPanel的地方需要手工添加AutoHeight="true"属性。 +增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.aspx)。[fixed] -也可以在ContentPanel中放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed] +支持Asp.net ajax异步加载。[fixed] -有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx/content_ajax2.aspx中。 -对于使用布局构建的页面(比如content_page1.aspx)还不能使用Asp.net ajax,因为页面是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前页面已经被修改(示例在content_page1.aspx/simpleform.aspx)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -删除CloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe中做法一致)。 +iframe中的alert/confirm要覆盖整个父页面,而不仅仅是iframe页面。[fixed] -在Firefox下还有问题。[fix pending] +排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed] -可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。 -可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.aspx)。[fixed] -TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed] -可以在ContentPanel中放置用户控件(示例在page_usercontrol.aspx)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed] -Grid的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加删除记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed] -如果表单验证不通过,则需要弹出对话框提示(第一个没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +页面中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx/simpleform.aspx)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +Grid完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。 -Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(一个Grid只能有一个Column指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。 -切换分页时清空选中的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。 -DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。 +2008-06-25 v0.2 beta9 +Window窗体中的
ExtAspNet v2.2.1 ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail.com 发布历史: +2010-03-28 v2.2.1 +为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel的边框ShowBorder="false"。 +集成Extjs最新版本v3.1.1。 -增加一个新的Theme - Access。 -修正了Firefox下Zoom In/Out时页面消失的BUG。 -删除Panel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。 +2010-01-31 v2.2.0 -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。 -增加示例tabstrip/tabstrip_addtab.aspx。 -重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal="false")(feedback:zqmars)。 -Window控件更新。 -关闭按钮默认直接关闭,不会弹出确认对话框。 -GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。 -增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。 -修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。 -删除Button控件的SystemIcon属性,比如以前这样定义SystemIcon="Close",现在需要这样定义Icon="SystemClose"。 -WindowPosition默认居中,而不是黄金分割位置。 +Button, Window等控件弹出位置属性的变化。 -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -> Target="Self", Target="_parent" -> Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。 -Confirm.GetShowReference的最后一个参数target变为枚举类型。 -Alert.GetShowReference中的showInParent参数也变为Target枚举类型。 -MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。 +2010-01-06 v2.1.9 -集成Extjs最新版本v3.1.0。 -修正灰色皮肤的CSS问题。 -修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。 -为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。 -修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。 -Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle="float:left;"属性。 -修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。 -为TriggerBox和TwinTriggerBox增加EnableEdit属性。 -使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。 -使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。 -Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。 -增加TabStrip中Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。 -修正了IE下Grid中的一个JS问题(feedback:lqm4108)。 -修正Alert消息中引号未编码导致的JS错误(feedback:sun1299shine)。 +集成extjs3.0.3。 -修正弹出对话框的宽度计算错误(会保持最小的状态)。 -增加新的皮肤Gray。 -为示例工程添加改变语言和皮肤的下拉列表。 -为PageContext增加静态函数Refresh,在切换语言和皮肤时使用。 +2009-12-01 v2.1.7 -增加示例(iframe/parent_postback_run3.aspx),如何通过简单的Javascript代码回发父页面(feedback:eroach)。 -修正一些书写错误(feedback:bmck)。 -从Region控件中删除SplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。 -BorderPanel更名为RegionPanel。 -DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。 -增加中国的省市县三级联动示例(data/shengshixian.aspx)(feedback:Blues T)。 -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。 +2009-11-26 v2.1.6 +修正动态创建Grid列的BUG(feedback:gxpan)。 -增加示例(data/grid_dynamic_columns.aspx)。 -修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。 -增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。 -为容器控件(比如Panel,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。 -重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和FindControl一致命名。 -删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。 -删除ExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。 -增加示例(data/tree_select_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。 +TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的一个命名约定。 -同时更名的还有GridColumn的ColumnId->ColumnID,GetColumnId->GetColumnID。 -Grid1.Columns.FindColumnById函数被Grid1.FindColumn所替代。 -为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。 -为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。 -增加示例(other/custom_postback.aspx)(feedback:thebox)。 -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正Window的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。 -部分ExtAspNet控件的设计时支持(会在后续版本中逐步完善)。 -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event PostBack->EnablePostBack)。 -为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。 +为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,用于指定验证失败时提示信息。 -为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。 +为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。 -增加示例:form/form_validate.aspx +2009-10-19 v2.1.3 +增加支持在AJAX时改变的控件属性列表(/ajax.aspx)。 -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。 -在AJAX回发后确保Asp.net的按钮控件仍然具有AJAX的特性。 -更新/basic/login.aspx示例,使用验证图片(feedback:kedee)。 -为Grid增加AutoPostBack属性和RowClick事件,示例在/data/grid_autopostback.aspx(feedback:chenguizhu2006)。 -为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。 -Grid中TemplateField生成到页面中控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。 +2009-09-27 v2.1.2 -为Tree控件增加GetExpandAllNodesReference和GetCollapseAllNodesReference两个函数。 -修正RELEASE版本下多语言加载的BUG(feedback:yigehaoren)。 -增加pt_BR语言,由Ujvari提供。 +为所有Panel(包括Grid,Tree,Form等)增加枚举类型Icon,其中包含1700多个小图标。 -如果Panel具有IconUrl属性,则IconUrl优先于Icon。 -所有Icon的列表在icon.aspx。 -为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。 +2009-09-15 v2.1.1 -修正不能动态修改AccordionPane属性Items的BUG。 +为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。 -如果需要在父页面弹出确认对话框,需要设置ConfirmTarget="_parent"(类似Window控件的Target="_parent")。 +为ExtAspNet.Alert.Show增加点击确定的JavaScript回调函数。 -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference()); +TreeNode的前面的多选框可以自动回发了。 -为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。 -示例在:http://extasp.net/data/tree_run.aspx -Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选中任何一项时在父页面弹出对话框的JS代码。 -修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pressed属性值能够正确的反映客户端的变化。 -优化Tree控件的AJAX实现。 +为页面的Form添加autocomplete="off"属性。 -参考http://www.cnblogs.com/sanshi/archive/2009/09/04/1560146.html#1635830 +添加对extjs3.0中所有语言的支持。 -ExtAspNet扩展的多语言包在js\languages\extaspnet目录下,目前只有en,zh_CN,zh_TW三种实现 -你可以向其中添加自己的语言版本,并执行js\languages下的pack.bat打包,最后编译工程。 +2009-09-01 v2.0.9 -为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,用于在父页面弹出窗口。 +在aspx页面中必须显示的声明控件的集合属性(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。 -这将会影响所有的aspx页面,所以要特别关注。 -重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX中使用的名称). +所有的面板默认有两个集合属性(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的). -这将会影响所有的aspx页面,一定要将工具条(Toolbars)和Items区分开来。 -祝你生日快乐 - 小师妹妹。 +2009-08-29 v2.0.8 -ExtAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。 -将所有的示例转化为英语版本。 -修正Tree控件的一个BUG(定义Mappings属性时)。 +PageManager.Instance应该存在于HttpContext.Current,而不是一个全局变量。 -这个BUG导致Asp.net compatibility中的示例无法完成,现在已经修正。 +去除PageManager中方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。 -这个属性和Button得ValidateForms属性类似,可以查看Asp.net compatibility中的示例。 +2009-08-25 v2.0.7 -为按钮增加DisableControlBeforePostBack属性 - 回发之前是否禁用按钮,防止重复提交 - 默认为true。 -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。 -增加示例-如何将Grid控件导出为Excel(data\grid_excel_run.aspx)(feedback:503684912)。 -如果TreeNode的属性Enabled="false",则此项变灰并且不会被选中(feedback:your568)。 -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~/开头)的BUG。 -增加Accordion和Tree配合使用的示例(other\accordion_tree_run.aspx)。 -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。 +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID属性来代替。 -这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。 -简单方便,示例可以参考 default.aspx 或者 other\accordion_tree_run.aspx。 +2009-08-14 v2.0.6 -动态生成菜单实例(other\menu_dynamic_run.aspx和other\menu_dynamic2_run.aspx)(feedback:shguo)。 -优化AJAX的内部实现,每个页面保存的ViewState现在减少1/3左右(重要更新)。 -优化Tree节点的NodeId自动生成,减少ViewState占用。 +2009-08-09 v2.0 beta5 +ExtAspNet和Asp.net的提交按钮兼容问题(feedback:千帆)。 -在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果Asp.net的按钮AJAX提交,必须设置UseSubmitBehavior="false" --也就是说生成的input的type不能是"submit",而这个限制在有些情况下是不可原谅的。 --我们做了优化,现在要使一个Asp.net的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。 +PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的Asp.net控件了。 -在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。 -示例在aspnet\fckeditor_run.aspx和aspnet\aspnet_run.aspx。 -FCKEditor和上传控件兼容。示例在aspnet\fileupload_run.aspx。 -修正ToolbarText的文本在AJAX下更新的BUG。 -Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。 -更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。 +2009-08-02 v2.0 beta4 +和Asp.Net的Forms Authentication兼容[feedback:mgzhenhong]。 -采用和Asp.Net Ajax类似的处理方式,需要在配置文件Web.config增加一个httpModules。 -现在支持Response.Redirect,你可以选择Response.Redirect或者ExtAspNet.PageContext.Redirect重定向页面,两者效果一样。 -支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。 -Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。 -修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。 -修正IE下某些弹出窗口的IFrame第一次不能加载的BUG。 -增加Menu和Accordion的示例。 -修正Window控件的IconUrl有时不显示(Target="_parent")的BUG[feedback:xmq&mgzhenhong]。 +2009-07-22 v2.0 beta3 -兼容FCKEditor。 -在IE8.0,Firefox3.5下测试通过。以后ExtAspNet将不会对IE6.0提供支持。 +2009-07-13 v2.0 beta2 -集成extjs最新版本v3.0。 +兼容IE6.0-7.0-8.0。 -这应该是Extjs3.0的一个BUG,在IE6.0-7.0下面设置Ext.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。 -目前先禁用IE6.0-7.0的QuickTips。 -优化底层JavaScript。 +2009-07-05 v2.0 beta1 -更新extjs库到最新版本v3.0 RC2; 目前只有一个缺省皮肤(Theme)。 -使用YUI Compressor压缩JavaScript和CSS文件。 -Release版本每个页面只包含一个JavaScript文件(语言文件除外)和一个CSS文件。 -ExtAspNet自身的CSS会紧挨着页面标签引入,这样在<head>中自定义的样式可以覆盖ExtAspNet缺省样式。 +Alert对话框会遮挡所有的Window窗口。 -使用<em>一个</em>变通的方法解决,因为无法改变Ext.Message的默认z-index(9000)所以将box.window_default_group的zseed调整为6000。 -为所有按钮的左右增加5px的空白边距:.x-btn button { 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中的EnableIFrame==false,则点击关闭按钮时报JS错误。[fixed] -<em>页面</em>包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet/fileupload.aspx)[fixed] -HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed] +2009-03-03 v1.3.0 -如果<em>弹出</em>的窗口(Ext-Window)含有<em>ASP.NET</em>控件FileUpload,则此<em>弹出</em>窗口在关闭时出现JS错误(http://extjs.com/forum/showthread.php?t=8129)[feedback:xlli]。[fixed] -如果<em>页面</em>中存在<em>ASP.NET</em>控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed] -<em>页面</em>上放置ExtAspNet-Button和<em>ASP.NET</em>-Button,则点击ExtAspNet-Button时激发的是<em>ASP.NET</em>-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed] -ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added] +如果以前你听过不要在ExtAspNet工程中使用<em>ASP.NET</em>标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和<em>ASP.NET</em>标准控件和平共处了。[fixed] -如果<em>一个</em><em>ASP.NET</em>按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 UseSubmitBehavior="false" 即可。 -如果要在一次ExtAspNet的原生AJAX回发时更新<em>ASP.NET</em>控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet/aspnet.aspx)。 +2009-02-27 v1.2 beta9 -网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新<em>页面</em>重试。”。[fixed] -自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed] +系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed] -底层使用Javascript创建<em>一个</em>Window控件的代码由原来的2000字符减少为500个字符。 -PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前<em>页面</em>中表单修改的<em>确认</em><em>提示框</em>的脚本”。 ---[updated]<em>删除</em>PageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference/GetConfirmFormModifiedCloseRefreshReference/GetConfirmFormModifiedClosePostBackReference三个方法代替。 -不会修改<em>弹出</em><em>页面</em>的URL(Ext-Window中的IFrame),以前为了实现功能为每个<em>弹出</em><em>页面</em>添加box_parent_client_id查询字符串 -去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。 ---注意:以前的项目需要在所有的ASPX<em>页面</em>中查找RegisterPageStateChangedScript属性,并<em>删除</em>,否则会运行错误! -A<em>页面</em>有Ext-Window控件<em>弹出</em>B<em>页面</em>,B<em>页面</em>有Ext-Window控件<em>弹出</em>C<em>页面</em>,B<em>页面</em>的Ext-Window控件设置Target='_parent',则<em>弹出</em>的Ext-Window(C<em>页面</em>)会覆盖整个A<em>页面</em>,这是正确的。 ---当时如果用户直接访问B<em>页面</em>,就会报JS错误,因为此时找不到B<em>页面</em>的父<em>页面</em>A了。现在的版本修正为如果找不到父<em>页面</em>,则就在当前<em>页面</em><em>弹出</em>窗口,这样用户直接访问B<em>页面</em>也不会出错了。 -Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先<em>确认</em>IFrame的<em>页面</em>中表单改变,然后关闭<em>弹出</em>窗口的客户端脚本”。 ---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先<em>确认</em>表单改变,然后关闭<em>弹出</em>Ext-Window,再然后刷新父<em>页面</em>或回发父<em>页面</em>”。 ---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单<em>是否</em>更新,然后在关闭窗口。 ---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父<em>页面</em>或者关闭后回发父<em>页面</em>的行为。 -如果<em>弹出</em>窗口(Window控件)中IFrame的<em>页面</em>不能正常加载(网络暂时出错或<em>页面</em>抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时<em>页面</em>尚未加载完毕。 ---此版本修正了这个BUG,即时<em>页面</em>不能加载完全,也能通过右上角的关闭按钮关闭<em>弹出</em>含IFrame的窗体。 -Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-Window最终都渲染到最外层的<em>页面</em>,为了保证这些IFrame的name不同,IFrameName使用的是GUID,内部处理)。 -CurrentActiveWindow改名为ActiveWindow。 -[特别注意]GetWriteBackValueReference(string controlClientIds, string value, params string[] values)函数现在的定义是GetWriteBackValueReference(params string[] values) ---所有调用GetWriteBackValueReference的地方,需要<em>删除</em>第<em>一个</em>参数(一般是ActiveWindow.GetLoadStateReference())。 +2009-02-23 v1.2 beta8 -ContentPanel中内容不能自动扩展高度的BUG[feedback:huihuang]。[fixed] -DropDownList在Ajax回发时不能计算模拟树的数据[feedback:huihuang]。[fixed] -DropDownList在<em>页面</em>第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed] -升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed] -<em>页面</em>加载过程中的时间信息保存在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属性[feedback:jqpeng]。[fixed] -发布包中增加<em>一个</em>Web.config.txt,这是<em>一个</em>空的Web.config文件,包含BOX基本的配置信息。[fixed] -ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed] -Row和Column布局时,修正IE下设置RowHeight="100%"时显示不正确的BUG。[fixed] -AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed] +TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed] -有这样<em>一个</em>效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则<em>页面</em>加载完毕后会回发Tab1一次。 +2008-10-20 v1.2 beta6 +使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed] -需要替换新的blowery.Web.HttpCompress.dll,解决方案见http://pohee.com/it/http-compression-in-aspnet-20/。 +DropDownList优化。[fixed] -去除EnableFirstItem/FirstItemText/FirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。 现在可以方便的在后台DropDownList1.Items.Insert(0, new ExtAspNet.ListItem("全部", "-1"));来达到同样的效果。 +如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。 -和<em>Asp.net</em>中的保持一致,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] +为所有控件属性增加在VS中的智能提示。[fixed] -需要将ExtAspNet.XML和ExtAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。 +控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed] -TriggerIconType.Default -> TriggerIconType.None -SystemIconType.Empty -> SystemIconType.None -RegexPattern.USER_DEFINED -> RegexPattern.None -表单验证属性名称变化(ValueToCompare->CompareValue,ControlToCompare->CompareControl)。[fixed] +注意:<em>一个</em>属性可以拥有多个值的情况。[fixed] -属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。 -其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。 +AccordionLink实现为控件。[fixed] -可以方便的在子<em>页面</em>(iframe)中通过js切换父<em>页面</em>中选中的菜单项(Accordion->AccordionLink)(示例在other/accordion_links_run.aspx,other/accordion_links_run_iframe_htm)[feedback:jima]。 +<em>确认</em>:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form/form_dynamic_run.aspx)。[fixed] +2008-10-15 v1.2 beta5 -验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed] +优化下拉列表。[fixed] -验证下拉列表时,应该取ListItem的Value属性进行验证,而不是Text属性。 -DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。 -DropDownList不支持EmptyText属性。 -ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。 -DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。 +2008-09-27 v1.2 beta4 +EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other/accordion_run.aspx)。[fixed] -Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。 -影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。 -AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed] +AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other/accordion_links_run.aspx)。[fixed] -原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上<Items>标签。 -适当增大AccordionPanel中链接的高度20px->22px,同时对链接的样式也做了微调。 -通过BodyPadding控制链接列表的边距。 -这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。 +2008-09-25 v1.2 beta3 +代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed] -Panel/GroupPanel/ContentPanel/Tree/HiddenField/PageLoading -TabStrip/Toolbar -TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed] -向Form中动态添加控件的BUG,现在form/form_dynamic_run.aspx示例已经能正确运行。[fixed] +大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed] -影响的控件包括Toolbar/Accordion/AccordionPanel/GroupPanel/Panel/SimpleForm/Window等。 -保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。 -保留TabStrip的Tabs(TabCollection)属性。 -保留PageLayout/BorderLayout的Regions(RegionCollection)属性。 -预祝今晚神七发射成功。 +2008-09-22 v1.2 beta2 +Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed] -表现为对Grid进行多次<em>删除</em>添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。 +代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed] -PageManager/SimpleForm/Button/HyperLink/Label/Image/LinkButton/TextBox -TriggerBox/TwinTriggerBox/Window/TextArea/HtmlEditor/DatePicker/NumberBox -CheckBox/RadioButton/RadioButtonList/DropDownList -Grid +2008-09-19 v1.2 beta1 -Image/LinkButton/HyperLink增加一些Ajax可更新属性。[fixed] +隐藏的方式由HideMode属性控制Visibility/Offsets/Display。[fixed] -修正Form/SimpleForm中隐藏<em>一个</em>表单字段(Hidden=false)会占据<em>页面</em>空间的BUG。 -ToolbarText/ToolbarFill/ToolbarSeparator在ASPX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed] -Button去除MarginRight属性(可以通过CssStyle="margin-right:5px;"达到相同的效果)[fixed] +2008-09-09 v1.1 +Toolbar去除IsPageMenu属性,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed] -网报:CssClass="toolbar-pagemenu" CssStyle="border:0px;",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(../images/pagemenu_toolbar_background.gif) repeat-x left top;}。 -Region去除默认的Layout=Fit,如果希望Region使用Fit/Anchor/Column/Row等布局的话,需要手工指定。[fixed] -ToolbarSeparator/ToolbarFill在Ajax更新Hidden属性的BUG。[fixed] +布局整理。[fixed] -新增Column/Absolute/Row三种布局,加上以前的Container/Fit/Anchor/Accordion/Border/Form六种布局,总共有9中布局可供使用。 -其中一些控件默认使用一种布局:SimpleForm(Form)/Form(Form)/Panel-GroupPanel(Container)/Accordion(Accordion)/PageLayout(Border)/BorderLayout(Border)/TabStrip(Card),所有布局控件默认的布局是Container。 -经常用到的布局控件:SimpleForm/Form/Accordion/TabStrip/BorderLayout,经常用到的布局:Fit/Row/Anchor +2008-09-08 v1.1 beta7 -MenuButton/MenuHyperLink增加HideOnClick属性,如果<em>一个</em>菜单项的作用仅仅为了<em>弹出</em>下级菜单,点击没反应,则可以这样设置HideOnClick="false" CssStyle="cursor:default;" [feedback:huayu]。[fixed] -MenuButton/MenuHyperLink/MenuSeparator/MenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed] +大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed] -注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。 -US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。 -网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。 +2008-09-04 v1.1 beta6 -PageContext.Redirect支持普通<em>页面</em>转向和ExtAspNetAjax下<em>页面</em>转向。[fixed] +模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed] -因为if("0,2,9,11,".indexOf('1,')>=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,DropDownList,TabStrip)。 -解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) >= 0){ok}。 -DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed] -Button/MenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed] -Tree的Ajax支持(尚需优化)。[fixed] +2008-09-02 v1.1 beta5 -DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed] -模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项<em>是否</em>可选状态是最新的(<em>页面</em>第一次加载时,即使没有数据也需要设置DataTextField/DataValueField/DataSimulateTreeLevelField/DataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed] -UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed] -不要使用<em>Asp.net</em>的控件HiddenField,而是使用ExtAspNet的HiddenField,因为<em>Asp.net</em>的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed] -网报Ajax整合基本完成(除了待审批->下一步[审核/归档/出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed] -IE下,RadioButtonList中项如果存在汉字,则会换行的BUG。[fixed] -增加两个Theme[Slate/Black](样式尚需完善)。[fixed] +2008-09-01 v1.1 beta4 -非当前Tab中如果有ContentPanel,则在<em>页面</em>上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢<em>页面</em>的加载速度),现在已经解决这个问题。[fixed] -RadioButtonList去除EnableBackgroundColor/EnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm/Form)的背景色一致。[fixed] -TwinTriggerBox的第<em>一个</em>Trigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置ShowTrigger1=false)。[fixed] -Web.config中增加配置项FormLabelWidth="80"(默认为80),同时PageManager增加FormLabelWidth属性用来控制<em>页面</em>上所有SimpleForm/Form的表单字段标题的宽度。[fixed] +完善Ajax。[fixed] -RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue/SelectedItem)。 -DropDownList增加Ajax可更新属性Enable/SelectedIndex(SelectedValue/SelectedItem)/DataSource。 -Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。 -ToolbarText增加Ajax可更新属性Text。 +2008-08-31 v1.1 beta3 -TabStrip增加EnableDeferredRender属性(<em>是否</em>启用延迟加载Tab,默认启用)。[fixed] -重定向<em>页面</em>,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed] +安全的Ajax设计。[fixed] -这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。 -基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。 -整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。 -网报Ajax整合(目前只支持所有的列表<em>页面</em>)(v0.8.1)。[fixed] +2008-08-29 v1.1 beta1 +Window控件<em>是否</em><em>弹出</em>的状态在回发时维持。[fixed] -控件设计的<em>一个</em>原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。 +完全抛弃<em>Asp.Net</em>Ajax,ExtAspNet控件内置Ajax支持。[fixed] -这是<em>一个</em>值得骄傲的设计,可以明显提高<em>页面</em>回发的速度(相比普通的回发和<em>Asp.net</em>Ajax的回发),对于IFrame框架的交互也起到很好的加速效果。 -不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。 +在这种设计下,其实可以完全抛弃Javascript。 -比如简单的点击<em>一个</em>按钮<em>弹出</em>窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。 -第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。 -推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。 +目前ExtAspNetAjax的限制。 -只对ExtAspNet控件起作用,对<em>Asp.net</em>控件不起作用。 -对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。 -对改变控件的Visible属性会有错误。 -Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。 -PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用<em>页面</em>第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个<em>页面</em>都添加PageLoading控件。[fixed] -Grid中的回发事件(主要是LinkButtonField和CheckBoxField(RenderAsStaticField=false))要延迟0ms执行,这样当前行被选中的状态在回发后会得到保持。[fixed] -Grid选中行的状态在第一次回发时不能保持的BUG。[fixed] +2008-08-26 v1.0 +已知问题:IE的ActiveX插件IE Developer Toolbar会对IFrame的加载造成0.5m左右的延迟。 -主要是父<em>页面</em>加载<em>一个</em>比较大的css文件(~100k),则每次打开iframe<em>页面</em>,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。 +优化<em>弹出</em>窗口中IFrame的显示速度。[fixed] -在当前<em>页面</em><em>弹出</em>窗口需要~20ms,在父<em>页面</em><em>弹出</em>窗口需要100~300ms。通过缓存<em>弹出</em>的窗口实例,从而第二次<em>弹出</em>窗口不再需要创建时间。 -PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor="#CADDF7",以便分隔符的颜色和Toolbar的颜色一致)[fixed] +PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个<em>页面</em>设置。[fixed] -<em>一个</em>典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。 -TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed] +TabStrip中非当前Tab会延迟渲染。[fixed] -这会明显加快<em>页面</em>的渲染速度,网报中<em>一个</em>典型的费用审批<em>页面</em>可以减少200ms的渲染时间。 -由于非当前Tab不会在<em>页面</em>加载时渲染,所以那些Tab中的节点在<em>页面</em>加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。 -不能比较两个DataPicker大小的BUG。[fixed] -TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据<em>页面</em>空间,已修正)。[fixed] -全新的ExtAspNet.Examples(基础知识/表单控件/数据绑定/容器布局/IFrame框架)。[fixed] +2008-08-19 v0.4 beta6 +PageManager增加两个属性(EnableInlineStyleJavascript/ApplyParentStyleJavascript),可以在IFrame<em>页面</em>中使用父<em>页面</em>的脚本和样式(示例在iframe/default.aspx和iframe/page3.aspx)。[fixed] -测试发现,IFrame<em>页面</em>的加载速度并没有明显加快,可以先不使用此属性。 -RadioButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed] +extjs的BUG,当<em>页面</em>中含有iframe时,Ext.onReady会被调用两次(IE6/IE7)(http://www.extjs.net/forum/showthread.php?t=43246)(示例在test.aspx)[fixed] -现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true; +需要先回发<em>页面</em>再<em>弹出</em>IFrame窗口。[fixed] -在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。 -另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference("./simpleform.aspx"));。 +2008-08-15 v0.4 beta5 -点击关闭窗口的按钮,在IE6下会有JS错误。[fixed] -增加BorderLayout控件,示例在iframe/borderlayout.aspx。[fixed] +Radiobuttonlist显示有重影(示例在radio.aspx)。[fixed] -全新的样式。 -去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。 -GetValueReference取得的值不正确的BUG。 -动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed] +IFrame<em>弹出</em>窗口关闭后回发父<em>页面</em>,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed] -这是<em>一个</em>重要的BUG,会严重影响<em>页面</em>的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父<em>页面</em>后Window中的IFrame被添加到<em>页面</em>,而这是不需要的。 -现在"<em>是否</em><em>弹出</em>窗口、窗口标题、IFrameUrl"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx) +2008-08-13 v0.4 beta4 -点击关闭窗口的按钮,在IE下会有JS错误。[fixed] -Window的右上角关闭图标增加提示,优化事件响应。[fixed] -Window的代码重构。[fixed] +修正<em>一个</em>的内存泄漏。[fixed] -IE7下测试,打开iframe/default.aspx<em>页面</em>,iexplorer占内存68.368M。 -内存存在泄漏时,点击iframe/page3.aspx<em>页面</em>8次后iexplorer占118.792M内存。 -修正后,点击iframe/page3.aspx<em>页面</em>8次后iexplorer占76.492M内存。 -IE窗口最小化时,IE会自动进行垃圾回收。 +2008-08-12 v0.4 beta3 -底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed] -Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight="true"解决)。[fixed] +<em>页面</em>正在加载的提示尽早的显示出来。[fixed] -首先在执行js来完成<em>页面</em>渲染之前延迟5ms,以便浏览器把当前<em>页面</em>内容显示出来。 -加载js脚本的script标签放置在<em>页面</em>的最后,放置加载js而阻塞PageLoading的显示。 +2008-08-08 v0.4 beta2 -TabStrip延时加载出错。[fixed] -Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的<em>页面</em>应该为./FE_ApplyEditor.aspx或~/Pages_ExtAspNet/FE_ApplyEditor.aspx。[fixed] -Window的WindowPosition="Center"并且Target="_parent",则会JS错误。[fixed] -实现网报首页下拉菜单和左侧菜单的导航功能。[fixed] -Window的创建在<em>页面</em>显示后进行,不计算在js渲染时间内。[fixed] -优化费用申请<em>页面</em>(尽量减少不必要的层次嵌套)。[fixed] -button_iframe.aspx默认会加载form.aspx<em>页面</em>(Window控件的BUG)。[fixed] -Window中的保存并关闭按钮和<em>Asp.net</em>Ajax冲突。[fixed] -优化关闭Window的js脚本,减少写到<em>页面</em>的js大小。[fixed] -加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed] +2008-08-05 v0.4 beta1 -DropDownList去除Traditional属性,和传统的<em>Asp.net</em>控件一样不可编辑。[fixed] -DropDownList增加SelectedText属性(去除了模拟树时通过SelectedItem.Text的多余html字符)。[fixed] -为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed] -将生成的js对象的名称简单化,这样可以减少生成的js内容,加快<em>页面</em>加载速度(<em>一个</em>典型<em>页面</em>的js由原来的33.0k降低为21.4k)。[fixed] +<em>弹出</em>窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed] -因为在<em>页面</em>的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向<em>页面</em>注册了一段脚本,但是这段脚本在回发时没有注册到<em>页面</em>,因为js调用此脚本时报错。 -一种解决方法是将向<em>页面</em>注册脚本的函数移动到if语句的外面,即每次都向<em>页面</em>注册此脚本。 -另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向<em>页面</em>注册监视<em>页面</em>中表单内容改变的脚本)的属性(会在每次<em>页面</em>回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx/simpleform.aspx)。 +PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed] -这个手工添加onReady函数能够在每次<em>页面</em>回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。 -每个<em>页面</em>必须添加<em>一个</em>PageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed] -TextField等表单字段增加Readonly属性。[fixed] +全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和<em>Asp.net</em> Ajax保持兼容)。[fixed] -最大的好处是可以减少<em>页面</em>下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下) +示例1,通过点击按钮<em>弹出</em>IFrame窗口,可直接关闭父<em>页面</em>,也可在关闭后刷新或回发父<em>页面</em>。(default.aspx/page2.aspx/simpleform.aspx) -虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加<em>一个</em>属性(Target="_parent"),就完成了两种框架的转换,是不是很酷。 -显然,控件本身封装了大量的代码,简单来看现在有三个<em>页面</em>(default.aspx(A)/page2.aspx(B)/simpleform.aspx(C)),其中A包含B<em>页面</em>,当你在B中打开包含有<em>页面</em>C的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个<em>页面</em>,当你从C中返回需要回发<em>页面</em>B时,却发现取得的是A<em>页面</em>,因为我们窗口是在A<em>页面</em>中创建的。我会通过一篇文章来揭示这一过程,敬请期待。 -示例2,Grid中<em>弹出</em>窗口。(default.aspx/page3.aspx/simpleform.aspx) +示例3,TriggerBox<em>弹出</em>窗口。(default.aspx/triggerbox.aspx/simpleform.aspx) -在整个<em>页面</em><em>弹出</em>窗口或者在当前<em>页面</em><em>弹出</em>窗口,仅仅设置Window的Target属性即可。 -示例4,<em>弹出</em>窗口中的<em>弹出</em>窗口。 -对整个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到<em>页面</em>节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed] -如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed] -Tree控件,点击<em>一个</em>节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed] +规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx/simpleform.aspx)。[fixed] -内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个<em>页面</em>UI,再关闭窗口。 -参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed] -Firefox下,如果<em>页面</em>太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed] +IFrame内的<em>页面</em>宽度和高度会自动设置(是不是还在为1px/2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx/simpleform.aspx/simpleform2.aspx)[fixed] -增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个<em>页面</em>的宽度和高度的Panel),HideScrollbar属性<em>用于</em>隐藏滚动条(IE/Firefox)。 +2008-07-24 v0.3 beta11 -web.config配置信息中MessageTarget改名为FormMessageTarget,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed] -Window在回发时设置的Title不起作用的BUG。[fixed] -增加Image控件 [feedback:jima]。[fixed] -Tree控件,如果<em>一个</em>节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起<em>页面</em>死循环回发 [feedback:zgjiang2]。[fixed] -Image增加ToolTipTitle/ToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed] -去掉DropDownList控件的Text属性(强制性),可以通过设置SelectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed] -过滤提示消息中的换行符(转换为<br/>),否则提示信息可能导致<em>页面</em>渲染错误 [feedback:dcding]。[fixed] +2008-07-23 v0.3 beta10 +完善Tree控件。[fixed] -如何将数据库中的数据绑定到Tree(示例在tree2_bind_database.aspx)。 -ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。 -更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。 -Grid的GridColumn的ID改名成ColumnId,否则同<em>一个</em><em>页面</em>放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed] -Grid所有类型的列增加DataTooltipField/DataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed] +2008-07-22 v0.3 beta9 +IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed] -发现原来ie6不能正确解析li的高度,必须手工设置才行(style="height:20px;")。 +IE6/IE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed] -虽然最后未能解决<div style="width: 60px; white-space: nowrap; overflow: hidden; border: solid 1px red;"><div style="width: 16px; height: 18px; float: left;">##</div>差旅交通费</div>在IE和Firefox下显示的不同效果。 -但是通过用<img src="##" />来代替<div style="background:url(##)" />,从而实现FF和IE下样式的统一。 -刚看到old9的解决方案:把“差旅交通费”改成“<span style="margin-right: -1000px;">差旅交通费</span>”,在IE下和FF下的都不换行,:-) -LinkButton增加OnClick事件 [feedback:huihuang]。[fixed] -Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed] +增加树控件(Tree)(示例在tree2.aspx)。[fixed] -可以在回发时维持树的状态(选中行,折叠/展开,CheckBox)。 -可以通过Inline的方式添加树节点,也可以绑定到XmlDocument/XmlDataSource/SiteMap。 -点击树节点可以链接到<em>页面</em>,也可以引发PostBack事件,可以添加自定义脚本。 +2008-07-16 v0.3 beta8 +ContentPanel中放置ExtAspNet控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed] -隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。 -现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。 +IE6下,在应用<em>Asp.Net</em>Ajax后,Form中字段的宽度渲染不正确。[fixed] -调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。 -最后发现IE6下应用<em>Asp.Net</em>Ajax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG: 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正<em>页面</em>中所有表单的宽度(box_fixFormWidthInIE6();): 示例在 Site.Master <em>页面</em>。 +集成的AspNetAjax有<em>一个</em>很大的BUG,只要你在<em>页面</em>上进行过ajax操作,当改变窗口大小时你会惊讶的发现内容区域的内容全部为空了![fixed] -解决方法相当怪异,经过<em>一个</em>下午的不断尝试,终于用<em>一个</em>怪异的方法解决(box.{0}.setSize(box.{0}.getSize());box.{0}.doLayout();), 这样的代码让我想起刷新窗口时那个方法(window.location.href=window.location.href;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。 +2008-07-14 v0.3 beta6 -增加FlashObject控件。[fixed] -PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed] -Accordion选中样式微调。[fixed] -预加载Form表单出错时提示信息的背景图片。[fixed] +Grid增加EnableDelayRender属性(默认false),可以加快<em>页面</em>的渲染速度(<em>一个</em>典型的20个记录的<em>页面</em>,可提前0.7s-1s显示出来)。[fixed] -因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置"EnableDelayRender=false"。 -改变Grid中静态的CheckBoxField图片。[fixed] -TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击<em>一个</em>Tab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed] +2008-07-12 v0.3 beta5 -<em>页面</em>菜单Toolbar的分割符和背景不相融合。[fixed] -表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed] -如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而<em>一个</em>NumberBox和TextBox比较大小需要指定CompareType。 +如果在编辑<em>页面</em>使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx/ajax_editor.aspx)。[fixed] -这是由于ajax后执行的javascript中不能有return false语句。 +在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed] -在<em>页面</em>添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。 -<em>弹出</em>Window默认显示的错误<em>页面</em>,解决方法在当前目录添加<em>一个</em>空的html<em>页面</em>,然后把Window控件的IFrameUrl指向这个<em>页面</em>而不是"#"。[fixed] +<em>弹出</em>的窗口中的<em>弹出</em>窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个<em>弹出</em>窗口覆盖了 [feedback:xmzhu]。[fixed] -原来的调用方法太麻烦(见示例中alert\alert_1.aspx和alert\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。 -点击提交按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed] +增加Menu、MenuText、MenuSeparator、MenuButton、MenuHyperLink控件,<em>用于</em>按钮的下拉菜单(示例在button_menu.aspx)。[fixed] -增加SplitButton控件。[fixed] +2008-07-09 v0.3 beta4 -DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed] +Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed] -增加ControlToCompare/ValueToCompare/CompareOperator/CompareMessage四个属性,示例在form_compare.aspx。 +TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed] -特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。 -RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed] -FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed] +表单字段Enable=false时显示颜色太浅 [feedback:jima]。[fixed] -覆盖缺省样式的.x-item-disabled,设置不透明。 +2008-07-08 v0.3 beta3 -Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed] +增加HiddenField控件。[fixed] -其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle="display:none;"即可。 +TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed] -最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。 -模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed] +控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed] -增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。 -LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed] +2008-07-07 v0.3 beta2 +增加UpdatePanelConnector控件,支持在布局构建的<em>页面</em>使用<em>Asp.net</em> Ajax。[fixed] -使用UpdatePanelConnector有<em>一个</em>要求:ContentTemplate下只能有<em>一个</em>子节点,比如box:Panel。 -示例在ajax3.aspx/content_page4.aspx。 -示例content_page3.aspx中,点击“Ajax查询”按钮和关闭<em>弹出</em>的窗口(点击右上角的叉)都引发异步更新。 +2008-07-03 v0.3 beta1 +容器控件的AutoHeight/AutoWidth默认为false。[fixed] -使用GroupPanel的地方需要手工添加AutoHeight="true"属性。 +增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.aspx)。[fixed] -也可以在ContentPanel中放置用户控件,注意两者的区别。 +增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed] +支持<em>Asp.net</em> ajax异步加载。[fixed] -有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx/content_ajax2.aspx中。 -对于使用布局构建的<em>页面</em>(比如content_page1.aspx)还不能使用<em>Asp.net</em> ajax,因为<em>页面</em>是整体渲染的,先放弃。 +2008-07-02 v0.2 beta12 +关闭前提示当前<em>页面</em>已经被修改(示例在content_page1.aspx/simpleform.aspx)[fixed] -支持Iframe内按钮和window右上角关闭按钮。 -<em>删除</em>CloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe中做法一致)。 +iframe中的alert/confirm要覆盖整个父<em>页面</em>,而不仅仅是iframe<em>页面</em>。[fixed] -在Firefox下还有问题。[fix pending] +排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed] -可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。 -可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。 +HyperLinkField/WindowField的链接地址支持服务器端格式(即是~/alert.aspx)。[fixed] -TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed] -可以在ContentPanel中放置用户控件(示例在page_usercontrol.aspx)。[fixed] +2008-06-30 v0.2 beta11 -增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed] -Grid的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加<em>删除</em>记录时总记录数不会变化 [feedback:zgjiang2]。[fixed] -关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed] -如果表单验证不通过,则需要<em>弹出</em>对话框提示(第<em>一个</em>没通过验证的字段)(目前还不能切换到相应的tab)。[fixed] +<em>页面</em>中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx/simpleform.aspx)[fixed] -目前还不支持Window右上角关闭按钮的提示保存功能。 -Master/Content的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed] -Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed] -增加静态类Confirm。[fixed] +2008-06-27 v0.2 beta10 +Grid完善。[fixed] -CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。 -Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(<em>一个</em>Grid只能有<em>一个</em>Column指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。 -切换分页时清空选中的值 [feedback:jqpeng]。 -增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。 -DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。 +2008-06-25 v0.2 beta9 +Window窗体中的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.aspx/simpleform.aspx)[fixed] -在simpleform.aspx中:Panel[BodyPadding=5](Toolbar,Panel[Height=450 Layout=Fit](SimpleForm[AutoScroll=true])),则外面窗口的高度=450 + 5*2 + 26 + 32,其中26是Toolbar的高度,32是窗口的标题栏和下边框的高度。 +关闭Iframe的LoadMask,所以需要Iframe<em>页面</em>添加PageLoading控件,这样效果统一。[fixed] +Grid完善。 -去除EnableClientPaging和EnableClientSort属性,客户端排序和客户端分页在<em>ASP.NET</em>应用中会有很多问题(主要是状态保持的问题)。 +EnableServerSort改名AllowSorting。(示例在grid_sorting.aspx) -使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数中重新绑定数据。 +增加AllowPaging属性。(示例在grid_paging.aspx) -使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数中Grid1.PageIndex = e.NewPageIndex;OK。 +数据库分页支持。(示例在grid_database_paging.aspx) -使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数中Grid1.PageIn</a></div><div data-report-view="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/xbtmlove/8269851","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1715350283198_65407\"}","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/xbtmlove/8269851" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/xbtmlove/8269851","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1715350283198_65407\"}","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-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default" class="title" data-v-ca2d15ac>行业贸易商务门户网站系统正式版</a></div> <a target="_blank" href="https://download.csdn.net/download/xbtmlove/8269851" data-report-click="{"mod":"popu_645","index":"4","dest":"https://download.csdn.net/download/xbtmlove/8269851","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1715350283198_65407\"}","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-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default" class="desc" data-v-ca2d15ac>后台管理从前台网站输入http://***.***.***/admin 进入后台管理,管理员:admin 登陆密码:wygkcn123456 ,企业会员测试帐号:wygkcn 密码:123456 ,免费申请虚拟主机域名注册试用http://www.wygk.net/ <em>asp.net</em>行业电子商务网站系统蓝色版下载,B2B电子商务平台、电子商务网站管理系统,专为各行业门户贸易网站设计的,<em>ASP.NET</em>编程的行业B2B电子商务系统全功能,利用B2B仿阿里巴巴电子商务网上贸易网站管理系统,可在全球企业间(B2B)电子商务的建立B2B行业网站著名品牌,汇集海量供求信息,全球领先的网上交易市场和商人社区。 让你像阿里巴拥有超过1400万网商的电子商务网站,遍布220个国家地区,成为全球商人销售产品、拓展市场及网络推广的首选网站,那你就成功了.阿里巴巴,行业门户,网上贸易,b2b,电子商务,内贸,外贸,批发,行业资讯,网上贸易,网上交易,交易市场,在线交易,买卖信息,贸易机会,商业信息,供求信息,采购,求购信息,供应信息,加工合作,代理,商机,行业资讯,商务服务,商务网,商人社区,网商尽在B2B网站管理系统源码,采用<em>asp.net</em>开发,完全B2B商务系统生成html的贸易通商务行业门户功能设计,B2B行业网站模板,行业电子商务网系统,B2B电子商务后台管理程序,B2B商贸网商贸通,全站程序B2B网站整站程序,仿阿里巴巴论坛,生成HTML的蓝色网页模板商贸网站,仿阿里巴巴网上贸易市场<em>asp.net</em>版,仿阿里巴巴贸易网站完整版,仿阿里巴巴网站程序,仿阿里巴巴系统,网域商务仿阿里巴巴,阿里巴巴源码,阿里巴巴,阿里巴巴网,阿里巴巴网站企业会员、供应信息、求购信息、产品库、公司库、专项商机、行业信息、展会服务、人才市场、网站新闻、产品报价 <em>asp.net</em>+mssql架构的b2b行业网站源码行业贸易商务门户网站系统正式版现提供下载了,应用我们这一套程序,完全可建立<em>一个</em>如阿里巴巴一样全球领先的B2B电子商务网上贸易平台的网站系统,有企业B2B网站管理系统应有的找供应,找求购,找企业,找加工,找合作,代理加盟,找服务,行业资讯,价格行情,行业论坛,知道问吧所有模板. 功能简介:[主特色] 开发为参考ALIBABA及慧聪网、买麦网,中国化工网等模式来进行的架构,全面考虑网站性能及功能。 仿阿里巴巴B2B行业商贸商务网站管理系统正式版是 旗下的门户型B2B行业网站系统,采用先进的标签技术和静态生成技术,通过网站后台管理轻松实现网站前台多种风格和会员网站多风格,让每<em>一个</em>只要懂得简单网页制作常识的网友,轻松制作出精美专业的的行业商务网站系统。系统高速、稳定、安全,完全仿阿里巴巴功能设计,有供应信息、求购信息、产品库、公司库、专项商机、行业信息、展会服务、人才市场、会员助手、网商博客、商友论坛、全方位搜索等栏目。功能参考并集中了阿里巴巴、慧聪网、买麦网、中国化工网、第一建材网等国内知名商务网站的优点,并在某些方面超越了他们, 已经协助国内外千家客户提供了专业的服务, 将继续推动中国信息化服务进程 程序特点: 一、采用微软最新.net3.5+MSSQL架构 二、全站生成静态 可以提高网站安全性,防止不良代码注入 可以提高浏览的速度 方便搜索引擎的收录 三、企业会员二级域名 企业注册后自动生成http://user.xxxx.com形式的二级域名,使企业会员的网站地址变的简短、容易记忆,更具吸引力,为网站发展收费会员提供良好的技术保障。 四、界面采用DIV+CSS的标准化设计 大大缩减<em>页面</em>代码,提高<em>页面</em>浏览速度,缩减带宽成本; 结构清晰,容易被搜索引擎搜索到,天生优化了seo 缩短改版时间。只要简单的修改几个CSS文件就可以重新设计<em>一个</em>有成百上千<em>页面</em>的站点。 五、会员自助建站功能 有多套模板可供企业会员选用, 六、标签技术,使网站改版更容易 无论是商机还是新闻都可以任意、灵活的进行调用,轻松做到和其它网站不同的版式。 七、自由化的权限分配管理 前台权限:对商机和新闻等信息浏览和留言进行权限控制;后台权限:对企业会员发布信息的权限进行全面控制,可控制能否发和发多少条信息,为网站发展收费会员奠定基础! 详细介绍: 八、后台操作自由灵活 九、其它更多功能 商机信息: 供应,求购,合作,招商,代理,加工 (可增加减少商机类别,可分别设置其流览,发布权限“可设定会员与VIP会员各自可以发布几条,<em>是否</em>可发”。) 资讯信息: 资讯可无限极分类 包括行业新闻、企业新闻和价格行情,可设置子级分类,可设置其分类排序。 会员注册: 分两种会员结构,普通企业会员、诚信会员。 展会部分: 展会标题,展出时间,申请截止,周  期,创办时间,展会对象,</a></div><div data-report-view="{"mod":"popu_645","index":"5","dest":"https://download.csdn.net/download/mfkjatddd/2641660","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1715350283198_65407\"}","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/mfkjatddd/2641660" data-report-click="{"mod":"popu_645","index":"5","dest":"https://download.csdn.net/download/mfkjatddd/2641660","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1715350283198_65407\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default" class="title" data-v-ca2d15ac>IIS6.0 IIS,互联网信息服务</a></div> <a target="_blank" href="https://download.csdn.net/download/mfkjatddd/2641660" data-report-click="{"mod":"popu_645","index":"5","dest":"https://download.csdn.net/download/mfkjatddd/2641660","strategy":"2~default~OPENSEARCH~Rate","extra":"{\"utm_medium\":\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\",\"dist_request_id\":\"1715350283198_65407\"}","spm":"1035.2023.3001.6557"}" data-report-query="spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default" class="desc" data-v-ca2d15ac>Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XP Home版本上并没有IIS。 添加和运行准备   一、IIS的添加 请进入“控制面板”,依次选“添加/<em>删除</em>程序→添加/<em>删除</em>Windows组件”,将“Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示操作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。   二、IIS的运行 当IIS添加成功之后,再进入“开始→设置→控制面板→管理工具→Internet服务管理器(Internet信息服务)”以打开IIS管理器,对于有“已停止”字样的服务,均在其上单击右键,选“启动”来开启。   三、在Windows XP Home版本中添加IIS的方法一般情况下按照“一”的方法只适<em>用于</em>Windows XP的专业版本,而对于家庭版,如今已有了破解方法:步骤1 首先我们需要准备一张Windows 2000的安装光盘,假设你的Windows XP家庭版安装在“C:\Windows”,启动记事本程序,在打开对话框中选择打开“C:\Windows\inf\sysoc.inf”,找到“[Components]”小节,并继续找到类似“iis= iis.dll,OcEntry,iis. inf,hide,7”的行,把这一行替换为“iis=iis2.dll,OcEntry, iis2.inf,,7”,之后保存文件。   步骤2 把Windows 2000专业版的光盘插入光驱,用Winrar打开光盘i386目录下的iis.dl_和iis. in_这两个CAB格式的文件,将解压缩得到的“iis.dll”改名为“iis2.dll”,复制到“C:\Windows\system32\setup\”目录下;将 “iis. inf”改名为“iis2.inf”,复制到“C:\Windows\inf\”目录下。   步骤3 打开控制面板,单击“添加<em>删除</em>程序”图标,然后在窗口左侧导航栏上单击“添加/<em>删除</em>Windows组件”按钮,在打开的“Windows组件向导” 中,选中“Internet信息服务(IIS)”前的复选框。单击右下角的“详细信息”按钮可以打开对话框,在该对话框中我们可以选择需要安装的IIS组件内容。选择完毕后单击“确定”按钮,退回到界面中再单击“下一步”,系统就会开始复制文件。 提示:如果在安装过程中系统需要插入Windows XP CD,或者需要你提供“exch_adsiisex.dll”文件,那是因为你按照默认的选项安装了IIS。要解决这个问题,只要清空“SMTP Service”选项前的复选框即可。如果进入窗口中,“Internet信息服务(IIS)” 选项无法选择,那么很可能因为你使用的“iis.dl_”和“iis. in_”是从Windows XP专业版中提取的,只要换成 Windows 2000专业版中的这两个文件即可。 步骤4 安装结束后,你可以打开“控制面板→性能和选项→管理工具”查看“Internet信息服务管理”。再打开IE,在地址栏中输入“localhost”后回车,验证一下IIS<em>是否</em>正常运行。 经过验证,WWW、FTP等几个服务经过这样的修改都可以在Windows XP家庭版上正常运行。不过经过这样处理安装的IIS在运行上可能存在某种未知的缺陷。   四、在Vista系统中安装IIS7.0相对于早先的版本,IIS 7.0 带来了许多引人注目的新特色新功能,比如基于 Microsoft .NET Framework 的全局配置文件,可简单地通过文本编辑器或 Microsoft Visual Studio 编辑;全新的 IIS 管理器,可同时管理 IIS 和 ASP. NET,操作更加方便;以及引入了命令行工具 Appcmd.exe ,给 Web 服务器的日常管理、监视和配置提供了除图形接口外的另一种方式,更为简单、高效。 同Windows XP一样,在Windows Vista的默认设置下,IIS (Internet 信息服务) 7.0未予安装,要想使用它,必须首先安装IIS。下面简单介绍IIS的安装过程: 依次点击“开始” => “控制面板” => “程序”,选择“打开或关闭Windows功能”。 这是<em>一个</em>触发UAC的操作,如果Windows Vista没有关闭UAC,则会<em>弹出</em>提示信息,<em>确认</em>并继续; 如果仅需要IIS 7.0支持静态内容,可直接选中“Internet信息服务”,如果希望 Web 服务器支持动态内容,则需展开“万维网服务”分支,将所需的选项全部选中; 点击“确定”,Windows Vista即启动IIS的安装过程; 安装完成后,打开浏览器输入 “http://localhost/”,检查IIS<em>是否</em>正常。 [编辑本段]IIS之Web服务器安装步骤   1、插入windows xp安装光盘,打开控制面板,然后打开其中的“添加/<em>删除</em>程序”   2、在添加或<em>删除</em>程序窗口左边点击“添加/<em>删除</em>Windows组建”[1]   3、捎带片刻系统会启动Windows组建向导,在Internet信息服务(IIS)前面选勾,点击下一步:   4、系统安装成功,系统会自动在系统盘新建网站目录,默认目录为:C:\Inetpub\wwwroot   5、打开控制面板-性能和维护-管理工具-Internet 信息服务:   6、在默认网站上点击右键-选择属性:   7、点击主目录:在本地路输入框后点击浏览可以更改网站所在文件位置,默认目录为:C:\Inetpub\wwwroot   在执行权限后面点击配置-调试-教本错误信息,选中:向客户端发送文本错误信息:处理 URL 时服务器出错。请与系统管理员联系。   点击文档:可以设置网站默认首页,推荐<em>删除</em>iisstart.asp,添加index.asp和index.htm   点击目录安全性:点击编辑可以对服务器访问权限进行设置   8、把凡人网络购物系统V7.0文件复制到你选择的网站目录下,假设你选择的目录为为默认目录:C:\Inetpub\wwwroot   9、把frshop.rar解压之后的文件复制到C:\Inetpub\wwwroot\shop下即可   10、您可以通过以下方式访问商城:   http://localhost/shop/ 或 http://127.0.0.1/shop/ 或 http://计算机名/shop/ 或 http://本机IP地址/shop/ 访问   其它人可以通过http://计算机名/shop/ 或 http://本机IP地址/shop/ 访问   11、如果您有域名,把域名解析到本地IP地址,即可通过http://域名/shop/ [编辑本段]IIS之Web服务器建立   第一篇 IIS之Web服务器   一、建立第<em>一个</em>Web站点   比如本机的IP地址为192.168.0.1,自己的网页放在D:\Wy目录下,网页的首页文件名为Index.htm,现在想根据这些建立好自己的Web服务器。   对于此Web站点,我们可以用现有的“默认Web站点”来做相应的修改后,就可以轻松实现。请先在“默认Web站点”上单击右键,选“属性”,以进入名为“默认Web站点属性”设置界面。   1.修改绑定的IP地址:转到“Web站点”窗口,再在“IP地址”后的下拉菜单中选择所需用到的本机IP地址“192.168.0.1”。   2.修改主目录:转到“主目录”窗口,再在“本地路径”输入(或用“浏览”按钮选择)好自己网页所在的“D:\Wy”目录。   3.添加首页文件名:转到“文档”窗口,再按“添加”按钮,根据提示在“默认文档名”后输入自己网页的首页文件名“Index.htm”。   4.添加虚拟目录:比如你的主目录在“D:\Wy”下,而你想输入“192.168.0.1/test”的格式就可调出“E:\All”中的网页文件,这里面的“test”就是虚拟目录。请在“默认Web站点”上单击右键,选“新建→虚拟目录”,依次在“别名”处输入“test”,在“目录”处输入“E:\All”后再按提示操作即可添加成功。   5.效果的测试:打开IE浏览器,在地址栏输入“192.168.0.1”之后再按回车键,此时就能够调出你自己网页的首页,则说明设置成功!   注:具体不同的电脑会有不同的选项名称,但大体上还是可以找到了(多试一下)。   二、添加更多的Web站点   1.多个IP对应多个Web站点   如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web<em>页面</em>,则只需在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意<em>用于</em>说明它的内容(比如为“我的第二个Web站点”)、在“输入Web站点使用的IP地址”的下拉菜单处选中需给它绑定的IP地址即可;当建立好此Web站点之后,再按上步的方法进行相应设置。   2.<em>一个</em>IP地址对应多个Web站点   当按上步的方法建立好所有的Web站点后,对于做虚拟主机,可以通过给各Web站点设不同的端口号来实现,比如给<em>一个</em>Web站点设为80,<em>一个</em>设为81,<em>一个</em>设为82……,则对于端口号是80的Web站点,访问格式仍然直接是IP地址就可以了,而对于绑定其他端口号的Web站点,访问时必须在IP地址后面加上相应的端口号,也即使用如 “http://192.168.0.1:81” 的格式。   很显然,改了端口号之后使用起来就麻烦些。如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同“主机头名”的方法,可以让你直接用域名来完成对不同Web站点的访问。   比如你本机只有<em>一个</em>IP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,<em>一个</em>是“默认Web站点”,<em>一个</em>是“我的第二个Web站点”,现在你想输入“www.enanshan. com”可直接访问前者,输入“www.popunet. com”可直接访问后者。其操作步骤如下:   (1)请确保已先在DNS服务器中将你这两个域名都已映射到了那个IP地址上;并确保所有的Web站点的端口号均保持为80这个默认值。   (2)再依次选“默认Web站点→右键→属性→Web站点”,单击“IP地址”右侧的“高级”按钮,在“此站点有多个标识下”双击已有的那个IP地址(或单击选中它后再按“编辑”按钮),然后在“主机头名”下输入“www.enanshan. com”再按“确定” 按钮保存退出。   (3)接着按上步同样的方法为“我的第二个Web站点”设好新的主机头名为“www.popunet.c o m”即可。   (4)最后,打开你的IE浏览器,在地址栏输入不同的网址,就可以调出不同Web站点的内容了。   3.多个域名对应同个Web站点   你只需先将某个IP地址绑定到Web站点上,再在DNS服务器中,将所需域名全部映射向你的这个IP地址上,则你在浏览器中输入任何<em>一个</em>域名,都会直接得到所设置好的那个网站的内容。   搭建IIS服务器应该注意的安全问题   1.iis安全设置之安装系统补丁。对于服务器来说就特别重要,因为安全补丁关乎到系统安全,而微软网站经常发布最新的系统安全补丁,可以用系统自带的windows update程序随时更新。   2.iis安全设置之FTP目录的设定。FTP目录没有设置也容易被别人攻击,一般的就是将主目录指定到逻辑盘。为了安全,要对对每个目录按不同的用户设置不同的访问权限,然后关闭一些不需要的服务,这样可以对不良人士利用IIS溢出漏洞访问到系统盘作个第一级防护。   3.iis安全设置之端口设置。IIS有默认的端口设置,只要稍有计算机知识的人都会记得这些端口的,要破解的话就十分的方便,所以尽量不要使用21这个默认端口号,并启用日志,以便FTP服务出现异常时检查。 [编辑本段]对IIS服务的远程管理   三、对IIS服务的远程管理   1.在“管理Web站点”上单击右键,选“属性”,再进入“Web站点”窗口,选择好“IP地址”。   2.转到“目录安全性”窗口,单击“IP地址及域名限制”下的“编辑”按钮,点选中“授权访问”以能接受客户端从本机之外的地方对IIS进行管理;最后单击“确定”按钮。   3.则在任意计算机的浏览器中输入如“http://192.168.0.1:3598”(3598为其端口号)的格式后,将会出现<em>一个</em>密码询问窗口,输入管理员帐号名(Administrator)和相应密码之后就可登录成功,现在就可以在浏览器中对IIS进行远程管理了!在这里可以管理的范围主要包括对Web站点和FTP站点进行的新建、修改、启动、停止和<em>删除</em>等操作。 [编辑本段]有关IIS的常见问题解答   四、本部分常见问题解答   Q:在上文中所涉及到的网址中,有的加了“http://”,有的没加,这意味着什么呢?   A:没有加“http://”部分的网址,说明其可加可不加;而加了“http://”部分的,则说明它必不可少!对于带端口号的网址则必须加;否则可省略。   Q:对于上文中涉及到IP地址的网址,可否用比较“友好”的名称来代替呢?   A:可以!它除了能够用IIS服务器所在的计算机名来代替之外,还可在DNS服务器中新建域名和相应IP地址的映射表,就也可以用域名来进行访问了!   Q:我设置好了<em>一个</em>Web服务器,但是当我访问网页时,却出现密码提示窗口。这是为什么?   A:访问Web站点时,出现密码提示窗口,一般来说有以下原因,请逐个去进行检查:   1.所访问的网页文件本身加了密。比如“默认Web站点”原主目录“E:\Inetpub\wwwroot”下的首页文件“iisstart.asp”访问时就需要密码。   2.没有设置允许匿名访问或作了不应该的改动.首先应确保已勾选中了“匿名访问”这一项;并且其下“编辑”中“匿名用户帐号”中“用户名”一项应为“IUSR_NODISK”(其中“NODISK”为计算机名)的格式;另外,还需要已勾选中“允许IIS控制密码”一项。   3.你的目标目录被限制了访问权限。此项仅当该目录位于NTFS格式分区中时才可能出现。请在其上单击右键,选“属性”,再进入“安全”窗口,看列表中是不是默认的允许“Everyone”组完全控制的状态,如不是,请改回 。 [编辑本段]IIS之FTP服务器   第二篇 IIS之FTP服务器   一、建立你的FTP站点   第<em>一个</em>FTP站点(即“默认FTP站点”)的设置方法和更多FTP站点的建立方法请参照前文Web服务器中相关操作执行。需要注意的是,如果你要用<em>一个</em>IP地址对应多个不同的FTP服务器,则只能用使用不同的端口号的方法来实现,而不支持“主机头名”的做法。   对于已建立好的FTP服务器,在浏览器中访问将使用如“ftp://192.168.0.1”或是“ftp://192.168.0.1:22的格式”;除了匿名访问用户(Anonymous)外,IIS中的FTP将使用Windows 2000自带的用户库(可在“开始→程序→管理工具→计算机管理”中找到“用户”一项来进行用户库的管理)。 最后,关键一步还有就是将你的电脑变为网络中的一台服务器,所以你要在你的电脑中装上<em>一个</em>合适的代理服务器软件并运行。   二、本部分常见问题解答   Q:如何修改FTP服务器登录成功或退出时的系统提示信息?   A:在相应的FTP站点上单击右键,选“属性”,再转到“消息”窗口,在“欢迎”处输入登录成功之后的欢迎信息,在“退出”处输入用户退出时的欢送信息即可。   Q:为什么我的FTP服务器建立成功之后,除了管理员(Administrator)和匿名用户(Anonymous)之外,普通用户都不能在本机上登录;可在其他计算机上却能够正常使用。这是为什么?   A:因为默认的,普通用户不具有在本机登录的权限。如果要修改,请进入“开始→程序→管理工具→本地安全策略”中选择“左边框架→本地策略→用户权利指派”,再在右边框架中双击“在本地登录”项,然后将所需的普通用户添加到它的列表中去就行了。 [编辑本段]IIS之SMTP服务器   第三篇 IIS之SMTP服务器   如果你嫌互联网上的那些免费邮件发送邮件的速度过慢的话,你或许可以考虑用IIS来建立<em>一个</em>本地的SMTP服务器。不管你是直接连入互联网还是通过局域网接入,不管你是有静态的IP地址还是用动态的IP地址,都可以很轻松地建立成功!   建立IIS下的SMTP服务器的方法非常简单,只需在IIS管理器中让“默认SMTP虚拟服务器”处于已启动状态就行了;此外一般不用再做其他任何设置。   如果你想要用自己的SMTP服务器发信,只需将你E-mail客户端软件设置中“发送邮件服务器(SMTP)”项中填入“localhost”,则不管你的IP地址如何变化,它都能正常工作, 。   当你使用自己的这个SMTP服务器发送E-mail时,不仅有不受制于人的自由感,更有闪电般的发信速度,是个人SMTP服务器的最佳选择!   IIS版本对应的windows版本信息   2000 iis版本是5.0   xp 版本是5.1   2003版本是6.0   2008版本是7.0 [编辑本段]IIS 状态解释 概要   当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回<em>一个</em>表示该请求的状态的数字代码。该状态代码记录在 IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体请求<em>是否</em>已成功,还可以揭示请求失败的确切原因。 更多信息   日志文件的位置   在默认状态下,IIS 把它的日志文件放在 %WINDIR\System32\Logfiles 文件夹中。每个万维网 (WWW) 站点和 FTP 站点在该目录下都有<em>一个</em>单独的目录。在默认状态下,每天都会在这些目录下创建日志文件,并用日期给日志文件命名(例如,exYYMMDD.log)。   HTTP   1xx - 信息提示   这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收<em>一个</em>或多个 1xx 响应。 • 100 - 继续。   • 101 - 切换协议。   2xx - 成功   这类状态代码表明服务器成功地接受了客户端请求。 • 200 - 确定。客户端请求已成功。   • 201 - 已创建。   • 202 - 已接受。   • 203 - 非权威性信息。   • 204 - 无内容。   • 205 - 重置内容。   • 206 - 部分内容。   3xx - 重定向   客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的<em>页面</em>,或通过代理服务器重复该请求。 • 302 - 对象已移动。   • 304 - 未修改。   • 307 - 临时重定向。   4xx - 客户端错误   发生错误,客户端似乎有问题。例如,客户端请求不存在的<em>页面</em>,客户端未提供有效的身份验证信息。 • 400 - 错误的请求。   • 401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: • 401.1 - 登录失败。   • 401.2 - 服务器配置导致登录失败。   • 401.3 - 由于 ACL 对资源的限制而未获得授权。   • 401.4 - 筛选器授权失败。   • 401.5 - ISAPI/CGI 应用程序授权失败。   • 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。   • 403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: • 403.1 - 执行访问被禁止。   • 403.2 - 读访问被禁止。   • 403.3 - 写访问被禁止。   • 403.4 - 要求 SSL。   • 403.5 - 要求 SSL 128。   • 403.6 - IP 地址被拒绝。   • 403.7 - 要求客户端证书。   • 403.8 - 站点访问被拒绝。   • 403.9 - 用户数过多。   • 403.10 - 配置无效。   • 403.11 - 密码更改。   • 403.12 - 拒绝访问映射表。   • 403.13 - 客户端证书被吊销。   • 403.14 - 拒绝目录列表。   • 403.15 - 超出客户端访问许可。   • 403.16 - 客户端证书不受信任或无效。   • 403.17 - 客户端证书已过期或尚未生效。   • 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。   • 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。   • 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。   • 404 - 未找到。 • 404.0 -(无) – 没有找到文件或目录。   • 404.1 - 无法在所请求的端口上访问 Web 站点。   • 404.2 - Web 服务扩展锁定策略阻止本请求。   • 404.3 - MIME 映射策略阻止本请求。   • 405 - 用来访问本<em>页面</em>的 HTTP 谓词不被允许(方法不被允许)   • 406 - 客户端浏览器不接受所请求<em>页面</em>的 MIME 类型。   • 407 - 要求进行代理身份验证。   • 412 - 前提条件失败。   • 413 – 请求实体太大。   • 414 - 请求 URI 太长。   • 415 – 不支持的媒体类型。   • 416 – 所请求的范围无法满足。   • 417 – 执行失败。   • 423 – 锁定的错误。   5xx - 服务器错误   服务器由于遇到错误而不能完成该请求。 • 500 - 内部服务器错误。 • 500.12 - 应用程序正忙于在 Web 服务器上重新启动。   • 500.13 - Web 服务器太忙。   • 500.15 - 不允许直接请求 Global.asa。   • 500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。   • 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。   • 500.100 - 内部 ASP 错误。   • 501 - 页眉值指定了未实现的配置。   • 502 - Web 服务器用作网关或代理服务器时收到了无效响应。 • 502.1 - CGI 应用程序超时。   • 502.2 - CGI 应用程序出错。application.   • 503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。   • 504 - 网关超时。   • 505 - HTTP 版本不受支持。   常见的 HTTP 状态代码及其原因   • 200 - 成功。 此状态代码表示 IIS 已成功处理请求。   • 304 - 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。   • 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。   • 401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。例如,如果 IUSR 帐户无权访问 C:\Winnt\System32\Inetsrv 目录,您会看到这个错误。   • 403.1 - 执行访问被禁止。 下面是导致此错误信息的两个常见原因: • 您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。   • 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射<em>是否</em>设置为允许所使用的谓词。   • 403.2 - 读访问被禁止。验证<em>是否</em>已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件<em>是否</em>存在。   • 403.3 - 写访问被禁止。 验证 IIS 权限和 NTFS 权限<em>是否</em>已设置以便向该目录授予写访问权。   • 403.4 - 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该<em>页面</em>。   • 403.5 - 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该<em>页面</em>。   • 403.6 - IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。   • 403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。   • 403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。   • 403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。   注意:Microsoft Windows 2000 PRofessional 和 Microsoft Windows XP PRofessional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。   • 403.12 - 拒绝访问映射表。 您要访问的<em>页面</em>要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。   • 404 - 未找到。 发生此错误的原因是您试图访问的文件已被移走或<em>删除</em>。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。   • 500 - 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。   • 500.12 - 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新<em>页面</em>后,此信息即会消失。如果刷新<em>页面</em>后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。   • 500-100.ASP - ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。   • 502 - 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。 [编辑本段]IIS相关总结   IIS是Internet Information Server的缩写,它是微软公司主推的服务器,最新的版本是Windows7里面包含的IIS 7.0,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。   IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。   IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。   IIS支持服务器应用的Microsoft BackOffice系列,Microsoft BackOffice系列包括以下内容:   1,Microsoft Exchange Server 客户/服务器通讯和群组软件;   2,Mirrosoft Proxy Server 代理服务器;   3,<em>用于</em>连接IBM企业网络的Microsoft SNA Server;   4,<em>用于</em>集中管理分布式系统的Microsoft Systems Management Server;   5,Microsoft Commercial Internet System(MCIS)。   IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。   IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Nerwork Management Protocol,简单网络管理协议)之类的NT已有管理工具。   IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。<em>用于</em>32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多<em>用于</em>Internet邮件扩展),它可以为Internet应用程序的访问提供<em>一个</em>简单的注册项。   IIS的<em>一个</em>重要特性是支持ASP。IIS 3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。   GHOST系统不能安装IIS处理方法:   1、在控制面板→添加/<em>删除</em>程序→添加/<em>删除</em>Windows组件中应该没IIS给你选的。   3、下载软件XP-IISpatch,运行修复后在添加/<em>删除</em>Windows组件中就会出现IIS。接着就和一般情况下安装IIS一样了,不过途中需要多次重新指定你所下载的IIS安装包。但如果你不幸安装途中出现无法复制文件之类的错误无法安装,就要在DOS命令提示符下运行“esentutl /p %windir%\security\database\secedit.sdb”修复secedit.sdb文件,点YES就可以了,但保险起见最好在运行XP-IISpatch修复后就输入命令修复secedit.sdb文件,等出错后再修复secedit.sdb文件有可能导致无法继续安装。   4、由于是安装包装的,因此还有后续工作要做,不然有可能会出错。   5、开始→运行,输入msdtc -resetlog,解决无法进入“控制台根目录”->"组件服务"->"计算机"->"我的电脑"->"COM+应用程序"和 进入“控制台根目录”->"组件服务"->"计算机"->"我的电脑"->"COM+应用程序", 出错,错误代码8004E00F-COM+无法与Microsoft分布式事务协调程序 。 [编辑本段]IIS 5.1和IIS 6.0一些显著的重要区别 核心功能和服务   已对 IIS 6.0 进行了重新设计以便利用基本 Windows 内核 HTTP.sys。这使其具有内置的响应和请求缓存和队列功能,并能够将应用程序进程请求直接路由到工作进程,从而改善可靠性和性能。 IIS 6.0 引入了两种<em>用于</em>配置应用程序环境的操作模式:工作进程隔离模式和 IIS 5.0 隔离模式。在安装 IIS 6.0 时默认的隔离模式取决于您执行的是全新安装还是升级。 在全新安装 IIS 6.0 之后,IIS 以工作进程隔离模式运行。   在从较低版本的 IIS 6.0 升级之后,隔离模式与以前安装的 IIS 6.0 版本所配置的相同。   在从 IIS 5.0 或 IIS 4.0 升级之后,在默认情况下,IIS 6.0 以 IIS 5.0 隔离模式运行,这样可保持与现有应用程序的兼容性。   有关从一种隔离模式切换到另一种隔离模式的信息,请参阅配置隔离模式。    IIS 5.0 IIS 5.1 IIS 6.0 平台 Windows 2000 Windows XP Professional Windows Server 2003 家族 体系结构 32 位 32 位和 64 位 32 位和 64 位 应用程序进程模型 TCP/IP 内核   DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) TCP/IP 内核   DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) HTTP.sys 内核   当 IIS 以 IIS 5.0 隔离模式运行时:Inetinfo.exe(对于进程内应用程序)或 DLLhost.exe(对于进程外应用程序) 当 IIS 以工作进程隔离模式运行时:W3wp.exe(多工作进程) 配置数据库配置 二进制 二进制 XML 安全性 Windows 身份验证   SSL Kerberos Windows 身份验证   SSL Kerberos 安全向导 Windows 身份验证   SSL Kerberos 安全向导 Passport 支持 远程管理 HTMLA 无 HTMLA   终端服务 远程管理工具 (HTML)   终端服务 群集支持 IIS 群集 Windows 支持 Windows 支持 WWW 服务 Windows 9x 上的个人 Web 管理器   Windows 2000 上的 IIS (可选)Windows XP Professional 上的 IIS Windows IIS 5.0 隔离模式   IIS 5.0 隔离模式按照与 IIS 5.0 中的进程管理相似的方式管理应用程序进程:所有的进程内应用程序都在 Inetinfo.exe 内运行,进程外应用程序在单独的 DLL 宿主中运行。一些现有应用程序可能无法并发运行或将会话状态与应用程序分开存储。因此,在 IIS 5.0 隔离模式中运行进程可以确保与大多数现有应用程序的兼容性。下图显示如何在 IIS 5.0 隔离模式中处理应用程序进程。 配置数据库配置   IIS 6.0 的配置数据库以 XML 文件形式存储,而不是以早期版本中的二进制格式存储。位置仍在原处,但是操作方式(更新、回滚、还原和扩展)已发生了变化。有两个重要文件,并非<em>一个</em>:MetaBase.xml 和 MBSchema.xml。 有关 IIS 配置数据库的详细信息,请参阅关于配置数据库。 管理   在 IIS 4.0 中,应用程序既可以在与 Internet 服务相同的进程中运行,也可以在单独的进程中运行。在 IIS 5.0 和 5.1 中,应用程序现在可以分为若干汇集的进程以增强性能并提高可伸缩性。 详细信息,请参阅关于应用程序。在 IIS 6.0 工作进程隔离模式中,可将应用程序组合到任意数量的应用程序池中。   “应用程序映射”属性页包含<em>一个</em>超文本传输协议 (HTTP) 动作列表,它们可由映射到特定文件类型的应用程序进行处理。该动作列表与 IIS 4.0 有一处不同。在 IIS 4.0 中,列表中包含“已排除”或未被处理的动作。这个改变是为了适应新的 HTTP 动作,以便将其添加到协议中。 有关应用程序映射的详细信息,请参阅设置应用程序映射。   群集不是 IIS 6.0 的功能(不支持 IISsynche.exe)。群集是 Windows Server 2003 家族的功能。有关 Windows 群集 (MSCS) 的信息,请参阅 Windows Server 2003 家族的帮助。   与 IIS 4.0 相比,IIS 5.0 中自定义错误文件的位置已经改变。 详细信息,请参阅启用详细的自定义错误消息。   已经添加了新的自定义错误文件,以便报告更详细的错误信息以及与新功能有关的错误。 有关可用的自定义错误消息的完整列表,请参阅关于自定义错误消息。   基于 Web 的 Internet 服务管理器 (HTML) 已经由 Web 工具应用。要使用 Internet 服务管理器 (HTML) 远程管理 IIS, 请参阅如何远程管理服务器。 以编程方式管理   在早期版本的 IIS 中,可以从编译的 C++ 应用程序使用管理基本对象 (ABO) 或者从 C++ 或脚本文件使用 Active Directory 服务界面 (ADSI) 以编程方式管理 IIS。IIS 6.0 包括了 Windows 管理规范 (WMI) 提供程序,WMI 这一技术允许管理员以编程方式控制所有服务和应用程序。详细信息,请参阅使用 IIS WMI 提供程序。有关新的 ADSI 方法的信息,请参阅 IIS 6.0 中的配置数据库更改。 Active Server Pages   从 IIS 6.0 开始,Microsoft Active Server Pages (ASP) 可以与 Microsoft ASP.N E T 一起使用。有关配置 IIS 以运行 ASP.N E T 应用程序的信息,请参阅 ASP.N E T。有关 IIS 6.0 中 ASP 功能更改的信息,请参阅 ASP 中的重要更改。 ASP 挂起检测   当 IIS 网站繁忙时,可能会出现这种情况:已经产生了最大数量的 ASP 线程,而一些 ASP 线程却挂起,这会导致性能降低。IIS 6.0 能够通过回收作为 ASP ISAPI 扩展 (ASP.dll) 的特定实例宿主的工作进程来解决线程挂起问题。当 ASP 线程在 IIS 6.0 中挂起时,ASP.dll 调用 ISAPI 服务器支持函数 HSE_REQ_REPORT_UNHEALTHY,WWW 服务回收作为 ASP.dll 宿主的工作进程,并在事件日志中创建<em>一个</em>项目。 有关 ISAPI 服务器支持函数的详细信息,请参阅 MSDN® Online 上 ISAPI 扩展参考中的 ServerSupportFunction。 安全性   IIS 6.0 中的<em>一个</em>最重要的变动涉及 Web 服务器安全性。为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS 安装在 Microsoft Windows Server 2003 家族的成员上。 要点 为了更好地预防恶意用户和攻击者的攻击,没有将 IIS 默认安装到 Microsoft® Windows® Server 2003 家族的成员上。而且,当您最初安装 IIS 时,该服务在高度安全和“锁定”的模式下安装。在默认情况下,IIS 只为静态内容提供服务 - 即,ASP、ASP.N E T、服务器端包含、WebDAV 发布和 FrontPage® Server Extensions 等功能只有在启用时才工作。如果安装 IIS 之后未启用该功能,则 IIS 返回<em>一个</em> 404 错误。您可以为动态内容提供服务,并通过 IIS 管理器中的 Web 服务扩展节点启用这些功能。同样,如果应用程序扩展未在 IIS 中进行映射,则 IIS 返回<em>一个</em> 404 错误。要映射扩展,请参阅设置应用程序映射。有关如何排解 404 错误(包括 404.2 和 404.3)、与 IIS 6.0 的新安装相关的问题或从低版本的 IIS 进行升级的详细信息,请参阅疑难解答。 通过 Web 服务器证书向导和 CTL 向导,您可以同步 Web 和 NTFS 的安全设置、获得并安装服务器证书以及创建和修改证书信任列表。还可以选择<em>一个</em>加密服务提供程序 (CSP) 以使用证书加密数据。 详细信息,请参阅使用证书向导。 IIS 6.0 中的其他安全性变动包括下列内容: 在升级版本上禁用:除非满足下列条件之一,否则在 Windows Server 2003 家族的升级版本上禁用万维网发布服务(WWW 服务):   在开始升级过程之前,您已在 Windows 2000 Server 上运行了 IIS 锁定向导。IIS 锁定向导通过禁用不必要的功能来减少攻击面,并且它允许您确定为站点启用哪些功能。IIS Lockdown Tool 中提供了 IIS 锁定向导。 要点   如果使用 WWW 服务,则强烈建议您在升级到 Windows Server 2003 家族中的产品之前,在 Windows 2000 Server 上运行 IIS 锁定向导。IIS 锁定向导通过禁用或<em>删除</em> Windows 2000 Server 安装中不需要的功能来保护计算机的安全。否则,升级后计算机上仍保留这些功能,这会使您的服务器易受攻击。 注册表项 RetainW3SVCStatus 已添加到注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC 的下面。在 RetainW3SVCStatus 下,您可以添加任何值,然后给它赋予<em>一个</em> DWORD 值。例如,您可以创建注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\RetainW3SVCStatus\do_not_disable,并且 DWORD 值为 1。   对于无人参与的安装,“DisableWebServiceOnUpgrade = false”项存在于无人参与的安装脚本中。   通过组策略禁用 IIS:通过使用 Windows Server 2003 家族成员,域管理员可以禁止用户在其计算机上安装 IIS。   以具有低级访问权限的帐户运行:IIS 工作进程在访问权限极少的用户上下文中运行。这大大减少了潜在攻击的影响。   提高 ASP 的安全性:所有的 ASP 内置功能总是以具有极少访问权限的帐户 IUSR_computername 运行。   运行可执行文件的限制:为了运行系统文件夹中的大多数可执行文件(如 cmd.exe),您必须是 Administrators 组、LocalSystem、Interactive 或 Service 帐户的成员。该限制限制了对 Administrators 的远程访问,因此匿名用户无法运行可执行文件。   修补程序管理:对于修补程序管理,管理员可在不中断服务的情况下安装最新的安全修补程序。   已知的扩展:IIS 只为对具有已知文件扩展名的文件的请求提供服务。如果请求内容的文件扩展名未映射到已知的扩展,则服务器拒绝请求。   内容的写保护:在默认情况下,拒绝匿名用户(以 IUSR_computername 帐户运行)对 Web 内容进行写入访问。   超时和限制:在 IIS 6.0 中,默认设置是安全而主动的,这样可最大限度地减少因以前太宽松的超时和限制而造成的攻击。   上载数据限制:管理员可以限制能上载到服务器的数据。   缓冲区溢出保护:工作进程会检测缓冲区溢出,并在检测到时退出程序。   文件验证:IIS 在将请求发送到请求处理程序(ISAPI 扩展)之前会验证请求的内容<em>是否</em>存在。   索引资源:该权限现在会在默认情况下启用。   脚本资源访问:该权限允许访问 ASP 页脚本和其他脚本的“源代码”,它是新增功能,且在默认情况下被禁用。它可在选择了“读取”或“写入”权限时可用。   子验证:在新安装的 IIS 6.0 中,在默认情况下不再启用。有关详细信息,请参阅 匿名身份验证中的“使用子验证”部分。   UNC 身份验证:在此版本的 IIS 中,UNC 身份验证方法检查<em>是否</em>有用户凭据。详细信息,请参阅 UNC 身份验证。   新策略:“禁止安装 IIS”策略已经添加到 Windows Server 2003 产品家族中。该策略允许域管理员控制可以在域中哪些计算机上安装 IIS。详细信息, 请参阅 Windows 帮助中的组策略。   Fortezza:已取消了对该功能的支持。 性能   为了限制分配给 ASP 页的内存量,IIS 已经将 AspScriptFileCacheSize 的默认值设置为 250 个 ASP 页,并将 AspScriptEngineCacheMax 的默认值设置为 125 个脚本引擎。在具有一组大量经常请求的 ASP 页的站点上,可以将 ASPScriptFileCacheSize 设置得更高一些。因为 ASP 页的编译比从缓存中检索页要慢很多,所以这会改善性能。在只具有少量经常请求的 ASP 页的站点上,可通过将该数字设置得小一些来节省内存。 IIS 工具组件   Windows NT Server 的协作数据对象 (CDONTS):CDONTS 已从 Windows Server 2003 家族中<em>删除</em>。如果 Web 应用程序使用 CDONTS,则可以将它们转换为 Microsoft 协作数据对象 (CDO)。CDONTS 中的大多数方法在 CDO 中都有相匹配的方法,但是名称可能不同。有关平台软件开发工具包 (PSDK) 中 CDO 的参考资料,请参阅 MSDN Online 上的 Overview of CDO。   未安装 IIS 工具组件:Ad Rotator、Browser Capabilities、Content Linker、Content Rotator、Counters、Logging Utility、My Info、Page Counter、Status 和工具不随 IIS 6.0 一起安装。但是,如果您的 Web 服务器是从低版本的 IIS 升级的,则这些工具组件不会被<em>删除</em>。您可以从 IIS 6.0 资源工具包中获取工具组件 DLL 文件的副本。   64 位 Windows Server 2003 家族上的 IIS   在 64 位 Windows Server 2003 家族的操作系统上,IIS 作为 64 位应用程序运行。这意味着不能从 64 位 Windows Server 2003 家族的操作系统上的 IIS 调用 32 位应用程序。例如,Jet 数据库引擎将不能转换为 64 位应用程序,因此,不能使用 ActiveX® 数据对象 (ADO) 从 ASP 页打开 Microsoft Access 数据库。但是,仍可以使用 ADO 访问其他驱动程序,如 SQL 和 Exchange。</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="62072" class="item" data-v-4722a3ae><p class="num" data-v-4722a3ae> 62,072 </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-5092" aria-hidden="true" class="el-popover el-popper popo share-popover" style="width:265px;display:none;"><!----><div id="tool-QRcode" class="QRcode" data-v-ca030a68><img src="https://csdnimg.cn/release/cmsfe/public/img/shareBg2.05330abf.png" alt="" class="share-bg" data-v-ca030a68> <div class="share-bg-box" data-v-ca030a68><div class="share-content" data-v-ca030a68><img src="https://img-community.csdnimg.cn/avatar/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":"DgHVV1bX-I31DGrfEgwHHL5rRKpKWX7eOQ9w","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_3164112060-1715350283165-657447;","ip":"18.220.13.70","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":62072,"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":"340060108","contentId":340060108,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F340060108","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F340060108","createTime":"2010-05-21 05:42:56","updateTime":"2021-05-28 17:09:53","resourceUsername":"zhanghui166","best":0,"top":0,"text":null,"publishDate":"2010-05-21","lastReplyDate":"2011-05-05","type":"13","nickname":"zhanghui166","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","username":"zhanghui166","commentCount":19,"diggNum":0,"digg":false,"viewCount":2514,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":"asp.net的页面怎么弹出一个提示框,用于是否确认删除","insertFirst":false,"likeInfo":null,"description":"前台在datalist里面有一个LinkButton,点击的时候后台删除一条记录,可没有任何提示,怎么在点击的时候弹出向下面图片一样的提示框。 我用这种方法可以弹出一个提示框,可不知道是啥意思。ScriptManager.RegisterStartupScript(hidden1, this.GetType(), \"warning\", \"alert('感谢支持')\", true); 能不能再后台弹出下面的框框,返回TRUE或者FALSE让我执行是否要删除啊。 ","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221026062022.png","content":"前台在datalist里面有一个LinkButton,点击的时候后台删除一条记录,可没有任何提示,怎么在点击的时候弹出向下面图片一样的提示框。\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n我用这种方法可以弹出一个提示框,可不知道是啥意思。ScriptManager.RegisterStartupScript(hidden1, this.GetType(), "warning", "alert('感谢支持')", true);\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n能不能再后台弹出下面的框框,返回TRUE或者FALSE让我执行是否要删除啊。\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\u003Cimg src=\"http:\u002F\u002Fpic.wenwen.soso.com\u002Fp\u002F20100521\u002F20100521172920-1659571921.jpg\" alt=\"\" \u002F\u003E","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":null,"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F16.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","nickname":"zhanghui166","selfdesc":"","createdate":"2008-07-15 20:56:00","days":"5779","years":"16","username":"zhanghui166","school":null,"company":null,"job":null},"userName":"zhanghui166","event":"创建了帖子","body":"2010-05-21 05:42","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":19,"total":0,"list":[{"hit":null,"hitMsg":null,"content":"[Quote=引用 3 楼 lirenniao 的回复:]\u003Cbr \u002F\u003E\nC# code\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n <asp:ImageButton runat="server" ID="delete" CommandName="Delete" \u003Cbr \u002F\u003E\n OnClientClick="return confirm('确定要删除吗?')" ImageUrl="images\u002Fdelete.gif" \u002F>\u003Cbr \u002F\u003E\n[\u002FQuote]\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n+1","topicTitle":null,"description":"[Quote=引用 3 楼 lirenniao 的回复:] C# code \u003Casp:ImageButton runat=\"server\" ID=\"delete\" CommandName=\"Delete\" OnClientClick=\"return confirm('确定要删除吗?')\" ImageUrl=\"images\u002Fdelete.gif\" \u002F\u003E [\u002FQuote] +1","id":370972458,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"kay002","userNickName":"kay002","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fffcb27ec82ba44e2b02666cc2d17baa6_kay002.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":986938258,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2011-05-05 10:26:06","updateTime":"2011-05-05 10:25:55","formatTime":"2011-05-05","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":"<asp:ImageButton runat="server" ID="delete" CommandName="Delete" \u003Cbr \u002F\u003E\n OnClientClick="return confirm('确定要删除吗?')" ImageUrl="" \u002F>\u003Cbr \u002F\u003E\n这个很好弄了","topicTitle":null,"description":"\u003Casp:ImageButton runat=\"server\" ID=\"delete\" CommandName=\"Delete\" OnClientClick=\"return confirm('确定要删除吗?')\" ImageUrl=\"\" \u002F\u003E 这个很好弄了","id":341126438,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"futrueing","userNickName":"futrueing","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fd64a90e016644058b777c3400bded937_futrueing.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3072452565,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 12:36:27","updateTime":"2010-05-22 12:36:03","formatTime":"2010-05-22","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":"Respond.write("<script>window.confirm('是否删除?')<\u002Fscript>");","topicTitle":null,"description":"Respond.write(\"\u003Cscript\u003Ewindow.confirm('是否删除?')\u003C\u002Fscript\u003E\");","id":341126418,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"b87936260","userNickName":"b87936260","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fb1f9f116de4149f99b6c00a8f199a693_b87936260.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3723040814,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 12:35:02","updateTime":"2010-05-22 12:34:39","formatTime":"2010-05-22","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":" protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n .......\u003Cbr \u002F\u003E\n Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除成功!');", true);\u003Cbr \u002F\u003E\n Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除失败!');", true); \u003Cbr \u002F\u003E\n \u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n }","topicTitle":null,"description":" protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) { ....... Page.ClientScript.RegisterStartupScript(this.GetType(), \"\", \"alert('删除成功!');\", true); Page.ClientScript.RegisterStartupScript(this.GetType(), \"\", \"alert('删除失","id":341126376,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"tao_jile","userNickName":"tao_jile","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1917907684,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 12:33:12","updateTime":"2010-05-22 12:32:49","formatTime":"2010-05-22","userRoleHonorary":{"userName":"tao_jile","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"OnClientClick="return confirm('确定要删除吗?')"","topicTitle":null,"description":"OnClientClick=\"return confirm('确定要删除吗?')\"","id":341126251,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"nextuntil","userNickName":"nextuntil","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F4a59384bbf70426087d87642b92004fa_nextuntil.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":2104953821,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 12:23:35","updateTime":"2010-05-22 12:23:12","formatTime":"2010-05-22","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":"Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除成功!');", true);\u003Cbr \u002F\u003E\nPage.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('删除失败!');", true);","topicTitle":null,"description":"Page.ClientScript.RegisterStartupScript(this.GetType(), \"\", \"alert('删除成功!');\", true); Page.ClientScript.RegisterStartupScript(this.GetType(), \"\", \"alert('删除失败!');\", true);","id":341124414,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"fanganer88","userNickName":"fanganer88","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F6216d584e2994fd3a2ad6dc99de3b5ba_fanganer88.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":2032336666,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 10:55:46","updateTime":"2010-05-22 10:55:24","formatTime":"2010-05-22","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":"OnClientClick="return confirm('确定要删除吗?')"\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n以上很多都正解","topicTitle":null,"description":"OnClientClick=\"return confirm('确定要删除吗?')\" 以上很多都正解","id":341127974,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"kingboy2008","userNickName":"灵雨飘零","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fa0ed8c3922024df792660f470f7cb606_kingboy2008.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1006809460,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 02:10:44","updateTime":"2010-05-22 02:10:20","formatTime":"2010-05-22","userRoleHonorary":{"userName":"kingboy2008","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"以上很多都正解","topicTitle":null,"description":"以上很多都正解","id":341127745,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"dhttaso","userNickName":"dhttaso","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fb145321d14e6441ba2992b7e67dbd60e_dhttaso.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1026635500,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-22 01:59:27","updateTime":"2010-05-22 01:59:03","formatTime":"2010-05-22","userRoleHonorary":{"userName":"dhttaso","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) \u003Cbr \u002F\u003E\n { \u003Cbr \u002F\u003E\n LinkButton btn = (LinkButton)e.Item.FindControl("lbl"); \u003Cbr \u002F\u003E\n btn.Attributes.Add("onclick", "return confirm (\\"确定要执行此操作吗?\\");"); } \u003Cbr \u002F\u003E\nonclientClic="return confirm('确定删除吗')"\u003Cbr \u002F\u003E\n或 ClientScript.RegisterStartupScript(this.GetType(), "PleaseCheck", "if(confirm('确定删除吗'))document.getElementById('hf').value='1';else\u003Cbr \u002F\u003E\ndocument.getElementById('hf').value='0;",true); \u003Cbr \u002F\u003E\nif(hf.value.Equals("1"))\u003Cbr \u002F\u003E\n{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n}\u003Cbr \u002F\u003E\n","topicTitle":null,"description":"if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { LinkButton btn = (LinkButton)e.Item.FindControl(\"lbl\"); btn.Attributes.Add(\"onclick\", \"return confirm (\\\"确定要执行此操作吗?\\\");\"); } onclientClic=\"return confirm('","id":341116087,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"wuyq11","userNickName":"wuyq11","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F2b2ae1d4838746569d7aae4e4226c699_wuyq11.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1967529119,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 07:55:20","updateTime":"2010-05-21 07:55:04","formatTime":"2010-05-21","userRoleHonorary":{"userName":"wuyq11","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":""alert('感谢支持')", 改成 "if(confirm('是否确认支持?')){window.close() }"","topicTitle":null,"description":"\"alert('感谢支持')\", 改成 \"if(confirm('是否确认支持?')){window.close() }\"","id":341116031,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"zhouwei7682719","userNickName":"zhouwei7682719","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fb9e1785c40634312aea8f7b59f395307_zhouwei7682719.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3396080278,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 07:51:14","updateTime":"2010-05-21 07:50:58","formatTime":"2010-05-21","userRoleHonorary":{"userName":"zhouwei7682719","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"在linkButton加个属性 OnClientClick="return confirm('确定要删除吗?')" 就可以,这个根据返回时true 或false决定执行 onclick事件","topicTitle":null,"description":"在linkButton加个属性 OnClientClick=\"return confirm('确定要删除吗?')\" 就可以,这个根据返回时true 或false决定执行 onclick事件","id":341116011,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"zx75991","userNickName":"天下在我心","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F6a12a11ce1334e8f8b10bb43ca636913_zx75991.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1961432234,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 07:50:13","updateTime":"2010-05-21 07:49:57","formatTime":"2010-05-21","userRoleHonorary":{"userName":"zx75991","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"支持3楼的回答","topicTitle":null,"description":"支持3楼的回答","id":341115951,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"a365477312","userNickName":"a365477312","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":2030829343,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 07:45:49","updateTime":"2010-05-21 07:45:33","formatTime":"2010-05-21","userRoleHonorary":{"userName":"a365477312","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"你那些发就是JavaScript只不过这样写比直接response.write("<script>alert('感谢支持')<\u002Fscript>")要好!这样不会是的弹出提示框时页面变为空白!","topicTitle":null,"description":"你那些发就是JavaScript只不过这样写比直接response.write(\"\u003Cscript\u003Ealert('感谢支持')\u003C\u002Fscript\u003E\")要好!这样不会是的弹出提示框时页面变为空白!","id":341114761,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"huhanlinhhl","userNickName":"huhanlinhhl","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F80b49f5f8d6441bf9a188c732baadc39_huhanlinhhl.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1967206512,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 06:28:47","updateTime":"2010-05-21 06:28:32","formatTime":"2010-05-21","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":"ImageButton imgbtn = (ImageButton)e.Row.FindControl("imgbtnDelete");\u003Cbr \u002F\u003E\nimgbtn.Attributes.Add("onclick", "return confirm('您确定要删除么?');");\u003Cbr \u002F\u003E\n 我用的图片按钮做的、","topicTitle":null,"description":"ImageButton imgbtn = (ImageButton)e.Row.FindControl(\"imgbtnDelete\"); imgbtn.Attributes.Add(\"onclick\", \"return confirm('您确定要删除么?');\"); 我用的图片按钮做的、","id":341114621,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"cuidehuashow","userNickName":"cuidehuashow","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F59071cae82194b9fa115f94c9fe74bef_cuidehuashow.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":2073415916,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 06:20:30","updateTime":"2010-05-21 06:20:15","formatTime":"2010-05-21","userRoleHonorary":{"userName":"cuidehuashow","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":" protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n LinkButton lkDelete = (LinkButton)e.Item.FindControl("lkDel");\u003Cbr \u002F\u003E\n lkDelete.Attributes.Add("onclick", "return confirm('你确定要删除该公告吗?')");\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n if (e.CommandName == "delete")\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n int id = Convert.ToInt32(this.DataList1.DataKeys[e.Item.ItemIndex].ToString());\u003Cbr \u002F\u003E\n \u002F\u002FEasyWeb.Blog.IDbTask.Iblog_placard blog_placard = EasyWeb.Blog.DALFactory.dblog_placard.Create();\u003Cbr \u002F\u003E\n dal.Delete(id);\u002F\u002F这个是调用删除数据库里记录的方法,你自个写啊。\u003Cbr \u002F\u003E\n BindUser();\u002F\u002F删完了数据再绑定一次。\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n }","topicTitle":null,"description":" protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { LinkButton lkDelete = (LinkButton)e.Item.FindControl(\"lkDel\"); lkDelete.A","id":341114020,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"zjw19","userNickName":"zjw19","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1032518787,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 05:56:11","updateTime":"2010-05-21 05:55:56","formatTime":"2010-05-21","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":"<asp:LinkButton ID="del" runat="server" OnClientClick="return confirm('确定删除吗?')"><\u002Fasp:LinkButton>","topicTitle":null,"description":"\u003Casp:LinkButton ID=\"del\" runat=\"server\" OnClientClick=\"return confirm('确定删除吗?')\"\u003E\u003C\u002Fasp:LinkButton\u003E","id":341113823,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"zmcici","userNickName":"骑猪看海","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F8e89be4c633941d2822a494e4fdacbd2_zmcici.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":989799097,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 05:50:16","updateTime":"2010-05-21 05:49:58","formatTime":"2010-05-21","userRoleHonorary":{"userName":"zmcici","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"\u003Cpre\u003E\u003Ccode class=\"language-C#\"\u003E\u003Cbr \u002F\u003E\n <asp:ImageButton runat="server" ID="delete" CommandName="Delete" \u003Cbr \u002F\u003E\n OnClientClick="return confirm('确定要删除吗?')" ImageUrl="images\u002Fdelete.gif" \u002F>\u003Cbr \u002F\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E","topicTitle":null,"description":" \u003Casp:ImageButton runat=\"server\" ID=\"delete\" CommandName=\"Delete\" OnClientClick=\"return confirm('确定要删除吗?')\" ImageUrl=\"images\u002Fdelete.gif\" \u002F\u003E ","id":341113809,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"lirenniao","userNickName":"lirenniao","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F90033ac739cd415a91a4048efaf9fd3f_lirenniao.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1038848698,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 05:49:54","updateTime":"2010-05-21 05:49:36","formatTime":"2010-05-21","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":"“此图片来自腾讯旗下搜索网站”","topicTitle":null,"description":"“此图片来自腾讯旗下搜索网站”","id":341113807,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"mohugomohu","userNickName":"mohugomohu","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3722079207,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 05:49:50","updateTime":"2010-05-21 05:49:33","formatTime":"2010-05-21","userRoleHonorary":{"userName":"mohugomohu","roleId":216,"roleType":0,"roleStatus":1,"honoraryId":0,"roleName":"","honoraryName":null,"communityNickname":"","communitySignature":""},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"在Page_Load里加上这个,然后再删除的时候就会提示了。给分吧,ib_delete.Attributes.Add("onclick", "javascript:return window.confirm('您确定要删除该项吗?')")","topicTitle":null,"description":"在Page_Load里加上这个,然后再删除的时候就会提示了。给分吧,ib_delete.Attributes.Add(\"onclick\", \"javascript:return window.confirm('您确定要删除该项吗?')\")","id":341113761,"contentResourceId":340060108,"bindContentResourceId":0,"communityId":211,"username":"zhuhuazhengpei","userNickName":"zhuhuazhengpei","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F855258fa9ff1408690625b1b4e3bd05b_zhuhuazhengpei.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2010-05-21 05:48:19","updateTime":"2010-05-21 05:48:01","formatTime":"2010-05-21","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\u002Fweixinfu3753\u002F8817735","title":"\u003Cem\u003Easp.net\u003C\u002Fem\u003E知识库","desc":"技术基础\nNew Folder\n多样式星期名字转换 [Design, C#]\n.NET关于string转换的\u003Cem\u003E一个\u003C\u002Fem\u003E小Bug\nRegular Expressions\n完整的在.net后台执行javascript脚本集合\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 中的正则表达式\n常用的匹配正则表达式和实例\n经典正则表达式\ndelegate vs. event\n我是谁?[C#]\n表达式计算引擎\n正式发布表达式计算引擎WfcExp V0.9(附源码)\n运算表达式类的原理及其实现\n#实现的18位身份证格式验证算法\n身份证15To18 的算法(C#)\n一组 正则表达式\n静态构造函数\n忽略大小写Replace效率瓶颈IndexOf\n随机排列算法\n理解C#中的委托[翻译]\n利用委托机制处理.NET中的异常\n与正则表达式相关的几个小工具\n你真的了解.NET中的String吗?\n.NET中的方法及其调用(一)\n如何判断ArrayList,Hashtable,SortedList 这类对象\u003Cem\u003E是否\u003C\u002Fem\u003E相等\n帮助解决网页和JS文件中的中文编码问题的小工具\n慎用const关键字\n装箱,拆箱以及反射\n动态调用对象的属性和方法——性能和灵活性兼备的方法\n消除由try\u002Fcatch语句带来的warning\n微软的应试题完整版(附答案)\n\u003Cem\u003E一个\u003C\u002Fem\u003E时间转换的问题,顺便谈谈搜索技巧\n.net中的正则表达式使用高级技巧 (一)\nC#静态成员和方法的学习小结\nC#中结构与类的区别\nC#中 const 和 readonly 的区别\n利用自定义属性,定义枚举值的详细文本\nWeb标准和\u003Cem\u003EASP.NET\u003C\u002Fem\u003E - 第一部分 XHTML介绍\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E中推荐使用覆写(Override)而不是事件处理(Event Handler)\n常用编码工具类,支持base64,md5,des,crc32\n也谈谈技术面试\n在C#里把ArrayList转换为Array 或 把Array转换为ArrayList\nC# 2.0\n在.NET 2.0中,让你的组件也可以绑定\n.NET20 一种简单的窗口控件UI状态控制方法\n翻译MSDN文章 —— 泛型FAQ:最佳实践\nVisual C# 3.0 新特性概览\nC# 2.0会给我们带来什么\n泛型技巧系列:如何提供类型参数之间的转换\nC#2.0 - Object Pool 简单实现\nAttributes in C#\n手痒痒,也来个c# 2.0 object pool\n泛型技巧系列:用泛型打造可复用的抽象工厂\n体验.net2.0的优雅(四):Provider、策略、控制反转和依赖注入\n泛型最佳实践\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0下嵌套masterpage页的可视化编辑\nC# 2.0与泛型\n动态调用对象的属性和方法——性能和灵活性兼备的方法\n泛型技巧系列:用泛型打造可复用的抽象工厂\n泛型技巧系列:如何提供类型参数之间的转换\n.NET 2.0 泛型Quiz\nVisual Studio 2005体验泛型编程\nC++ 泛型编程系列讲座之实施\n泛型技巧系列:简单类型选择器\nC# 泛型简介\n我眼中的C#2.0新功能特性\n泛型技巧系列:避免基类及接口约束\nNew Article\n不该用Generics实现Abstract Factory的理由\nC#2.0-泛型\nC#2.0-extern\nC#2.0-可空类型\nC#2.0-分部类\nC#2.0-迭代器\nC#2.0 的新增功能学习\n泛型的序列化问题\n.NET 2.0 泛型在实际开发中的一次小应用\nC#2.0 Singleton 的实现\n.Net Framwork\n强类型设计实践\n通过反射调用類的方法,屬性,字段,索引器(2種方法)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E: State Server Gems\n完整的动态加载\u002F卸载程序集的解决方案\n从NUnit中理解.NET自定义属性的应用(转载)\n如何在.NET中实现脚本引擎 (CodeDom篇)\n.NET的插件机制的简单实现\n我对J2EE和.NET的一点理解\n难分难舍的DSO(一)\nInternalsVisibleToAttribute,友元程序集访问属性\nEssential .NET 读书笔记 [第一部分]\nNET FrameWork的Collections支持\n.NET的反射在软件设计上的应用\n关于跨程序集的反射\n实现C#和VB.net之间的相互转换\n深入剖析\u003Cem\u003EASP.NET\u003C\u002Fem\u003E组件设计]一书第三章关于\u003Cem\u003EASP.NET\u003C\u002Fem\u003E运行原理讲述的补白\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 运行机制初探(httpModule加载)\n利用反射来查看对象中的私有变量\n关于反射中创建类型实例的两种方法\n\u003Cem\u003EASP.Net\u003C\u002Fem\u003E应用程序的多进程模型\nNET委托:\u003Cem\u003E一个\u003C\u002Fem\u003EC#睡前故事 [推荐] - [原创]\nMicrosoft .NET策略及框架概述\n卸载Class?\nWeb Form\n窗体\n如何实现web\u003Cem\u003E页面\u003C\u002Fem\u003E的提示保存功能\n在\u003Cem\u003EASP.Net\u003C\u002Fem\u003E中两种利用CSS实现多界面的方法\n如何在客户端调用服务端代码\n\u003Cem\u003E页面\u003C\u002Fem\u003E一postback,它就显示\u003Cem\u003E页面\u003C\u002Fem\u003E的最顶端,怎样让它定位在某一位置?\n如何保证\u003Cem\u003E页面\u003C\u002Fem\u003E刷新后的滚动条位置\n清除网页历史记录,屏蔽后退按钮!\n如何传值在2个\u003Cem\u003E页面\u003C\u002Fem\u003E之间 :要求不刷新父\u003Cem\u003E页面\u003C\u002Fem\u003E,并且不能用Querystring传值\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E地址转义(分析)加强版\nWeb的桌面提醒(Popup)\nUsing the Popup Object\nClick button only once in \u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0\nCoalesys PanelBar + R.a.d Treeview +Xml 构建的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 菜单和权限管理模块\n突破屏蔽限制,自己的网站使劲弹新IE窗口\n对\u003Cem\u003E页面\u003C\u002Fem\u003ESCROLLING的CSS不能生效原因\n.Net 中IE使用WinForm控件的使用心得。\n动态加载用户控件的组件!(终结MasterPages技术)\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 1.1下实现模板化站点的新思路\n在\u003Cem\u003EASP.Net\u003C\u002Fem\u003E中两种利用CSS实现多界面的方法\n\u003Cem\u003E用于\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003EModalDialog进行数据选择的控件\n使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法\n制作\u003Cem\u003E一个\u003C\u002Fem\u003E简单的多页Tab功能\n一完美的关于请求的目录不存在而需要url重写的解决方案!\n在C#中实现MSN消息框的功能\nXmlHttp实现无刷新三联动ListBox\n鼠标放在\u003Cem\u003E一个\u003C\u002Fem\u003E连接上,会显示图片(类似tooltip)\n使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果\nHttpModule 实现 \u003Cem\u003EASP.Net\u003C\u002Fem\u003E (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可!\n服务器自定义开发二之客户端脚本回发\nWeb开发:\n使用URL重写WEB主题切换\n如何在\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E1.1中实现\u003Cem\u003E页面\u003C\u002Fem\u003E模板(所谓的MasterPage技术)\nTool Tip 示例(FILTER版)\nTool Tip示例 (htc版)\n\u003Cem\u003E一个\u003C\u002Fem\u003E.net发送HTTP数据实体的类\n按键跳转以及按Enter以不同参数提交,及其他感应事件\n动态控制Page页的Head信息\nSubmitOncePage:解决刷新\u003Cem\u003E页面\u003C\u002Fem\u003E造成的数据重复提交问题\nSharpRewriter:javascript + xml技术利用#实现url重定向\n采用XHTML和CSS设计可重用可换肤的WEB站点\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E的网址重定向方法的比较:面向搜索引擎友好\n也谈 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 1.1 中 QueryString 的安全获取写法\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E运行模式:PageHandlerFactory\n利用搜索引擎引用来高亮\u003Cem\u003E页面\u003C\u002Fem\u003E关键字\n网站首页的自动语言切换\n应用系统的多语言支持 (一)\n应用系统的多语言支持 (二)\n自动返回上次请求\u003Cem\u003E页面\u003C\u002Fem\u003E(小技巧)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0\n控件\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 验证控件新的功能\nDataGridView中如何在textbox列中限制输入。\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0构建动态导航的Web应用程序(TreeView和Menu )\n体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能\nGridView控件使用经验\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0:弃用 DataGrid 吧,有新的网格控件了!\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0控件一览---标准控件(1)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0控件一览---标准控件(2)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0中使用webpart系列控件\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中实现跨页提交\n新控件、管理外观、布局及其它用户体验\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 缓存技术 (原创)\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0中的theme主题覆盖问题\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0中利用app_offline.htm功能\n.NET 2.0中的字符串比较\n小试\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0的兼容性\n为 \u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0 的菜单控件增加 target 属性\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 的内部变化\n常见的 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 转换问题和解决方案\n\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E2.0无刷新客户端回调\n体验.net 2.0 的优雅(1) -- 异步WebService调用\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0\u003Cem\u003E页面\u003C\u002Fem\u003E框架的几点新功能\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中收集的小功能点\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E2.0中的webpart使用小记\n2.0问题、错误解决办法\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0使用Web Part创建应用程序之二(共二)\n体验 .net2.0 的优雅(2) -- \u003Cem\u003EASP.net\u003C\u002Fem\u003E 主题和皮肤\nNET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中Web 应用程序主题的切换\n2.0正式版中callback的一些变化+使用示例(\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0)\nServer Side ViewState 在服务器端存贮ViewState (\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0)\nVS2005 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E本地化学习笔记&感受\n在自定义Server Control中捆绑JS文件 Step by Step\n深度解析\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E2.0中的Callback机制\n使用 Web 标准生成 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 Web 站点\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0基于SQLSERVER 2005的aspnetdb.mdf部署\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 Security FAQs\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 2.0功能体验,细节之Web控件(一) 隐藏控件\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 2.0功能体验,总体设计思想\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 2.0 WebPart使用经验点滴\n革新:.NET 2.0的自定义配置文件体系初探\n关于如何在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0中定制Expression Builders\n怎么在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0中使用Membership\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0-实现数据访问(1)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 新特性\n.NET 2.0里使用强类型数据创建多层应用\n在MastPage中引用脚本资源\n2.0正式版中callback的一些变化+使用示例(\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0)\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 2.0 新特性\nVisual Web Development 2005开发\u003Cem\u003EASP.NET\u003C\u002Fem\u003E使用小技巧\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 异步\u003Cem\u003E页面\u003C\u002Fem\u003E原理浅析 [1] [原]\n自定义通用System.Web.UI.IHierarchicalDataSource简单实现\n在 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中创建 Web 应用程序主题\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中的数据访问\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0:弃用 DataGrid 吧,有新的网格控件了!\n将 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中的数据源控件\n使用 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 ObjectDataSource 控件\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 的内部变化\n使用SQL Cache Dependency 代替 Ibatisnet 提供的CacheModel\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0中小心Profile命名冲突\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 Profile存储用户信息[翻译] Level 200\n[\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0]PageParser.GetCompiledPageInstance中存在\u003Cem\u003E一个\u003C\u002Fem\u003EBug\n如何在DotNet 2的登录组件中检索用户的锁定状态及解锁?\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0, 想说爱你不容易\nSqlDataSource WEB控件:当DeleteCommandType=\n遭遇 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 只读 TextBox 回发后信息丢失的 bug\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E2.0:扩展ImageButton控件定制自己需要的功能\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 正式版中无刷新\u003Cem\u003E页面\u003C\u002Fem\u003E的开发(示例代码的补充)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0中themes、Skins轻松实现网站换肤!\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 中的代码隐藏和编译\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0 ObjectDataSource的使用详解(1)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0 ObjectDataSource的使用详解(2)\nTextDataSource(1) — DataSourceControl内幕\nTextDataSource(2) — 翠花,上“数据”\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0 ObjectDataSource的使用详解(3)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0 快速入门 ----默认中的主题外观\n数据库开发\nADO.NET\n通过DataTable获得表的主键\nADO.NET 2.0 操作实例\nADO.NET 2.0 大批量数据操作和多个动态的结果集\nADO.NET 2.0 异步处理\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中使用WINDOWS验证方式连接SQL SERVER数据库\n改进ADO.Net数据库访问方式\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 绑定高级技巧\n简单实用的DataSet更新数据库的类+总结\n[ADO.NET]由数据库触发器引发的问题\n为\u003Cem\u003EASP.NET\u003C\u002Fem\u003E封装的SQL数据库访问类\nDataTable.Select方法的性能问题\n.NET 2.0里使用强类型数据创建多层应用\nADO.NET实用经验无保留曝光\n有了System.Data.IDataReader,一切皆成数据\n理解DataSet的数据缓存机制\n存储过程\n可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔)\n常用sql存储过程集锦\n存储过程中实现类似split功能(charindex)\n通过查询系统表得到纵向的表结构\n将数据库表中的数据生成Insert脚本的存储过程!!!\n2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高)\n分页存储过程:排序反转分页法\n优化后的通用分页存储过程\nsql语句\n一些Select检索高级用法\nSQL server 2005中新增的排序函数及应用\n根据基本表结构及其数据生成 INSERT ... 的 SQL\n简便的MS SQL 数据库 表内容 脚本 生成器\n将表数据生成SQL脚本的存储过程\n直接从SQL语句问题贴子数据建表并生成建表语句的存储过程\n从SQL中的\u003Cem\u003E一个\u003C\u002Fem\u003E表中导出HTML文件表格\n获取數据库表的前N条记录\n几段SQL Server语句和存储过程\n生成表中的数据的脚本\n最详细的SQL注入相关的命令整理\nOracle\nOracle中PL\u002FSQL单行函数和组函数详解\nmssql+oracle\nOracle编程的编码规范及命名规则\nOracle数据库字典介绍\n0RACLE的字段类型\n事务\nCMT DEMO(容器管理事务演示)\n事务隔离性的一些基础知识\n在组件之间实现事务和异步提交事务(NET2.0)\n其它\n在.NET访问MySql数据库时的几点经验!\n自动代码生成器\n关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法\n发布Oracle存储过程包c#代码生成工具(CodeRobot)\nNew Folder\nXCodeFactory3.0完全攻略--序\nXCodeFactory3.0完全攻略--基本思想\nXCodeFactory3.0完全攻略--简单示例\nXCodeFactory3.0完全攻略--IDBAccesser\nXCodeFactory2.0完全手册(中)\nXCodeFactory2.0完全手册(上)\nXCodeFactory3.0Beta1推出 !\nSQL Server 2005\nSQL Server 2005的几个新功能\n在SQL Server 2005中解决死锁\n在 SQL Server 2005 中查询表结构及索引\nsql server 2005中的DDL触发器\n在 SQL Server 2005 中使用表值函数来实现空间数据库\nSQL Server 2005的30个最重要特点\n同时安装sql2000和sql2005的经验\n类如何与界面绑定\n在\u003Cem\u003EAsp.net\u003C\u002Fem\u003E中如何用SQLDMO来获取SQL Server中的对象信息\n使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页\n通过作业,定时同步两个数据库\nSQLSERVER高级注入技巧\n利用反射实现\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容\u003Cem\u003E是否\u003C\u002Fem\u003E合法\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E报表解决方法\nSQLDMO类的使用\nSQL过程自动C#封装,支持从表到基本存储过程生成\n使用SQLDMO控制 SQL Server\n使用SQL-DMO实现定制SQL Scripts\nCreate Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server)\nC# 获取数据库中某个某个表的创建脚本\nDbHelperV2 - Teddy的通用数据库访问组件设计和思考\n也论该不该在项目中使用存储过程代替SQL语句\n如何使数据库中的表更有弹性,更易于扩展\n存储过程——天使还是魔鬼\n如何获取MSSQLServer,Oracel,Access中的数据字典信息\nC#中利用GetOleDbSchemaTable获取数据库内表信息[原创]\n如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题?\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息\n\u003Cem\u003E用于\u003C\u002Fem\u003E Visual Studio .Net 的 IBM DB2 开发外接程序\n第2章 并发操作的一致性问题 (2)\nUsing sqlite with .NET\nVisual Studio 2005 中的新 DataSet 特性\nMySQL 和 .Net2.0配合使用\n与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable\n与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中大结果集的分页[翻译]\n.net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常\nAdo.net 与NHibernate的关系?\n动态创建数据库\nSQL Server数据库安全规划全攻略\n.net通用数据库访问组件SQL Artisan应用简介1\n在Framework1.0下同时连接SqlServer和Oracle的一些体会\nXML\nXPath\nXPath最通俗的教程(ZZ)\nXPath中相对路径和绝对路径\nXPath 简单语法\n\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E(C#)利用XPath解析XML文档示例\nXSL\n.Net框架下的XSLT转换技术简介\n\u003Cem\u003E一个\u003C\u002Fem\u003EXSLT的简单例子\nXSLXSLT板主题整理\nxsl入门的好文章\n新手学习XSL的好东西\nXSL语法介绍\nXSL学习心得 - 调用属性值\nXSLT与XML转换的详细介绍\n功能应用\n读写搜索\n基础教程\nRSS\nWeb2.0时代,RSS你会用了吗?(技术实现总结)\n知识集锦:三分钟全面了解 Blog 和 RSS\nC#+\u003Cem\u003EASP.NET\u003C\u002Fem\u003E开发基于Web的RSS阅读器\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E RSS Toolkit(RSS工具)\nSerialize Your Deck with Positron [XML Serialization, XSD, C#]\n如何用RSS技术升级您的网站\nRSS技术在行业中的应用三案例\nRSS的力量\n为自己的网站添加RSS功能\n建立自己的RSS\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E+c#+sql生成rss2.0代码\n如何获取远程RSS内容?\nC#如何实现读取RSS\nVC# 2005 Screen Saver Starter kit里的Rss处理类分析\n使用XmlHttp与Javascript实现对RSS的读取\nWEB BUILDER中的动态\u003Cem\u003E页面\u003C\u002Fem\u003E生成\nWebBulider 中的RSSWebpar — 建立自己的 RSS 阅读器\nRSS 2.0规范\nC#版简易RSS阅读器(新增读取OPML功能)\nC#版简易RSS阅读器\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E \u003Cem\u003E页面\u003C\u002Fem\u003E中生成 RSS 2.0 提要\n用 Ajax 和 RSS 攒个首页新闻\n用RSS来整合内容以满足不同的需要\n简单的在线RSS阅读器(原创)\n用户自定义配置接点读取 通用方案\n利用XmlDocument更新Xml文件中的数据\nXML的特征以及一些用途\n如何创建\u003Cem\u003E一个\u003C\u002Fem\u003EXML文件,然后创建\u003Cem\u003E一个\u003C\u002Fem\u003E与之关联的样式表文件?\nRss为什么会兴起?什么时候会被替代?\n遍历指定文件夹下所有的xml文件并动态生成HTML\u003Cem\u003E页面\u003C\u002Fem\u003E\n通过XML来远程抓娶图片的代码\n.Net1.0和2.0下 soap序列化和binary序列化的比较\nNET中书写XML的一种简单方法\n适\u003Cem\u003E用于\u003C\u002Fem\u003EIE浏览器及非IE浏览器的xmlhttp脚本\n用实例说明如何用JavaScript生成XML\nXML驱动开发\nXamlReader.Load(): Build Up Your Own XamlPad\n如何理解xslt中模板调用\nWeb Service\n从WEB SERVICE 上返回大数据量的DATASET\nMSMQ,Enterprise Service, DotNet Remoting,Web Service 的优缺点\n动态调用web服务\nWeb服务最佳实践(翻译)\nHTTP协议下用Web Service上传大文件的解决方案\n与大家分享一些Web Service的经验\nWeb Service Security --- Introduction\nXML Web Service 安全性\nSOA 设计原则和 Web 服务中的数据传输\n解决内网通过代理服务器访问外网部署WebService报错问题“请求因 HTTP 状态 407 失败”\n对象与状态\nApplication\nSession\n如何得到Sessionid的值\nSession研习笔记\nCookie\ncookie 学习总结\nViewState\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 小技巧:重写 ViewState 的存储目的地,以提高\u003Cem\u003E页面\u003C\u002Fem\u003E性能\n由重写ViewState存储目的而想到的\n[总结]关于在线用户列表的统计!\nPersistent Strategy (1) - 问题定义与实现\nPersistent Strategy (2) - Xml序列化的应用\n利用HttpModuler实现WEB程序同一时间只让\u003Cem\u003E一个\u003C\u002Fem\u003E用户实例登陆\n控件\nDataGrid\n简单实用的DATAGRID组件\n为DataGrid创建自定义列控件(二)\n为DataGrid创建自定义列控件(一)\n为DataGrid创建自定义列控件(三)\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E环境下完整的datagrid填充数据后界面动态显示填充方案\n在dataGrid中拖动改变列宽度,在\u003Cem\u003Easp.net\u003C\u002Fem\u003E中\n用javascript实现dataGrid表头排序\n存储过程DataGrid分页及注意点\n在后代码里创建DataGrid控件\n为DataGrid自定义分页添加自定义导航和分页信息\n如何利用DataGrid纵向显示数据?\n如何用DataGrid实现类似DataList多列的效果\n竖表转横表(支持多列)\n竖表变横表(支持固定列)\n通用分页控件(DataGrid,DataList,Repeater都可以用它来分页)\n如何同时选择DataGrid的多行\nDataGrid单元格移动变色,点击变色,双击取消颜色,排序.\n分页管理器实现\noButton加入DataGrid模板列引起的问题。\n将RadioButton加入到DataGrid模板列后单选简单实现\n用c#实现将DataGrid中的数据导为microsoft office excel 2003\nTreeView\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E环境下完整的treeview使用类\nC#加javaScripts实现选中树节点后显示节点内容(微软TreeView)\ntreeview 的使用心得\nFlyTreeView for \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 3.2 破解攻略\n用Ajax技术让IE Web Control Tree View实现大数据量读取\n我在使用C#中Treeview与解析XML遇到的问题!\nTreeView父子联动效果保持节点状态一致\n\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E 2.0 TreeView的Checkbox级联操作\nDataList\nHtml控件\ntable动态改变颜色包括\u003Cem\u003E一个\u003C\u002Fem\u003E边框\n功能超强的表格(上下左右移动,添加\u003Cem\u003E删除\u003C\u002Fem\u003E行列,导出)\n用户控件开发\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 服务器控件授权\n为控件添加自定义属性和事件\n让你的控件属性注释支持多语言\n自定义UserControl的属性为什么不能在设计时显示在属性窗口中\nasp .net 服务器控件开发心得\n今天你写控件了吗 --\u003Cem\u003EAsp.net\u003C\u002Fem\u003E服务器控件开发系列文章 汇总\n将\u003Cem\u003EASP.NET\u003C\u002Fem\u003E用户控件转化为自定义控件\nTextBox\n创建具有自验证功能的textbox控件\ntextbox上实现右键菜单\n给FreeTextBox 3.0.5 添加上QQ和MSN表情\nFreeTextBox中存在\u003Cem\u003E一个\u003C\u002Fem\u003E严重的安全漏洞\nDOTNET2.0 的编辑器:WebHtmlEditor 1.5 Release提供在线演示和下载\nFreeTextBox使用详解 (版本3.1.1)\n\u003Cem\u003E弹出\u003C\u002Fem\u003E式选择文本控件\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E: Custom AutoCompleteTextBox WebControl [With Source Code]\nButton\n水晶报表\n水晶报表数据填充(一种推模式,两种拉模式)类库\nRDLC报表(一)\nRDLC报表(二)\n其他控件\n让\u003Cem\u003Easp.net\u003C\u002Fem\u003E默认的上传组件支持进度条反映\nHtmlTextWriter学习笔记\n用户控件例码\n\u003Cem\u003EASP.net\u003C\u002Fem\u003E下的前台日历控件源代码(不刷新\u003Cem\u003E页面\u003C\u002Fem\u003E)\n\u003Cem\u003EASP.net\u003C\u002Fem\u003E下DataGrid的单项选择控件\n个\u003Cem\u003EASP.Net\u003C\u002Fem\u003E的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程\n自动获取当前日期下一周的年月日代码\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E下的日历控件源代码\n写了\u003Cem\u003E一个\u003C\u002Fem\u003Elive.com的Gadget——农历日历\n令你心动的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 开发中的MessageBox控件\nWebForm的MessageBox类\n复合控件开发系列之一\n年月日三联动下拉框\n下拉日期控件\n客户端计时器控件(clientTimer)的c#源码\n在线考试系统中卷面计时的一点思考\nGridView\nGridView 控件使用不完全指南!\nGridView 控件使用不完全指南!(续一)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0中Gridview中数据操作技巧\n一套可嵌入或独立使用的翻页控件: WebPager(附源码)\nWeb进度条的简单方案\nComponentArt WebUI3.0控件使用方法\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E中使用SolpartMenu控件\n共享两个做项目最常用功能操作的封装类\n国内报表设计器的分析\n基于Ajax的日期控件\n缓存服务与性能优化\n通过系统配置来提高\u003Cem\u003EASP.NET\u003C\u002Fem\u003E应用程序的稳定性\n通过系统配置来提高\u003Cem\u003EASP.NET\u003C\u002Fem\u003E应用程序的稳定性(续)\n异步加载图片,提高HTML性能\n负载均衡环境下缓存处理\n网站速度优化模块HttpCompressionModule\n[连载]Tuning .NET Performance\n[连载]Tuning .NET Performance\n[连载]Tuning .NET Performance\n连载]Tuning .NET Performance\n安全与验证\n加密解密\n使用证书来做RSA非对称式加密\n自已做的\u003Cem\u003E一个\u003C\u002Fem\u003E加密软件,超好用而且加密强度极高,公布源码\n身份权限审核\n使用URL参数+Controls层实现网站用户权限管理\n系统分析中大家是怎样设计系统的多级权限控制的??\n多级权限设置请教。\n基于角色的权限控制\nAspNetForums中基于角色的权限控制\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E如何控制\u003Cem\u003E页面\u003C\u002Fem\u003E依据不同用户权限有不可见、可见、编辑 三种操作权限?\n请问在SmartClient应用中,如何做到科学的身份验证和权限分配?~~UP有分\n做过权限管理和想做权限管理的人进来(附我的思路)\n关于权限设计的探讨\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E中基于Forms验证的角色验证授权\n用户权限系统设计方案\n权限控制系统的设计\n统一用户及权限管理系统\n权限系统:分散实现、关注变化\n关于权限管理的系统的构思\nEsbAOP应用--权限管理\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E能实现身份认证的EMAIL发送方法(c#版本)\n单点登录(SSO)的核心--kerberos身份认证协议技术参考(一)\n单点登录(SSO)的核心--kerberos身份认证协议技术参考(二)\n单点登录(SSO)的核心--kerberos身份认证协议技术参考(三)\n权限系统概要(收集,整理)\nmembership,想说爱你不容易\n蛙蛙推荐:web下的授权简单解决方案\n将权限引入系统的探索\n数据库有效验证\n浅谈在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中数据有效性校验的方法\nXML Schema Validator Class\nJSClientValidator-客户端javascript验证新模式\n如果做到安全的系统之验证用户输入.\n部署安全\n查看贴子内容\nCLI里面的秘密……(二)强命名、元数据以及文件结构(上半部分)\nAssembly学习心得\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E 保护网站不受用户上传文件的侵害\n在设置窗体身份验证时设置个别\u003Cem\u003E页面\u003C\u002Fem\u003E不需要进行验证\n基于Web应用程序的安全问题之一Cross-Site Scripting Vulnerabilities\n代码安全\n基于强名称签名的代码访问保护及其改进\n防止对 Visual Basic .NET 或 C# 代码进行反相工程\n如何防止 DLL 被反编译\n揭开.NET程序保护的秘密\n如何建立有效的.Net软件注册保护机制\n由浅至深,谈谈.NET混淆原理 (一)\n由浅至深,谈谈.NET混淆原理 (二) 最简单的混淆\n由浅至深 谈谈.NET混淆原理(三)-- 流程混淆\n由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇)\n由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法)\n看了下面那篇“Crack别人应用程序”的文章有感,简述.Net下的应用程序授权。\nvs2003中设计强名称程序集并制作安装入GAC的MSI\n无法破解的软件注册码算法\n保护你的代码——谁动了我的组件?\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中的单点登录\nCookie 支持二级域名和FormsAuthentication 加强版\n论电子签章(Electronic Signature)在C#中的实现方法\n使用IHttpHandler防止非法链接\n使用 Ildasm, ILasm, Peverify 来 Crack 别人写的应用程序。\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0应用中定制安全凭证之实践篇\n创建安全的\u003Cem\u003EASP.NET\u003C\u002Fem\u003E虚拟主机\n实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法.\nKerberos简介\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中防止注入攻击[翻译]\n封装了\u003Cem\u003E一个\u003C\u002Fem\u003E极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA\n学习一下 .net framework 中有关安全的内容\n学习一下 .net framework 中有关安全的内容(续)\n环境配置与部属\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E的跟踪服务\n无ASPX文件部署(续)\n无aspx文件部署\naspx-\u003Ecs-\u003Edll\n如何把用http访问的网页转换用https访问\n\u003Cem\u003E一个\u003C\u002Fem\u003E配置IIS的问题\n在Apache环境下成功的运行\u003Cem\u003EASP.NET\u003C\u002Fem\u003E\n关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet)\n在.net中使用强类型来读取配置信息\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E网站的ClickOnce自动部署(1)-自动部署的内容\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E网站的ClickOnce自动部署(2)-虚拟目录的配置\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E网站的ClickOnce自动部署(3)-虚拟目录的配置\nweb.config文件自定义配置节的使用方法\n模仿AppSettings进行web.config的自定义节读取[简单实用型]\n关于无aspx文件部署,我的一些探索心得\n.NET配置文件解析过程详解(二)\nAsynchronous Pluggable Protocols\nMicrosoft CRM3.0 多服务器安装部署过程\n解决w3wp.exe内存占用问题\n实战1.1下Web.Config配置标记configSections\n系统设计与项目管理\n系统设计\n分层开发思想与小笼包\nN层企业级架构模板\n系统设计的一些原则\n在UI层使用Domain逻辑的一些探讨\n在C#程序中实现插件架构\n组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge)\n逻辑设计的例子\n\u003Cem\u003E一个\u003C\u002Fem\u003E.net的系统的AOP设计思路一——NHibernate和界面\u002F对象映射层\n设计和编写可复用的代码\n基于工作流程系统日志生成业务流程模型\nSVG + Javascript + \u003Cem\u003EASP.NET\u003C\u002Fem\u003E + WebService开发楼宇管理系统(一)\n系统分析员,让我头痛\n.NET下的域对象持久模式\n业务流程管理综述\n动态工作流的设计\n提升软件的用户体验\n应用软件的合理性\n架构(Architecture)和框架(Framework)杂谈\n小议模型\n再议模型\n软件设计评价\n软件设计评价(续)\n理解架构师\n架构师不是建筑师\nMDA(模型驱动架构)\n家庭财务总管--软件设计\n应用系统架构设计-补全篇\n对Web平台和软件架构的一些看法\n关于多层设计想到的问题-涉及Nhibernate和Log4Net\n谁拥有接口?\nCodd提出的RDBMS的12项准则\n\u003Cem\u003E一个\u003C\u002Fem\u003E糟糕的设计\n业务系统里面常见的方法接口设计\n将UI和UI控制分离\nDotNet软件开发框架\n细节决定成败:业务拦截器\n广告管理系统的UML分析与设计\n软件的架构设计\n框架不是框框—应用框架的基本思想\n创建成功的工程\n软件可行性分析\nGIS系统与\u003Cem\u003E一个\u003C\u002Fem\u003E好的软件架构,Why not and how?\n直观而简单的解决方案--软件设计的永恒追求\n企业开发基础设施--序\n企业开发基础设施--类厂服务\n企业开发基础设施--事件通知服务\n面向对象\n基于Visual C#的接口基础教程\n基于C#的接口基础教程之一\n基于C#的接口基础教程之二\n基于C#的接口基础教程之三\n基于C#的接口基础教程之四\n基于C#的接口基础教程之五\n基于C#的接口基础教程之六\n基于C#的接口基础教程之七\n小结\n\u003Cem\u003E一个\u003C\u002Fem\u003E代理的例子\n关于委托事件的一两个很好的例子!\n依赖倒置\n细说继承关系映射\n面向对象与面向组件小议\nC#中接口多重继承的注意事项\n[\u003Cem\u003EASP.NET\u003C\u002Fem\u003E入门随想四]吸星大法——\u003Cem\u003E页面\u003C\u002Fem\u003E的OO思想篇\n如何在类中编写事件\nOOD经验原则总结\n[\u003Cem\u003EASP.NET\u003C\u002Fem\u003E入门随想六]大航海家——OO思想的类间关系\n接口跟基类的一点点感受\n[\u003Cem\u003EASP.NET\u003C\u002Fem\u003E入门随想七]主角与配角——OO思想的多态、接口与委托\nWin32中安全的子类化 (1)\nEmit生成Property\nC#中类和接口的设计思想\n数据库设计\n数据库设计指南\n使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程\nUML\n聚合 的概念\nUML视图\n静态视图\n构件图\n包图\n初学uml-(1) 类图和关系\nUML学习-通过用例分析来\u003Cem\u003E确认\u003C\u002Fem\u003E需求\n国际化组件的设计\nWeb应用的UML建模与.NET框架开发\n基于UML的短信计费系统的分析与设计\n基于UML的系统分析方法研究\nUML的三大“硬伤”\n系统约定:用UML描述工作流管理\n使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程\n文档\n项目开发总结报告\n方案设计书\n系统规格\u002F需求规格说明\u002F概要设计书范例\n“一卡通”信息系统数据库设计初步探讨(原创)\n某M1射频卡餐饮收费系统简单数据模型\n\n广告发布统计实现的可行性分析阶段报告\n应用软件部2005年年度工作总结\nCPMS企业绩效考核管理系统 V1.1 介绍\n设计模式\n吕震宇设计模式随笔系列\nC#设计模式(1)\nC#设计模式(2)\nC#设计模式(3)\nC#设计模式(4)-Simple Factory\nC#设计模式(5)-Factory Method Pattern\nC#设计模式(6)-Abstract Factory Pattern\nC#设计模式(7)-Singleton Pattern\nC#设计模式(8)-Builder Pattern\nC#设计模式(9)-Prototype Pattern\nC#设计模式(10)-Adapter Pattern\nC#设计模式(11)-Composite Pattern\nC#设计模式(12)-Decorator Pattern\nC#设计模式(13)-Proxy Pattern\n设计模式(14)-Flyweight Pattern\n设计模式(15)-Facade Pattern\n设计模式(16)-Bridge Pattern\n设计模式(17)-Chain of Responsibility Pattern\n设计模式(18)-Command Pattern\n设计模式(19)-Observer Pattern\n设计模式(20)-Visitor Pattern\n设计模式(21)-Template Method Pattern\n设计模式(22)-Strategy Pattern\n设计模式随笔-蜡笔与毛笔的故事\n设计模式随笔-从“有病”说起(工厂模式前传)\n设计模式随笔-发大米喽\n设计模式随笔-锦囊妙计\n设计模式随笔-让众口不再难调\n设计模式随笔-用奶箱订报纸\n设计模式随笔-再论锦囊妙计\n也说说“从Adapter模式到Decorator模式”\n梦幻.Net设计模式\nDot Net设计模式—桥接模式\n如何在实际工作中发现模式\n设计模式能够解决的问题\n设计模式不能做什么\nDot NET设计模式—抽象工厂\nDot NET设计模式—反射工厂\nDot Net 设计模式—简单工厂\nDot Net设计模式—工厂方法模式\nDot Net设计模式—生成器模式\nDot Net设计模式—原型模式\n如何掌握并在实践中自如运用设计模式\nDot Net设计模式—单件模式\nDot Net设计模式—适配器模式\nDot Net设计模式—外观模式\nDot Net设计模式—适配器、桥接与外观三模式之间的关系\n.NET反射、委托技术与设计模式\n创建型模式之间的比较\n用实例解说Dot Net设计模式——装饰模式\nNew Folder\n设计模式原型模式(Prototype)- 面馆里的菜单\n程序员的时间管理---做\u003Cem\u003E一个\u003C\u002Fem\u003E高效的程序员\n设计模式-工厂模式(手工作坊到工业化的转变 c#实现)\n设计模式-简单工厂模式(SimpleFactory-C#)\n设计模式学习笔记(一)\nTerrylee\n探索设计模式(五):工厂方法模式(Factory Method)\n探索设计模式(1):开篇\n探索设计模式(2):深入浅出单件模式(Sigleton Pattern)\n探索设计模式(3):抽象工厂模式新解(Abstract Factory)\n探索设计模式(4):建造者模式过程图解(Builder Pattern)\n探索设计模式(六):原型模式(Prototype Pattern)\n探索设计模式(七):创建型模式专题总结(Creational Pattern)\n探索设计模式(九):桥接模式(Bridge Pattern)\n探索设计模式(八):适配器模式(Adapter Pattern)\n探索设计模式(11):组合模式(Composite Pattern)\n.NET设计模式(13):享元模式(Flyweight Pattern)\nHead First Design Patterns(深入浅出设计模式\nHead First Design Patterns(深入浅出设计模式)-目录\nHead First Design Patterns(深入浅出设计模式)-设计模式介绍\n你真的了解Ioc与AOP吗?\nSpring.Net 示例代码分析\n乱改:Visitor经典模式改进1\n乱评:《c#设计模式》中的“访问者模式”\n软件的架构与设计模式之模式的种类\nIoc模式(又称DI:Dependency Injection)\n隐藏在.NET中的IoC?\n一步一步开发Spring Framework MVC应用程序\nCSharp面向对象设计模式纵横谈--Singleton Pattern 听课笔记\nCSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔记\n最少职责OOD设计手段\nOOD的设计手段总结\n面向对象设计的六大原则简介\n由浅入深学“工厂模式”(1)\n由浅入深学“工厂模式”(2)\nA Taste of AOP from Solving Problems with OOP and Design Patterns (Part I)\nA Taste of AOP from Solving Problems with OOP and Design Patterns (Part II)\nA Taste of AOP from Solving Problems with OOP and Design Patterns (Part III)\n与大虾对话: 领悟设计模式\nDesign&Pattern团队《设计模式在软件开发的应用》精华版\n由浅入深学“工厂模式”(3)\n简话设计模式\n观察者模式 (using .net)\nC#中事件与观察者模式\nRole分析模式(一) 角色对象基本概念\nRole分析模式(二)角色对象创建和管理\n在开发中体验设计模式\n重新诠释AOP\n侃中介者模式(Mediator)\n采用AOP 的观点来 Log 所有方法的调用\nMS 的IOC容器(ObjectBuilder)?\n.Net event vs. observer Pattern\nDProxy介绍 – 一种高性能轻量级AOP开发组件(.NET 1.1)\nJavaScript中的Decorator模式\n魔法牌里的模式(Bridge)\n决策者得选择(Strategy)\n通讯兵(Chain of Responsibility)\n面向智能体编程(Agent Oriented Programmig, AOP)一些体会\nBridge? \u003Cem\u003E一个\u003C\u002Fem\u003EGIS二次开发中常用的设计模式\nSwitch语句,僵化的毒药\n策略模式的应用实践\n重读GoF\nFactory Method来实现数据库操作的类\n用Factory Method模式扩展MyMSDNTVLibrary\n工厂模式和容器模式的探索\n反编译 Component重要类,全文解释 - 容器篇\n单系统多类型数据源随意切换的c#实现\n用C#实现MVC(Model View Control)模式介绍\n小议.NET中的对象拷贝\n设计模式原则详解\n封装变化(一)\nAOP的纯.Net实现\n使用纯.net实现AOP(加入了比较详细的代码说明)\n隐身大法,使民无知\n设计模式浅析之Singleton\n设计模式Top10排行榜\n简话设计模式\n在我们使用的NET FRAMEWORK类库中发现设计模式(3)\n在我们使用的NET FRAMEWORK类库中发现设计模式(2)\nNew Article\n模版模式 Template Pattern — 穷人和富人的不同婚恋历程\n发掘模式---今天您发掘拉mei?\n老师讲的抽象工厂,错了一点点\nSingleton + Proxy 模式+AOP\nObserver模式为何要区分推拉模式\n也来谈谈工厂模式\n项目管理\n需求分析控制\n项目经理\n七个关于有效沟通的哲理故事\n新主管如何生存?\n怎样从一名程序员过度到项目经理\n论《金瓶梅》与项目管理中人际关系协调\n做项目经理的一些思考\n怎样从一名程序员过度到项目经理\n什么是项目经理\n团队建设\n软件项目中的人员管理和团队建设\n建立“杀手”开发团队\n软件开发组的团队精神\n如何指导软件开发新手\n改变\u003Cem\u003E一个\u003C\u002Fem\u003E状况不佳的项目组\n论软件开发中的三种重要角色\n如何调动员工的积极性\n成功项目团队中应树立的五种意识\n管理观点系列:团队管理\n现在有多同事工作较懒散,没有一点工作效率,开发出来的东西,Bug又多。如果让你来管理你会怎么做?\n人才的识与用\n用人之道\n高效团队的速成之道\n管理人员如何有效应用表扬与批评进行反馈\n[项目管理]管理中的人\n[团队管理]+[软件人生]从项目计划到保密管理到个人学习与提高的方法\n建立团队精神\n你实现团队管理了吗?\n需求管理\n怎么做需求分析\n撰写优秀的需求\n需求分析的20条法则\n从用户接触到完成需求说明书\n需求调研步骤和方法\n一种界面需求分析方法\n细谈软件需求分析过程:提取、抽象、升华\n网站项目管理-如何做好需求分析\n如何写系统分析书\n客户需求何时休?\n软件需求管理-用例方法,读书摘要\n[理解需求变更之一]说说需求变更的必然\nRUP简介\n软件开发过程中最重要的是人?还是领导者?\n开贴讨论:我观察国内几乎所有公司都有这样或者那样的管理问题,开贴讨论:小团队web项目负责人的工作办法\n技术不是全部,归纳和演绎能力也很重要\n谈恋爱与IT项目管理\n广为流传的\u003Cem\u003E一个\u003C\u002Fem\u003E关于项目管理的通俗讲解\n诸子百家与项目管理 之 序\n诸子百家与项目管理 之 总述 问答\n诸子百家与项目管理 之 周易篇(项目管理的两个基本点)\n诸子百家与项目管理 之 孙子兵法篇(项目管理的整体思维)\n实战解析----项目目的和范围\n项目管理过程中的棘轮效应\n任务管理\n项目整体管理\n项目风险管理\n项目采购管理\n项目沟通管理\n项目人力资源管理\n项目成本管理\n项目质量管理\n项目时间管理\n项目范围管理\n编码人员和美工的配合问题\n心得体会:关于开发效率和项目周期的问题\n紧急项目处理方法\n做项目的一些体会(之一)_软件开发过程中我们应当具有的能力\n团队技能之一——分析问题\n价值高于一切-企业软件开发谈\n项目管理之我见(原创)\n项目开发管理经验交流\n软件实例开发手记(自序)-为保证文章完整性,谢绝对某篇而非全部手记的转载\n紧急项目处理方法\n浅谈项目管理中的职责权 - [原创]\n由\u003Cem\u003E一个\u003C\u002Fem\u003E虚构的例子谈谈中小型研发型项目的技术管理及成本控制(全文)\n优化IT企业的基础架构\n\u003Cem\u003E一个\u003C\u002Fem\u003E研发经理的项目日记\n.net敏捷开发及常用工具\n关于项目管理和项目计划制定的对话\n微软资深经理人的项目管理经验\nWEB项目开发\nMyMsn动态Resize页框架的布局详解\n\n性能,安全,集成才是web之道\n重构之美-走在Web标准化设计的路上[深入结构:理解h系列的不合理。]\n重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ]\n重构之美-走在Web标准化设计的路上[复杂表单]3 2 Update\n重构之美-走在Web标准化设计的路上[唠叨先]\n重构之美-迎接Web标准化设计的来临[总结一:网页设计回归?]\n重构之美-走在Web标准化设计的路上[对HTML\u002FXHTML\u002FXML\u002FXSL的一些认识]\n雅虎网站项目工作流程\n微软资深经理人的网站项目管理经验\n其它\n软件工程\n\u003Cem\u003E一个\u003C\u002Fem\u003E测试的重构\nRUP 核心概念\n配置管理的概念\nRUP && MSF 特点\n构建面向对象的应用软件系统框架\n构建面向对象的应用软件系统框架 目录\n构建面向对象的应用软件系统框架 第1章\n构建面向对象的应用软件系统框架 第2章\n第3章 数据和对象\n第4章 O\u002FR Mapping的一般做法\n第5章 设计\u003Cem\u003E一个\u003C\u002Fem\u003EO\u002FR Mapping框架\n第6章 面向方面编程\n第7章 接口\n第8章 事务处理\n第9章 性能优化\n第10章 界面层的功能划分\n第11章 界面设计模式\n第12章 动态代码生成和编译技术\n第13章 远程过程访问的客户端整合\n第14章 智能客户端\n第15章 简述\nEffective Coding - Readability\n单元测试时的一些最佳实践\nBest free tools\u002Fframeworks\u002Flibraries I use\n统一界面设计\n十二种实践方法与我的XP心得\n使用CVS做.NET项目\n在\u003Cem\u003Easp.net\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E上得到Castle容器的实例\n当前软件开发的反思\n面向对象设计,ORM,NHIBERNATE杂谈(有感)\n投标方案应该怎么写?\nCMM\u002FCMMI将带我们走向何方——\u003Cem\u003E一个\u003C\u002Fem\u003ECMM从业人员的反思\n对\u003Cem\u003E一个\u003C\u002Fem\u003E排序程序的不断重构\nFxCop 设计规则\n敏捷实践12 条原则\n《敏捷软件开发》读书笔记 (1)\n《敏捷软件开发》读书笔记 (2) -- 设计原则\n《重构》 读书笔记 (1)\n企业应用之领域模型\n我的.net项目经验(一)。\n也谈 SOA\n重新诠释SOA\n登山的程序员(极限与敏捷之一)\n敏捷的总设计师(极限与敏捷之二)\n实战解析--项目的主要技术储备\n产品升级策略\n读《DTS分析模型、设计模型》有感\n软件开发核心工作流程\n新产品研发 分析设计过程.rar\n在小型项目中使用 IBM Rational Unified Process: 极限编程剖析(转)\n来一点反射,再来一点Emit —— 极度简化Entity!\n软件整合--硬件整合--平台整合\n用自定义KeyValueCollection类代替Dictionary\u002FHastable,改善简化后的Entity性能\nJava剑 VS .NET刀 -- 东山再起(论模式)(二)【推荐】\n基于构件技术的需求管理过程-框架需求调研\nPSP课程(一): PSP简介\n我对系统重构的理解\n重构---Who are you?!\n单元测试应该测什么,不应该测什么?\nAccEAP架构介绍(1)---实体的设计\n我的单元测试认识之路\n中小型MIS开发之我见(一)---开发阶段\n中小型MIS开发之我见(二)---具体实施(上)\n中小型MIS开发之我见(二)---具体实施(下)\n团队开发框架(Developement Structure for Team),内容列表及整理计划\n风继续吹----对一些ORM框架的使用心得(2)\n冷眼程序人生----对一些ORM框架的使用心得\n读书笔记]-道法自然之需求分析\n个人对软件开发的思考\n网络应用\n\u003Cem\u003E一个\u003C\u002Fem\u003EUdp信息收发静态类!\n[修改]脚本判断网站\u003Cem\u003E是否\u003C\u002Fem\u003E能打开\nIIS防止文件下载完全手册(非更改文件名法)\n在.NET中利用XMLHTTP下载文件\n开发 .NET 下的 FTP 客户端组件\n如何不让没有登录的用户下载的问题\n文件下载时如何隐藏实际地址?\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 多文件上传\n.net 中发mail到hotmail中乱码问题的解决\n郁闷的OpenPOP的MIME Parser\n\u003Cem\u003EAsp.net\u003C\u002Fem\u003E(c#)实现多线程断点续传\n关于 OpenSmtp 邮件标题过长后出现乱码问题的解决\n支付宝Payto接口的c#.net实现\n文件操作\n发布\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E文件夹复制类\n关于File的一些例子\n文件操作工具类 FileUtility\n大文件上传之异常处理(原创)\n文件 在线压缩 技术\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E在线压缩与在线解压缩\nc#文件操作(二)\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中跟踪和恢复大文件下载\nResponse.BinaryWrite()下载时文件名的问题.\nWindows Workflow Foundation之旅(二)——指南1(创建顺序工作流)\nDotNet 序列化学习笔记\n\u003Cem\u003E一个\u003C\u002Fem\u003E上传的类\n系统控制\nWMI类--所有可用的WMI的类封装\n用ActiveX控件和JavaScript脚本实现基于Web的票据套打(源码下载)\n运用API函数获取系统信息\n通过\u003Cem\u003EASP.NET\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E重启服务器\n开源:VS.NET打印思想与2003\u002F5DataGrid、DataGridView及二维数据如ListView等终极打印实现(全部源码)\n关于如何打印ListView的解决方法\n修改IIS目录的\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E版本\n如何获取客户IE统计信息[代码]\n图像多媒体\njs图形报表\n\u003Cem\u003E一个\u003C\u002Fem\u003E可设置背景图片的验证码图片的生成方法\n图片翻页幻灯效果\n图片渐变轮换效果\n讨论一下flash.ocx(8.0版本的)与.net结合的编程\n动态生成缩略图\nSharpMap介绍及源码分析\n利用Javascript 结合 VML 生成三维报表(饼图)\n技巧与总结\n代码阅读总结(个人总结开发小技巧)\nDotNet精美书籍大检阅\n\u003Cem\u003Easp.net\u003C\u002Fem\u003E的\u003Cem\u003E页面\u003C\u002Fem\u003E代码组织模式\n金鼎俱乐部项目总结\n总结一下散乱的开发点滴(3) (高手勿入)\n说的都是概念——有关编程范式\n组织一些开源项目\nVS.NET操作技巧\nVisual SourceSafe\nVSS信息的读取的操作\n安装程序\n安装程序自动安装数据库\n程序安装时检查\u003Cem\u003E是否\u003C\u002Fem\u003E已经安装.NETFramework\n打包的时候,怎么象petshop一样,把数据库也打到里边\n制作安装程序总结\n用Visual Studio .Net 2003制作安装程序时轻松实现将自己的程序添加到系统的鼠标右键菜单\n.net打包自动安装数据库\n用自\u003Cem\u003E删除\u003C\u002Fem\u003Edll实现应用程序的安装\u002F卸载代码\n.NET打包自动安装数据库\n调试常见问题\nIE安装了flash插件还不能显示swf动画的问题\n让人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决!\n关于异常处理的一点感受\n项目调试时候,出现其中用到的\u003Cem\u003E一个\u003C\u002Fem\u003E组件“访问被拒绝”的解决方法。\n对于引用的控件被拒绝访问的解决办法的补充(续)\n对于引用的控件被拒绝访问的解决办法的补充(续++)++\n对于引用的控件被拒绝访问的解决办法的补充(续++)\n使用Visual Studio.net调试javascript最方便的方法\n在Apache上调试\u003Cem\u003EAsp.net\u003C\u002Fem\u003E 1.1\u002F2.0代码\nVS.NET 2005\nvs.net 2005 中自定义模版项\n自己动手打造Visual Studio 2005 Team Suite 正式汉化版\n用Visual Studio 2005创建宏代码生成器\nVisual Studio 2005 Team Foundation Server Beta3 安装手记\nVisual Studio 2005 Team System的BUG?\n对vs2005生成dll文件的一点疑惑\n开发VS2005下ComboBoxTreeView(下拉列表框\u003Cem\u003E弹出\u003C\u002Fem\u003E树) 与ToolStripComboBoxTreeView(下拉列表框工具条\u003Cem\u003E弹出\u003C\u002Fem\u003E树)\nVisual Studio 2005中编译调试新功能\n使用 Visual Studio 2005 Team System 进行单元测试并生成\u003Cem\u003E用于\u003C\u002Fem\u003E Unit Test Framework 的源代码\n在VS.NET2005中使用java代码段以及SOL文件格式的解析\nClubWEBSite starter kit二次开发及Vs2005中ObjectDataSource控件的应用小记\nVisual Studio 2005 RTM的奇怪问题\nTeam Foundation Server Beta3 安装指南\nVS2005中通过code snippet定制类模板\nC#2.0 Singleton 的实现\nDataset+TableAdapter _.net最终数据访问类出现? 我的心血显然被藐视了\n目前发现的 \u003Cem\u003Easp.net\u003C\u002Fem\u003E数据绑定的几个BUG(不定期连载)\n使用GDI+在VS2005下开发基于DataGridView的财务显示单元格控件\n目前发现的VS2005 \u003Cem\u003Easp.net\u003C\u002Fem\u003E 数据绑定bug (二) -关于ObjectDatasource 和TableAdapter\nUse Whidbey Beta2 to target .NET Runtime 1.1\nTargetting 1.1 .NET Framework with MSBuild\n安装TFS\nvs.net 2005中web.config智能感知丢失时\nVS2005中用Code Snippets提高开发效率\nVS2005运行速度优化心得\nvs2005 的WebSite 的开发方式的替代Visual Studio Web Application Projects\nVS2005如何进行单元测试.\n善用免费的Code Snippet Libraries加快你的开发速度\nCode Snippet Libraries压缩下载包\nVisual Studio 2005 Web Application项目RC发布\nVisual Studio 2005 Web Application Projects 项目Cool的地方\nVS2005将支持的两种WEB编程模型的比较\nVS.NET 工具\nCodeSmith\n我的用CodeSmith生成的业务对象\nCodeSmith基础(一)\nCodeSmith基础(二)\nCodeSmith基础(三)\nCodeSmith基础(四)\nCodeSmith基础(五)\nCodeSmith基础(六)\nCodeSmith基础(七)\nCodeSmith基础(八)\nCodeSmith应用(一)\nCodeSmith应用(二)\nCodeSmith应用(三)\nCodeSmith应用(四):实现选择路径对话框\nCodeSmith-Terrylee\nCodeSmith实用技巧(一):使用StringCollection\n数据库字段属性配置工具界面[\u003Cem\u003E用于\u003C\u002Fem\u003E代码生成]\nSharpdevelop2.0预览版放出来了\n对nunit很失望\nResharper的快捷键\nReSharper\n利用Together For VS.NET检查所编写的代码\u003Cem\u003E是否\u003C\u002Fem\u003E够规范\n如何用CodeSmith减少代码重复编写\nNET 的Refletion的初步了解\nVS2005 Add-in:CSS Properties Window\n每个开发人员现在应该下载的十种必备工具\n体验ReSharper V1.0 for VS.Net 2003 - Part I\n用DNS、IIS实现Web项目团队协作开发!\n创建自定义的Visual Studio项模板\nMicrosoft Windows Workflow Foundation 入门:开发人员演练\n将\u003Cem\u003Easp.net\u003C\u002Fem\u003E1.1的应用程序升级到\u003Cem\u003Easp.net\u003C\u002Fem\u003E2.0的一点心得\n自动填写版权信息\n.Net1.x转换为.Net 2.0要注意的几个问题\n服务器同时存在1.1和2.0程序注意事项\n使用@Page指令的Src 属性 简化对老版本的 \u003Cem\u003Easp.net\u003C\u002Fem\u003E程序的维护\n常见的 Web 项目转换问题及解决方案\n将 Web 项目从 Visual Studio .Net 2002\u002F2003 转换到 Visual Studio 2005 的分步指南\n常见的 \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 2.0 转换问题和解决方案\n你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误\n安装vsts:如何卸载SQL Server 2005\n其他新技术\n反射\n初识.net反射技术\n.NET反射、委托技术与设计模式\n.net反射技术的应用—如何调用Java的COM接口\n灵活正确的实现.NET插件机制\nC#中使用反射的性能分析\n论.NET反射、委托技术与设计模式关系\nAjax\n用Ajax技术让IE Web Control Tree View实现大数据量读取\nAJAX设计模式 之 怎样构建\u003Cem\u003E一个\u003C\u002Fem\u003E可刷新的无刷新应用\nAJAX设计模式实践 之 可刷新Ajax应用范例+Framework\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中实现AJAX\nAjax.Net的onLoading及aspx\u003Cem\u003E页面\u003C\u002Fem\u003E的默认名字空间及ajaxpro的google组怎么没有\u003Cem\u003E一个\u003C\u002Fem\u003Echinese?\nCuteEditor5.0的安装及它与Ajax.net配合无刷新操作数据库!\n使用简单的Ajax Framework -MagicAjax.NET\n剖析MagicAjax\n利用AJAX技术开发应用程序实战\n基于Ajax的五子棋演示\nAJAX\u003Cem\u003E页面\u003C\u002Fem\u003EXMLHTTP对象生成及下一步技术研究\n到了该讨论XMLHTTP在Ajax中作用的时候...\nAjax,纠正错误,又向前一小步\nAjax, 想得更实际一些\nAjax, 使用PostBack响应模型和Web控件资源, 让服务器返回更少的数据\n几句话介绍MagicAjax\n使用MagicAjax 实现无刷新Webparts\nAJAX编写用户注册实例及技术小结\nWeb 2.0中AJAX技术应用详解\n\u003Cem\u003E一个\u003C\u002Fem\u003E要钱的ajax框架zumipage\n网站的推广之痛-使用AJAX和.NET网站的朋友注意了\n让MagicAjax支持中文!\n阿特拉斯神(二)\nAJAX急速狂飙:开发www.99scj.com体验(1)\n\u003Cem\u003EASP.NET\u003C\u002Fem\u003E 调味品:AJAX\n一套使用简单的Ajax服务器控件-Anthem.NET\nIntroduction to Anthem.NET\n三种Ajax框架使用比较\nAjax基本原理讲解\n【AjaxPro实现机制浅析二】*.ashx文件是怎么来的?\n利用Ajax与数据岛实现无刷新绑定\n应用Ajax.net在\u003Cem\u003EAsp.net\u003C\u002Fem\u003E中实现无aspx文件应用\nAtlas\n用Atlas来实现\u003Cem\u003E一个\u003C\u002Fem\u003E基于AJAX的无刷新Chatroom\nAtlas Table Layout Template\n学习Atlas是发现的几个小问题\nAtlas笔记1:介绍和调用WebService的方法\nAtlas是什么?\nAtlas 实现机制浅析 [1]\nAtlas 实现机制浅析 [3]\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas编写显示真实进度的ProgressBar(进度条)控件\nAtlas应用程序调试技巧\n在Atlas服务器端实现中推荐使用Web Service而不是Page Method\nAtlas揭秘 —— 绑定(Binding)\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas中创建自定义的Transformer\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas中创建自定义的Validator\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas ItemView控件显示集合中的单个数据\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas ListView控件显示列表数据\n调试Atlas客户端JavaScript脚本\n在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas中创建自定义的Behavior\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas SortBehavior实现客户端排序\n在Atlas中实现检测postback progress的状态的方法\n使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E Atlas XSLTView控件用XSLT修饰并显示XML数据\nRemoting\n一步一步学Remoting之一:从简单开始\n初识用.NET Remoting来开发分布式应用\n使用.NET Remoting开发分布式应用——配置文件篇\n基于消息与.Net Remoting的分布式处理架构\n使用.NET Remoting开发分布式应用——基于租约的生存期\nRemoting多个信道(Chennel)的注册问题\nRemoting中的线程与网络通信内幕初探\nRemoting Event 远程事件\nRemoting Discussion(二)\nRemoting Discussion(三)\n移动开发\n在PPC上用时间做唯一编号遇到的问题及其解决方法\n正确处理 SqlCeException 的方法\n通过ActiveSync使你的Windows Mobile Emulator连接到Internet\nPocket PC 2003编程环境\nWindows Mobile开发环境搭建指南\n短信任务源程序分享[.NET CF C#]\n循序渐进:使用 Visual Studio 2005 为基于 Windows Mobile 的设备生成 .NET Compact Framework 应用程序\n是不是.net compact framework的Bug呢?\n窗体切换中的小技巧\nWeb 2.0\nWEB2.0商业模式才刚开始\n用Blog和Wiki搭建IT团队的知识库\n论web2.0的定义及web2.0盈利的实现方式\nMagicAjax-NoStore,Session,Cache模式的区别\nWiki的介绍\nwiki、Blog与项目知识管理\nwiki的来龙去脉与企业应用\n2006年 Web 2.0 将面临的10个问题\nweb 2.0 精彩语录\n创新的媒介:Web 2.0三大营销变革\n2005年Web 2.0领域涌现的11大高质量软件\n学习冲电 \u003C\u003E Go back什么是Web 2.0?\nWeb 2.0时代,你属于哪一份子?\n全面精通Web 2.0,做互联网潮头人\n项目Wiki的选择和配置\n2005年 Web2.0 带动的11大软件\n最近的\u003Cem\u003Easp.net\u003C\u002Fem\u003E技术demo\n通用异常处理框架\n在C#中调用WINCE连接PC的程序\nGPS定位信息的接收\nPDA\u002FGPS检测报告\nCnForums和已有系统的整合方案\nCommunity Server技术分析——CS是如何将三个项目整合到一起的\nMicrosoft.mshtml到底是什么?\nBI与CRM深入行业应用\n纯粹B\u002FS方式实现InfoPath的设计和运行时--Web Builder\nWebBuilder 界面一览\n大话 .NET\u002FMONO 跨平台应用\n移植 \u003Cem\u003EASP.net\u003C\u002Fem\u003E 项目到 Mono 的问题报告\n激动的一天\nMONO - .NET跨平台之亲身经历(一)\n使用Updater Application Block实现自动更新例子\nComponent\u002FService Oriented Software System Development Thinking\nSmart Client Case Study Source Code Download from MSDN China\n初探YAML\n在将WEBPART打包成*.CAB包和*.MSI安装包后,竟然无法将其安装到指定的WSS网站\nMicrosoft Windows Workflow Foundation 入门:开发人员演练\n如何让ClickOnce进行手动更新(含代码)\nWEB BUILDER中的动态\u003Cem\u003E页面\u003C\u002Fem\u003E生成\nflash与\u003Cem\u003Easp.net\u003C\u002Fem\u003E通信(LoadVars类)\nEsbAOP应用--异常关闭器\nEnterpriseServerBase的AOP--EsbAOP实现\n[WPF]WPF中如何实现数据与表示分离。(一) —— XAML\n翻译:微软是如何输掉API之战(上)\n微软是如何输掉API之战(下)\nLog4Net五步走\nAgile Framework功能介绍(1):自动事件连接\n基于构件技术的软件工程 - Small Team Practice小型团队项目实践标准\nRIA全程追踪-引子\nBoo简介及无关的一些牢骚\n企业应用之领域模型\n企业应用之数据持久化方案\n通过Spring.net来使用XCodeFactory生成的数据层!\n关于SNS规则引擎的一点想法\nBiztalk2004 Decoder的二次开发----春田花花幼稚园的信息化项目\n虚拟社会,做尽天下业务(集思广义,以求大同)\nORM新实现——Dali\n使用Microsoft Systems Management Server 2.0 进行补丁管理\nCNN评出25个典型的下一代互联网公司\nSQL Server Report Services 的RS数据库移植到另外一台服务器,报“rsReportServerNotActivated”错误\n.NET和JAVA的跨平台,我们很期望.但是容易吗\nLoadRunner 架构概览\n关于Flex、Jrun、ColdFusion、IIS、\u003Cem\u003EASP.Net\u003C\u002Fem\u003E结合使用的误区!(只说Flex1.5版本)\nWindows Communication Foundation入门(Part One)\noffice 操作\nADO.NET(OleDb)读取Excel表格时的\u003Cem\u003E一个\u003C\u002Fem\u003EBUG\nOffice with .Net 系列之 ――― 在自己的程序中宿主Office\nOffice with .Net (二) ――― 使用.Net访问Office编程接口\nOffice with .Net(二)之外传―――“彻底干净的”关闭Office程序\n我写的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E操作Excel的\u003Cem\u003E一个\u003C\u002Fem\u003E类库ExcelHelper(源码下载)\nC#操作Excel,套用模板并对数据进行分页\n关于\u003Cem\u003EASP.NET\u003C\u002Fem\u003E中调用Excel组件不能结束进程的解决方法\n用完Excel组件后 如何彻底关闭Excel进程\n\u003Cem\u003E一个\u003C\u002Fem\u003EExcel exporter的组件\nweb 下实现文档的可浏览但不可保存\nExcel开发:简化工作表中选定区域的操作\n开源代码系列之Office文档读写(Excel\u002FWord)\n将Exce嵌入你的.Net程序\n实例与经典源码\n.NET Pet Shop 4\n.NET Pet Shop 4: Migrating an \u003Cem\u003EASP.NET\u003C\u002Fem\u003E 1.1 Application to 2.0\nNET Pet Shop 4\n.NET Pet Shop 4\n关于练习项目的一些背景\n基于.NET 2.0的Petshop4正式推出了\nPetShop的系统架构设计\nPetshop 4 学习\nAgile Framework\n介绍Agile Framework\nAgile Framework架构图\n利用db4o做中间层数据缓存\n关于数据层设计的取舍思考\n基于SOA思想的架构设计\n框架设计之Castle&CompositeUI容器融合\n架构设计之Smart Client\n架构设计之离线处理\nDotNetNuke\nDNN 数据访问策略 【译】\n快速正确的制作DNN模块数据库安装脚本\nDotNetNuke开始支持\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0\nDotNetNuke从入门到进阶(1)怎样写自己的模块\nDotNetNuke 代码文档\n翻译DNN-Documentation-readme.txt\nDotNetNuke:如何创建自己的模块(FlashPlayer Module)\n[DNN模块开发]让模块支持“导入”“导出”功能\n[DNN模块开发]DNN模块的层次划分\n[DNN模块开发]模块的文件结构及命名方法\n[DNN模块开发]如何写模块数据库安装脚本\n建立单独的解决方案来开发DNN模块\n[DNN模块开发]快速制作DNN模块安装包\n[DNN模块开发]快速正确的制作DNN模块数据库安装脚本\n[DNN扩展]将Lion.Web.WebHtmlEditor作为DNN的富文本编辑器(初步实现)\n[DNN扩展]LionHtmlEditorProvider(v1.0.1)\n[DNN扩展]LionHtmlEditorProvider(v1.0.2) 最后更新:2005-7-25\n[DNN模块开发]如何写dnn文件\n[DNN模块开发]分类链接模块终于大功告成了\n[DNN扩展]LionHtmlEditorProvider(v1.0.3)\n[DNN模块开发]分类链接模块V1.1\n[DNN模块开发]增强型DNN在线调查模块\n[DNN学习所得]如何防止\u003Cem\u003E页面\u003C\u002Fem\u003E中的敏感信息被提取\n如何修改DotNetNuke(DNN)中服务条款和隐私说明\n利用反射工厂模式支持多数据库访问\nDNN中搜索引擎原理——如何获取SearchItem\nDNN中搜索引擎原理——数据库分析篇\n[DNN通用控件]TextEditor\n[DNN学习所得]SolpartMenu\u003Cem\u003E一个\u003C\u002Fem\u003E相当不错的下拉菜单控件\n[DNN功能]列表管理添加中国的省份选择下拉框\n[DNN学习所得]CBO——简化从数据库读取数据并实例化对象的有效方法\n刚开始学习DNN的一点小经验(二)\n全新安装dnn3.1.0\nDNN安装模板(DotNetNuke.install)\n[DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载)\nDNN核心用户控件——实现\u003Cem\u003E页面\u003C\u002Fem\u003E灵活布局的第一步\nDNN的数据访问方式——合理运用模式,提高数据访问的灵活性(有修正)\n刚开始学习DNN的一点小经验(一)\n[DNN学习所得]HttpModule到底是个什么东西\nDotNetNuke3研究报告一(安装)\n初识DotNetNuke(DNN)\n关于DotNetNuke(DNN)的语言问题\nDotNetNuke3研究报告二(数据访问)\n[DNN学习所得]HttpModule到底是个什么东西\nDNN文件夹说明\n[DNN通用控件]DualListControl介绍\nDNN3.2.2安装说明 [DNN 3.2.2]\nDNN开发中的一些细节(2)\nDNN开发中的一些细节(1)\nFlash+xml 在 Dnn系统开发中的应用\nDNN开发中的一些细节(3)\n开源项目\n开源CMS Alfresco 1.0 发布\nArgoUML -- 开源UML 建模工具\n应用IBatisNet+Castle进行项目的开发\n再论IBatisNet + Castle进行项目的开发\nNHibernate VS IbatisNet\nIBatisNet 之 自动生成主关键字\n细节决定成败:\u003Cem\u003E一个\u003C\u002Fem\u003E公共类库\nBugTracker.NET 汉化手札\nORM开题篇-Gentle.NET之牛刀小试\n使用NHIBERNATE写DAL层的流程和牢骚\nMono 开发 (使用.NET技术的你,绝对不能忽略Mono)\n.NET开源项目链接\nMonoRail - 前期准备\nMonoRail - 简介\n经典案例介绍\n广州市工商局商标管理软件\nDuwamish\n学习Duwamish7的MSDN说明及相关技术策略\nDuwamish7学习笔记(七)\nDuwamish7学习笔记(六)\nDuwamish7学习笔记(五)\nDuwamish7学习笔记(四)\nDuwamish7学习笔记(三)\nDuwamish7学习笔记(二)\nDuwamish7学习笔记(-)\nNHibernate\n使用NHibernateContrib中的Nullables\nNHibernate文档翻译进度&问题收集(持续更新)\nNHibernate文档翻译 第3章 持久化类(Persistent Classes)\nNHibernate文档翻译 第5章 集合类(Collections)映射\nNHibernate文档翻译 第6章 关联映射\nNHibernate文档翻译 第7章 示例: Parent\u002FChild\nNHibernate 1.0.1 发布了\nNHibernate文档翻译完成\nNHibernate文档翻译 第8章 NHibernate缓存(NHibernate.Caches)\nNHibernate文档翻译 第9章 使用AttributesNHibernate.Mapping.Attributes\nNHibernate文档翻译 第10章 NHibernate.Tool.hbm2net\nDDL的NHibernate文档 1.快速起步\nNHibernate中DateTime,int,bool空值的处理方法\n使用NHibernate进行数据持久层开发的最佳实践\n基于NHibernate的三层结构应用程序开发初步\nNHibernate.Helper Project\nNHibernate学习手记(1) - 对象的简单CRUD操作\nNHibernate学习手记(6) - 实现one2many\u002Fmany2one的映射\nNHibernate快速指南\nNHibernate之1——为什么不用DataSet?\nNHibernate文档翻译 第1章 体系结构\nNHibernate文档翻译 第2章 ISessionFactory配置\nNHibernate文档翻译 第4章 O\u002FR Mapping基础\n由为什么要学习NHibernate说开去\nNHibernate 使用手迹(1st)\nNHibernate 使用手迹(2nd)\nNHibernate使用手迹(3rd)\n发布:偶写的NHibernate代码生成器\n面向对象设计,ORM,NHIBERNATE杂谈(有感)\nSnake.Net\nSnake.Net 框架中的ORM(一) (Version 0.2 Beta)\nSnake.Net 框架中的ORM(二) (Version 0.2 Beta)\nSnake.Net 框架中的ORM(三) (Version 0.2 Beta)\nSnake.Net网络通讯模块 序\nSnake.Net网络通讯模块 - SMTP(一)\nSnake.Net网络通讯模块 - POP3(二)\nSnake.Net网络通讯模块 - IMAP4(三)\nSnake.Net网络通讯模块 - FTP(四)\nSnake.Net 框架中的ORM(四) (Version 0.2 Beta)\nSnake.Net 框架中的ORM(五) (Version 0.2 Beta)\nQPG平台\n编写容易被维护的代码(1)\nQPG--基本用法介绍\n技术篇(1)--QPG容器的基本用法\n技术篇(2)--QPG容器的高级用法\n技术篇(3)--QPG界面分解方法介绍\n技术篇(4)--基于QPG容器的服务扩展\n技术篇(5)--QPG数据处理方法\n技术篇(6)--大话AOP\n实践篇(1)--QPG之“打狗棍法”\n思想篇(3)—IT运用模式的轮回\n思想篇(2)--归纳和演绎能力也很重要\n思想篇(1)--企业需要什么样的人才?\n思想篇(完)----跟往事干杯\n思想篇(4)----\n实战解析(完)----总结\nEnterprise Library\nEnterprise Library2.0(1):Data Access Application Block学习\nEnterprise Library2.0(2):Logging Application Block学习\nEnterprise Library2.0中加密数据库连接字符串\nEnterprise Library——企业库配置管理应用程序块\nEnterprise Library——企业库缓存应用程序块\nEnterprise Library Step By Step系列(一):配置应用程序块——入门篇\nEnterprise Library Step By Step系列(二):配置应用程序块——进阶篇\nEnterprise Library Step By Step系列(三):数据访问程序块——入门篇\nEnterprise Library Step By Step系列(四):数据访问程序块——进阶篇\nEnterprise Library Step By Step系列(五):安全应用程序块——入门篇\nEnterprise Library Step By Step系列(六):安全应用程序块——进阶篇\nEnterprise Library Step By Step系列(七):日志和监测应用程序块——入门篇\nterprise Library Step By Step系列(八):日志和监测应用程序块——进阶篇\nEnterprise Library Step By Step系列(九):缓冲应用程序块——入门篇\nEnterprise Library Step By Step系列(十):缓冲应用程序块——进阶篇\nEnterprise Library Step By Step系列(十一):异常处理应用程序块——入门篇\nEnterprise Library Step By Step系列(十二):异常处理应用程序块——进阶篇\nEnterprise Library Step By Step系列(十三):加密应用程序块——入门篇\nEnterprise Library Step By Step系列(十四):创建基于消息队列(MSMQ)的异步日志\nEnterprise Library Step By Step系列(十五):配置应用程序块——设计篇\nEnterprise Library Step By Step系列(十六):使用AppSetting Application Block\nComposite UI Application Block 学习笔记之Commands\nComposite UI Application Block学习笔记之Event Broker\n使用Updater Application Block实现自动更新例子\n使用企业程序库的两点体会\nComposite UI Application Block学习笔记之Smart Part\n关于在服务器端使用Microsoft Exception Management Application Block\nLogging application block of Enterprise Library 2.0\nTimeStamp of the Logging Application Block in EntLib 2.0\n对 Updater Application Block v2的表面行为分析及问题 (一)\nHTTP Downloader for Updater Application Block 2\nObjectBuilder内功心法之中国特色\n\u003Cem\u003E一个\u003C\u002Fem\u003E从网页中提取天气预报信息的程序(附源码)\nIlungasoft Framework: 使用视图处理继承关系、Tree结构实体关系映射示例[源码]\nDataQuicker2快速入门-----存储过程篇\n\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003EASP.NET\u003C\u002Fem\u003E2.0的小项目-BLOG\nIlungasoft Framework中处理有关联关系的实体\nCommunity Server2.0专注细节一 邮件提醒按钮实现(上)\nDataQuicker(ORM)中的缓存机制\n数据框架DataQuicker2第\u003Cem\u003E一个\u003C\u002Fem\u003E版本开源下载.\nSVG + Javascript + \u003Cem\u003EASP.NET\u003C\u002Fem\u003E + WebService开发楼宇管理系统 - 杂记3(完)\n新的数据框架DataQuicker2\nWalk through Message----春田花花幼稚园的信息化项目(II)\nSVG + Javascript + \u003Cem\u003EASP.NET\u003C\u002Fem\u003E + WebSe","createTime":"2015-06-18 08:45:45","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-8817735-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-8817735-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fweixinfu3753\u002F8817735\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-8817735-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fweixinfu3753\u002F8817735\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-8817735-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130","title":"ExtAspNet_v2.3.2_dll","desc":"ExtAspNet - ExtJS based \u003Cem\u003EASP.NET\u003C\u002Fem\u003E Controls with Full AJAX Support\n\t\nExtAspNet是一组专业的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。\n\n支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002Fext\u003Cem\u003Easp.net\u003C\u002Fem\u003E\u002F\n开源: http:\u002F\u002Fextaspnet.codeplex.com\u002F\n博客: http:\u002F\u002Fsanshi.cnblogs.com\u002F\n邮箱: sanshi.ustc@gmail.com\n\n\n发布历史:\n\n+2010-09-29 v2.3.2\n\t-不绑定任何数据到Grid时,确保\u003Cem\u003E页面\u003C\u002Fem\u003E不会出错。\n\t-修正了Grid列属性DataFormatString的\u003Cem\u003E一个\u003C\u002Fem\u003Ebug,比如设置{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中的\u003Cem\u003E一个\u003C\u002Fem\u003Ebug(31\u002F01\u002F2010将会返回NULL)使用DateFormatString来生成SelectedDate属性(feedback:OktaEndy)。\n\t-修正extjs最新版本(v3.2.2)中的\u003Cem\u003E一个\u003C\u002Fem\u003Ebug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第\u003Cem\u003E一个\u003C\u002Fem\u003EText的值(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-ExtAspNet控件将不在依赖ViewState,减少1\u002F4左右的HTTP数据传输量。\n\t-控件和示例的增强。\n\t\n\t\n\n+2010-03-28 v2.2.1\n\t+为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 \n\t\t-修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。\n\t-修正basic\u002Fhello.aspx示例在单独浏览器打开后,不能\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框的BUG。\n\t-隐藏示例首页最外层RegionPanel的边框ShowBorder=\"false\"。\n\t+集成Extjs最新版本v3.1.1。\n\t\t-增加\u003Cem\u003E一个\u003C\u002Fem\u003E新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时\u003Cem\u003E页面\u003C\u002Fem\u003E消失的BUG。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003EPanel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的控件ImageButton具有和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的Button控件类似的行为(Ajax提交)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加\u003Cem\u003E删除\u003C\u002Fem\u003ETab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.aspx。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加EnableTabCloseMenu属性,\u003Cem\u003E是否\u003C\u002Fem\u003E启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal=\"false\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E确认\u003C\u002Fem\u003E对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-\u003Cem\u003E删除\u003C\u002Fem\u003EButton控件的SystemIcon属性,比如以前这样定义SystemIcon=\"Close\",现在需要这样定义Icon=\"SystemClose\"。\n\t-WindowPosition默认居中,而不是黄金分割位置。\n\t+Button, Window等控件\u003Cem\u003E弹出\u003C\u002Fem\u003E位置属性的变化。\n\t\t-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_self\" -\u003E Target=\"Self\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。\n\t\t-Confirm.GetShowReference的最后\u003Cem\u003E一个\u003C\u002Fem\u003E参数target变为枚举类型。\n\t\t-Alert.GetShowReference中的showInParent参数也变为Target枚举类型。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成Extjs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS问题。\n\t-修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。\n\t-修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。\n\t-Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第\u003Cem\u003E一个\u003C\u002Fem\u003E按钮设置CssStyle=\"float:left;\"属性。\n\t-修正了\u003Cem\u003E弹出\u003C\u002Fem\u003E菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加EnableEdit属性。\n\t-使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。\n\t-使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。\n\t-Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。\n\t-增加TabStrip中Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。\n\t-修正HtmlEditor不能编辑的BUG(feedback:TheBox)。\n\t-修正IE下有时会出现空白\u003Cem\u003E页面\u003C\u002Fem\u003E的情况(feedback:olivia919)。\n\t\n\t\n\n+2009-12-06 v2.1.8\n\t-修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。\n\t-修正了IE下Grid中的\u003Cem\u003E一个\u003C\u002Fem\u003EJS问题(feedback:lqm4108)。\n\t-修正Alert消息中引号未编码导致的JS错误(feedback:sun1299shine)。\n\t+集成extjs3.0.3。\n\t\t-修正\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框的宽度计算错误(会保持最小的状态)。\n\t\t-增加新的皮肤Gray。\n\t-为示例工程添加改变语言和皮肤的下拉列表。\n\t-为PageContext增加静态函数Refresh,在切换语言和皮肤时使用。\t\n\n\n\n+2009-12-01 v2.1.7\n\t-增加示例(iframe\u002Fparent_postback_run3.aspx),如何通过简单的Javascript代码回发父\u003Cem\u003E页面\u003C\u002Fem\u003E(feedback:eroach)。\n\t-修正一些书写错误(feedback:bmck)。\n\t-从Region控件中\u003Cem\u003E删除\u003C\u002Fem\u003ESplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。\n\t-BorderPanel更名为RegionPanel。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加中国的省市县三级联动示例(data\u002Fshengshixian.aspx)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是\u003Cem\u003E一个\u003C\u002Fem\u003E在v2.1.6引入的问题(feedback:eroach)。\n\t-修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。\n\t\n\t\n\t\n+2009-11-26 v2.1.6\n\t+修正动态创建Grid列的BUG(feedback:gxpan)。\n\t\t-增加示例(data\u002Fgrid_dynamic_columns.aspx)。\n\t-修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如Panel,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。\n\t-重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。\n\t\t\t\n\n\n+2009-11-21 v2.1.5\n\t+Tree优化。\n\t\t-修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。\n\t\t-GetNodeById更名为FindNode,保持和FindControl一致命名。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003ECheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003EExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。\n\t\t-增加示例(data\u002Ftree_select_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的\u003Cem\u003E一个\u003C\u002Fem\u003E命名约定。\n\t\t\t-同时更名的还有GridColumn的ColumnId-\u003EColumnID,GetColumnId-\u003EGetColumnID。\n\t\t\t-Grid1.Columns.FindColumnById函数被Grid1.FindColumn所替代。\n\t\t-为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。\n\t-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。\n\t-增加示例(other\u002Fcustom_postback.aspx)(feedback:thebox)。\n\t\t-如何自定义Javascript脚本和C#处理函数来响应键盘事件。\n\t-为Tree增加AutoLeafIdentification属性。\n\t\t-增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。\n\t\n\t\n\n+2009-11-17 v2.1.4\n\t-修正Window的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。\n\t-部分ExtAspNet控件的设计时支持(会在后续版本中逐步完善)。\n\t-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时\u003Cem\u003E是否\u003C\u002Fem\u003E保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003EEnablePostBack)。\n\t-为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。\n\t+为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,\u003Cem\u003E用于\u003C\u002Fem\u003E指定验证失败时提示信息。\n\t\t-为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。\n\t+为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。\n\t\t-增加示例:form\u002Fform_validate.aspx\n\t\n\t\n\n+2009-10-19 v2.1.3\n\t+增加支持在AJAX时改变的控件属性列表(\u002Fajax.aspx)。\n\t\t-ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到\u003Cem\u003E页面\u003C\u002Fem\u003E中,但并不是所有的控件属性都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.aspx示例,使用验证图片(feedback:kedee)。\n\t-为Grid增加AutoPostBack属性和RowClick事件,示例在\u002Fdata\u002Fgrid_autopostback.aspx(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。\n\t-Grid中TemplateField生成到\u003Cem\u003E页面\u003C\u002Fem\u003E中控件具有唯一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属性,则IconUrl优先于Icon。\n\t\t-所有Icon的列表在icon.aspx。\n\t-为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。\n\t\n\t\n\n+2009-09-15 v2.1.1\n\t-修正不能动态修改AccordionPane属性Items的BUG。\n\t+为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。\n\t\t-如果需要在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E确认\u003C\u002Fem\u003E对话框,需要设置ConfirmTarget=\"_parent\"(类似Window控件的Target=\"_parent\")。\n\t+为ExtAspNet.Alert.Show增加点击确定的JavaScript回调函数。\n\t\t-\u003Cem\u003E一个\u003C\u002Fem\u003E典型应用,在Window控件中打开新\u003Cem\u003E页面\u003C\u002Fem\u003E,如果传递的参数不正确,则首先提示参数不对然后关闭此\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。\n\t\t-ExtAspNet.Alert.Show(\"参数错误!\", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002Fext\u003Cem\u003Easp.net\u003C\u002Fem\u003E\u002Fdata\u002Ftree_run.aspx\n\t-Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选中任何一项时在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框的JS代码。\n\t-修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。\n\t-添加定时器控件Timer,用来定时发起AJAX请求。\n\t\n\t\n\n+2009-09-06 v2.1.0\n\t-Button的Pressed属性值能够正确的反映客户端的变化。\n\t-优化Tree控件的AJAX实现。\n\t+为\u003Cem\u003E页面\u003C\u002Fem\u003E的Form添加autocomplete=\"off\"属性。\n\t\t-参考http:\u002F\u002Fwww.cnblogs.com\u002Fsanshi\u002Farchive\u002F2009\u002F09\u002F04\u002F1560146.html#1635830\n\t+添加对extjs3.0中所有语言的支持。\n\t\t-ExtAspNet扩展的多语言包在js\\languages\\extaspnet目录下,目前只有en,zh_CN,zh_TW三种实现\n\t\t-你可以向其中添加自己的语言版本,并执行js\\languages下的pack.bat打包,最后编译工程。\n\t\n\t\n\t\n+2009-09-01 v2.0.9\n\t-为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,\u003Cem\u003E用于\u003C\u002Fem\u003E在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。\n\t+在aspx\u003Cem\u003E页面\u003C\u002Fem\u003E中必须显示的声明控件的集合属性(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。\n\t\t-这将会影响所有的aspx\u003Cem\u003E页面\u003C\u002Fem\u003E,所以要特别关注。\n\t-重命名AccordionPanel为AccordionPane (这也是在\u003Cem\u003EAsp.net\u003C\u002Fem\u003E AJAX中使用的名称).\n\t+所有的面板默认有两个集合属性(Toolbars和Items).\n\t\t-尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的).\n\t\t-这将会影响所有的aspx\u003Cem\u003E页面\u003C\u002Fem\u003E,一定要将工具条(Toolbars)和Items区分开来。\n\t-祝你生日快乐 - 小师妹妹。\n\n\n\n+2009-08-29 v2.0.8\n\t-ExtAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的\u003Cem\u003E一个\u003C\u002Fem\u003EBUG(定义Mappings属性时)。\n\t+PageManager.Instance应该存在于HttpContext.Current,而不是\u003Cem\u003E一个\u003C\u002Fem\u003E全局变量。\n\t -这个BUG导致\u003Cem\u003EAsp.net\u003C\u002Fem\u003E compatibility中的示例无法完成,现在已经修正。\n\t+去除PageManager中方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。\n\t -这个属性和Button得ValidateForms属性类似,可以查看\u003Cem\u003EAsp.net\u003C\u002Fem\u003E compatibility中的示例。\n\t\n\t\n\n+2009-08-25 v2.0.7\n -为按钮增加DisableControlBeforePostBack属性 - 回发之前\u003Cem\u003E是否\u003C\u002Fem\u003E禁用按钮,防止重复提交 - 默认为true。\n -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。\n -增加示例-如何将Grid控件导出为Excel(data\\grid_excel_run.aspx)(feedback:503684912)。\n -如果TreeNode的属性Enabled=\"false\",则此项变灰并且不会被选中(feedback:your568)。\n -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.aspx)。\n -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID属性来代替。\n\t\t-这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。\n\t\t-简单方便,示例可以参考 default.aspx 或者 other\\accordion_tree_run.aspx。\n \n \n\n+2009-08-14 v2.0.6\n\t-动态生成菜单实例(other\\menu_dynamic_run.aspx和other\\menu_dynamic2_run.aspx)(feedback:shguo)。\n\t-优化AJAX的内部实现,每个\u003Cem\u003E页面\u003C\u002Fem\u003E保存的ViewState现在减少1\u002F3左右(重要更新)。\n\t-优化Tree节点的NodeId自动生成,减少ViewState占用。\n\t\n\n\n+2009-08-09 v2.0 beta5\n\t+ExtAspNet和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的提交按钮兼容问题(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的按钮AJAX提交,必须设置UseSubmitBehavior=\"false\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件了。\n\t\t-在Page_Load中设置了哪些需要在AJAX中更新的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。\n\t\t-示例在aspnet\\fckeditor_run.aspx和aspnet\\aspnet_run.aspx。\n\t\t-FCKEditor和上传控件兼容。示例在aspnet\\fileupload_run.aspx。\n\t-修正ToolbarText的文本在AJAX下更新的BUG。\n\t-Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。\n\t-更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。\n\t\n\n\n+2009-08-02 v2.0 beta4\n\t+和\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E的Forms Authentication兼容[feedback:mgzhenhong]。\n\t\t-采用和\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E Ajax类似的处理方式,需要在配置文件Web.config增加\u003Cem\u003E一个\u003C\u002Fem\u003EhttpModules。\n\t\t-现在支持Response.Redirect,你可以选择Response.Redirect或者ExtAspNet.PageContext.Redirect重定向\u003Cem\u003E页面\u003C\u002Fem\u003E,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。\n\t-Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不显示(Target=\"_parent\")的BUG[feedback:xmq&mgzhenhong]。\n\t\n\n\n+2009-07-22 v2.0 beta3\n\t-兼容FCKEditor。\n\t-在IE8.0,Firefox3.5下测试通过。以后ExtAspNet将不会对IE6.0提供支持。\n\t\n\n\n+2009-07-13 v2.0 beta2\n\t-集成extjs最新版本v3.0。\n\t+兼容IE6.0-7.0-8.0。\n\t\t-这应该是Extjs3.0的\u003Cem\u003E一个\u003C\u002Fem\u003EBUG,在IE6.0-7.0下面设置Ext.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。\n\t\t-目前先禁用IE6.0-7.0的QuickTips。\n\t-优化底层JavaScript。\n\t\n\t\n\t\n+2009-07-05 v2.0 beta1\n\t-更新extjs库到最新版本v3.0 RC2; 目前只有\u003Cem\u003E一个\u003C\u002Fem\u003E缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Release版本每个\u003Cem\u003E页面\u003C\u002Fem\u003E只包含\u003Cem\u003E一个\u003C\u002Fem\u003EJavaScript文件(语言文件除外)和\u003Cem\u003E一个\u003C\u002Fem\u003ECSS文件。\n\t-ExtAspNet自身的CSS会紧挨着\u003Cem\u003E页面\u003C\u002Fem\u003E标签引入,这样在中自定义的样式可以覆盖ExtAspNet缺省样式。\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 button { 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中的EnableIFrame==false,则点击关闭按钮时报JS错误。[fixed]\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet\u002Ffileupload.aspx)[fixed]\n\t-HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口(Ext-Window)含有\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件FileUpload,则此\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口在关闭时出现JS错误(http:\u002F\u002Fextjs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果\u003Cem\u003E页面\u003C\u002Fem\u003E中存在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed]\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E上放置ExtAspNet-Button和\u003Cem\u003EASP.NET\u003C\u002Fem\u003E-Button,则点击ExtAspNet-Button时激发的是\u003Cem\u003EASP.NET\u003C\u002Fem\u003E-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed]\n\t-ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在ExtAspNet工程中使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和\u003Cem\u003EASP.NET\u003C\u002Fem\u003E标准控件和平共处了。[fixed]\n\t\t-如果\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003EASP.NET\u003C\u002Fem\u003E按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 UseSubmitBehavior=\"false\" 即可。\n\t\t-如果要在一次ExtAspNet的原生AJAX回发时更新\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet\u002Faspnet.aspx)。\n\n\n\n+2009-02-27 v1.2 beta9\n\t-网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新\u003Cem\u003E页面\u003C\u002Fem\u003E重试。”。[fixed]\n\t-自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed]\n\t+系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed]\n\t\t-底层使用Javascript创建\u003Cem\u003E一个\u003C\u002Fem\u003EWindow控件的代码由原来的2000字符减少为500个字符。\t\n\t\t-PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前\u003Cem\u003E页面\u003C\u002Fem\u003E中表单修改的\u003Cem\u003E确认\u003C\u002Fem\u003E\u003Cem\u003E提示框\u003C\u002Fem\u003E的脚本”。\n\t\t---[updated]\u003Cem\u003E删除\u003C\u002Fem\u003EPageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference\u002FGetConfirmFormModifiedCloseRefreshReference\u002FGetConfirmFormModifiedClosePostBackReference三个方法代替。\n\t\t-不会修改\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E的URL(Ext-Window中的IFrame),以前为了实现功能为每个\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的ASPX\u003Cem\u003E页面\u003C\u002Fem\u003E中查找RegisterPageStateChangedScript属性,并\u003Cem\u003E删除\u003C\u002Fem\u003E,否则会运行错误!\n\t\t-A\u003Cem\u003E页面\u003C\u002Fem\u003E有Ext-Window控件\u003Cem\u003E弹出\u003C\u002Fem\u003EB\u003Cem\u003E页面\u003C\u002Fem\u003E,B\u003Cem\u003E页面\u003C\u002Fem\u003E有Ext-Window控件\u003Cem\u003E弹出\u003C\u002Fem\u003EC\u003Cem\u003E页面\u003C\u002Fem\u003E,B\u003Cem\u003E页面\u003C\u002Fem\u003E的Ext-Window控件设置Target='_parent',则\u003Cem\u003E弹出\u003C\u002Fem\u003E的Ext-Window(C\u003Cem\u003E页面\u003C\u002Fem\u003E)会覆盖整个A\u003Cem\u003E页面\u003C\u002Fem\u003E,这是正确的。\n\t\t---当时如果用户直接访问B\u003Cem\u003E页面\u003C\u002Fem\u003E,就会报JS错误,因为此时找不到B\u003Cem\u003E页面\u003C\u002Fem\u003E的父\u003Cem\u003E页面\u003C\u002Fem\u003EA了。现在的版本修正为如果找不到父\u003Cem\u003E页面\u003C\u002Fem\u003E,则就在当前\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口,这样用户直接访问B\u003Cem\u003E页面\u003C\u002Fem\u003E也不会出错了。\n\t\t-Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先\u003Cem\u003E确认\u003C\u002Fem\u003EIFrame的\u003Cem\u003E页面\u003C\u002Fem\u003E中表单改变,然后关闭\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先\u003Cem\u003E确认\u003C\u002Fem\u003E表单改变,然后关闭\u003Cem\u003E弹出\u003C\u002Fem\u003EExt-Window,再然后刷新父\u003Cem\u003E页面\u003C\u002Fem\u003E或回发父\u003Cem\u003E页面\u003C\u002Fem\u003E”。\n\t\t---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单\u003Cem\u003E是否\u003C\u002Fem\u003E更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父\u003Cem\u003E页面\u003C\u002Fem\u003E或者关闭后回发父\u003Cem\u003E页面\u003C\u002Fem\u003E的行为。\n\t\t-如果\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口(Window控件)中IFrame的\u003Cem\u003E页面\u003C\u002Fem\u003E不能正常加载(网络暂时出错或\u003Cem\u003E页面\u003C\u002Fem\u003E抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时\u003Cem\u003E页面\u003C\u002Fem\u003E尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时\u003Cem\u003E页面\u003C\u002Fem\u003E不能加载完全,也能通过右上角的关闭按钮关闭\u003Cem\u003E弹出\u003C\u002Fem\u003E含IFrame的窗体。\n\t\t-Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-Window最终都渲染到最外层的\u003Cem\u003E页面\u003C\u002Fem\u003E,为了保证这些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的地方,需要\u003Cem\u003E删除\u003C\u002Fem\u003E第\u003Cem\u003E一个\u003C\u002Fem\u003E参数(一般是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在\u003Cem\u003E页面\u003C\u002Fem\u003E第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed]\n\t-升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed]\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E加载过程中的时间信息保存在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属性[feedback:jqpeng]。[fixed]\n\t-发布包中增加\u003Cem\u003E一个\u003C\u002Fem\u003EWeb.config.txt,这是\u003Cem\u003E一个\u003C\u002Fem\u003E空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时显示不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样\u003Cem\u003E一个\u003C\u002Fem\u003E效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则\u003Cem\u003E页面\u003C\u002Fem\u003E加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed]\n\t\t-需要替换新的blowery.Web.HttpCompress.dll,解决方案见http:\u002F\u002Fpohee.com\u002Fit\u002Fhttp-compression-in-aspnet-20\u002F。\n\t+DropDownList优化。[fixed]\n\t\t-去除EnableFirstItem\u002FFirstItemText\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.Insert(0, new ExtAspNet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。\n\t\t\t-和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E中的保持一致,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+为所有控件属性增加在VS中的智能提示。[fixed]\n\t\t-需要将ExtAspNet.XML和ExtAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。\n\t+控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed]\n\t\t-TriggerIconType.Default -\u003E TriggerIconType.None\n\t\t-SystemIconType.Empty -\u003E SystemIconType.None\n\t\t-RegexPattern.USER_DEFINED -\u003E RegexPattern.None\n\t-表单验证属性名称变化(ValueToCompare-\u003ECompareValue,ControlToCompare-\u003ECompareControl)。[fixed]\n\t+注意:\u003Cem\u003E一个\u003C\u002Fem\u003E属性可以拥有多个值的情况。[fixed]\n\t\t-属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。\n\t\t-其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。\n\t+AccordionLink实现为控件。[fixed]\n\t\t-可以方便的在子\u003Cem\u003E页面\u003C\u002Fem\u003E(iframe)中通过js切换父\u003Cem\u003E页面\u003C\u002Fem\u003E中选中的菜单项(Accordion-\u003EAccordionLink)(示例在other\u002Faccordion_links_run.aspx,other\u002Faccordion_links_run_iframe_htm)[feedback:jima]。\n\t+\u003Cem\u003E确认\u003C\u002Fem\u003E:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form\u002Fform_dynamic_run.aspx)。[fixed]\n\t\n\t\n\t\n+2008-10-15 v1.2 beta5\n\t-验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed]\n\t+优化下拉列表。[fixed]\n\t\t-验证下拉列表时,应该取ListItem的Value属性进行验证,而不是Text属性。\n\t\t-DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyText属性。\n\t\t-ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other\u002Faccordion_run.aspx)。[fixed]\n\t\t-Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。\n\t\t-影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。\n\t-AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other\u002Faccordion_links_run.aspx)。[fixed]\n\t\t-原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上标签。\n\t\t-适当增大AccordionPanel中链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed]\n\t\t-Panel\u002FGroupPanel\u002FContentPanel\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form中动态添加控件的BUG,现在form\u002Fform_dynamic_run.aspx示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordionPanel\u002FGroupPanel\u002FPanel\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。\n\t\t-保留TabStrip的Tabs(TabCollection)属性。\n\t\t-保留PageLayout\u002FBorderLayout的Regions(RegionCollection)属性。\n\t-预祝今晚神七发射成功。\n\t\n\t\n\t\n+2008-09-22 v1.2 beta2\n\t+Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对Grid进行多次\u003Cem\u003E删除\u003C\u002Fem\u003E添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002FButton\u002FHyperLink\u002FLabel\u002FImage\u002FLinkButton\u002FTextBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FTextArea\u002FHtmlEditor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002FRadioButton\u002FRadioButtonList\u002FDropDownList\n\t\t-Grid\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLinkButton\u002FHyperLink增加一些Ajax可更新属性。[fixed]\n\t+隐藏的方式由HideMode属性控制Visibility\u002FOffsets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm中隐藏\u003Cem\u003E一个\u003C\u002Fem\u003E表单字段(Hidden=false)会占据\u003Cem\u003E页面\u003C\u002Fem\u003E空间的BUG。\n\t-ToolbarText\u002FToolbarFill\u002FToolbarSeparator在ASPX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed]\n\t-Button去除MarginRight属性(可以通过CssStyle=\"margin-right:5px;\"达到相同的效果)[fixed]\n\t\n\t\n\t\n+2008-09-09 v1.1\n\t+Toolbar去除IsPageMenu属性,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed]\n\t\t-网报:CssClass=\"toolbar-pagemenu\" CssStyle=\"border:0px;\",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(..\u002Fimages\u002Fpagemenu_toolbar_background.gif) repeat-x left top;}。\n\t-Region去除默认的Layout=Fit,如果希望Region使用Fit\u002FAnchor\u002FColumn\u002FRow等布局的话,需要手工指定。[fixed]\n\t-ToolbarSeparator\u002FToolbarFill在Ajax更新Hidden属性的BUG。[fixed]\n\t+布局整理。[fixed]\n\t\t-新增Column\u002FAbsolute\u002FRow三种布局,加上以前的Container\u002FFit\u002FAnchor\u002FAccordion\u002FBorder\u002FForm六种布局,总共有9中布局可供使用。\n\t\t-其中一些控件默认使用一种布局:SimpleForm(Form)\u002FForm(Form)\u002FPanel-GroupPanel(Container)\u002FAccordion(Accordion)\u002FPageLayout(Border)\u002FBorderLayout(Border)\u002FTabStrip(Card),所有布局控件默认的布局是Container。\n\t\t-经常用到的布局控件:SimpleForm\u002FForm\u002FAccordion\u002FTabStrip\u002FBorderLayout,经常用到的布局:Fit\u002FRow\u002FAnchor\n\t\n\t\n\t\n+2008-09-08 v1.1 beta7\n\t-MenuButton\u002FMenuHyperLink增加HideOnClick属性,如果\u003Cem\u003E一个\u003C\u002Fem\u003E菜单项的作用仅仅为了\u003Cem\u003E弹出\u003C\u002Fem\u003E下级菜单,点击没反应,则可以这样设置HideOnClick=\"false\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-MenuButton\u002FMenuHyperLink\u002FMenuSeparator\u002FMenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed]\n\t+大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。\n\t\t-网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageContext.Redirect支持普通\u003Cem\u003E页面\u003C\u002Fem\u003E转向和ExtAspNetAjax下\u003Cem\u003E页面\u003C\u002Fem\u003E转向。[fixed]\n\t+模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed]\n\t\t-因为if(\"0,2,9,11,\".indexOf('1,')\u003E=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,DropDownList,TabStrip)。\n\t\t-解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) \u003E= 0){ok}。\n\t-DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed]\n\t-Button\u002FMenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed]\n\t-Tree的Ajax支持(尚需优化)。[fixed]\n\t\n\t\n\n+2008-09-02 v1.1 beta5\n\t-DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed]\n\t-模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项\u003Cem\u003E是否\u003C\u002Fem\u003E可选状态是最新的(\u003Cem\u003E页面\u003C\u002Fem\u003E第一次加载时,即使没有数据也需要设置DataTextField\u002FDataValueField\u002FDataSimulateTreeLevelField\u002FDataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed]\n\t-UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的控件HiddenField,而是使用ExtAspNet的HiddenField,因为\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,RadioButtonList中项如果存在汉字,则会换行的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\u003E页面\u003C\u002Fem\u003E上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢\u003Cem\u003E页面\u003C\u002Fem\u003E的加载速度),现在已经解决这个问题。[fixed]\n\t-RadioButtonList去除EnableBackgroundColor\u002FEnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第\u003Cem\u003E一个\u003C\u002Fem\u003ETrigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置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-RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue\u002FSelectedItem)。\n\t\t-DropDownList增加Ajax可更新属性Enable\u002FSelectedIndex(SelectedValue\u002FSelectedItem)\u002FDataSource。\n\t\t-Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。\n\t\t-ToolbarText增加Ajax可更新属性Text。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加EnableDeferredRender属性(\u003Cem\u003E是否\u003C\u002Fem\u003E启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向\u003Cem\u003E页面\u003C\u002Fem\u003E,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed]\n\t+安全的Ajax设计。[fixed]\n\t\t-这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。\n\t\t-基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。\n\t\t-整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。\n\t-网报Ajax整合(目前只支持所有的列表\u003Cem\u003E页面\u003C\u002Fem\u003E)(v0.8.1)。[fixed]\n\t\n\t\n\t\n+2008-08-29 v1.1 beta1\n\t+Window控件\u003Cem\u003E是否\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E的状态在回发时维持。[fixed]\n\t\t-控件设计的\u003Cem\u003E一个\u003C\u002Fem\u003E原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。\n\t+完全抛弃\u003Cem\u003EAsp.Net\u003C\u002Fem\u003EAjax,ExtAspNet控件内置Ajax支持。[fixed]\n\t\t-这是\u003Cem\u003E一个\u003C\u002Fem\u003E值得骄傲的设计,可以明显提高\u003Cem\u003E页面\u003C\u002Fem\u003E回发的速度(相比普通的回发和\u003Cem\u003EAsp.net\u003C\u002Fem\u003EAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的点击\u003Cem\u003E一个\u003C\u002Fem\u003E按钮\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前ExtAspNetAjax的限制。\n\t\t\t-只对ExtAspNet控件起作用,对\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件不起作用。\n\t\t\t-对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。\n\t\t\t-对改变控件的Visible属性会有错误。\n\t\t\t-Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。\n\t-PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用\u003Cem\u003E页面\u003C\u002Fem\u003E第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个\u003Cem\u003E页面\u003C\u002Fem\u003E都添加PageLoading控件。[fixed]\n\t-Grid中的回发事件(主要是LinkButtonField和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-主要是父\u003Cem\u003E页面\u003C\u002Fem\u003E加载\u003Cem\u003E一个\u003C\u002Fem\u003E比较大的css文件(~100k),则每次打开iframe\u003Cem\u003E页面\u003C\u002Fem\u003E,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口中IFrame的显示速度。[fixed]\n\t\t-在当前\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口需要~20ms,在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口需要100~300ms。通过缓存\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口实例,从而第二次\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个\u003Cem\u003E页面\u003C\u002Fem\u003E设置。[fixed]\n\t\t-\u003Cem\u003E一个\u003C\u002Fem\u003E典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。\n\t-TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed]\n\t+TabStrip中非当前Tab会延迟渲染。[fixed]\n\t\t-这会明显加快\u003Cem\u003E页面\u003C\u002Fem\u003E的渲染速度,网报中\u003Cem\u003E一个\u003C\u002Fem\u003E典型的费用审批\u003Cem\u003E页面\u003C\u002Fem\u003E可以减少200ms的渲染时间。\n\t\t-由于非当前Tab不会在\u003Cem\u003E页面\u003C\u002Fem\u003E加载时渲染,所以那些Tab中的节点在\u003Cem\u003E页面\u003C\u002Fem\u003E加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。\n\t-不能比较两个DataPicker大小的BUG。[fixed]\n\t-TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据\u003Cem\u003E页面\u003C\u002Fem\u003E空间,已修正)。[fixed]\n\t-全新的ExtAspNet.Examples(基础知识\u002F表单控件\u002F数据绑定\u002F容器布局\u002FIFrame框架)。[fixed]\n\t\n\t\n\t\n+2008-08-19 v0.4 beta6\n\t+PageManager增加两个属性(EnableInlineStyleJavascript\u002FApplyParentStyleJavascript),可以在IFrame\u003Cem\u003E页面\u003C\u002Fem\u003E中使用父\u003Cem\u003E页面\u003C\u002Fem\u003E的脚本和样式(示例在iframe\u002Fdefault.aspx和iframe\u002Fpage3.aspx)。[fixed]\n\t\t-测试发现,IFrame\u003Cem\u003E页面\u003C\u002Fem\u003E的加载速度并没有明显加快,可以先不使用此属性。\n\t-RadioButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed]\n\t+extjs的BUG,当\u003Cem\u003E页面\u003C\u002Fem\u003E中含有iframe时,Ext.onReady会被调用两次(IE6\u002FIE7)(http:\u002F\u002Fwww.extjs.net\u002Fforum\u002Fshowthread.php?t=43246)(示例在test.aspx)[fixed]\n\t\t-现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true;\n\t+需要先回发\u003Cem\u003E页面\u003C\u002Fem\u003E再\u003Cem\u003E弹出\u003C\u002Fem\u003EIFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。\n\t\t-另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.aspx\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-点击关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.aspx。[fixed]\n\t+Radiobuttonlist显示有重影(示例在radio.aspx)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed]\n\t+IFrame\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口关闭后回发父\u003Cem\u003E页面\u003C\u002Fem\u003E,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed]\n\t\t-这是\u003Cem\u003E一个\u003C\u002Fem\u003E重要的BUG,会严重影响\u003Cem\u003E页面\u003C\u002Fem\u003E的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父\u003Cem\u003E页面\u003C\u002Fem\u003E后Window中的IFrame被添加到\u003Cem\u003E页面\u003C\u002Fem\u003E,而这是不需要的。\n\t\t-现在\"\u003Cem\u003E是否\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口、窗口标题、IFrameUrl\"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx)\n\t\n\t\n\t\n+2008-08-13 v0.4 beta4\n\t-点击关闭窗口的按钮,在IE下会有JS错误。[fixed]\n\t-Window的右上角关闭图标增加提示,优化事件响应。[fixed]\t\n\t-Window的代码重构。[fixed]\t\n\t+修正\u003Cem\u003E一个\u003C\u002Fem\u003E的内存泄漏。[fixed]\n\t\t-IE7下测试,打开iframe\u002Fdefault.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E,iexplorer占内存68.368M。\n\t\t-内存存在泄漏时,点击iframe\u002Fpage3.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E8次后iexplorer占118.792M内存。\n\t\t-修正后,点击iframe\u002Fpage3.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E8次后iexplorer占76.492M内存。\n\t\t-IE窗口最小化时,IE会自动进行垃圾回收。\n\t\n\t\n\t\n+2008-08-12 v0.4 beta3\n\t-底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed]\n\t-Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"解决)。[fixed]\n\t+\u003Cem\u003E页面\u003C\u002Fem\u003E正在加载的提示尽早的显示出来。[fixed]\n\t\t-首先在执行js来完成\u003Cem\u003E页面\u003C\u002Fem\u003E渲染之前延迟5ms,以便浏览器把当前\u003Cem\u003E页面\u003C\u002Fem\u003E内容显示出来。\n\t\t-加载js脚本的script标签放置在\u003Cem\u003E页面\u003C\u002Fem\u003E的最后,放置加载js而阻塞PageLoading的显示。\n\t\n\t\n\t\n+2008-08-08 v0.4 beta2\n\t-TabStrip延时加载出错。[fixed]\n\t-Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的\u003Cem\u003E页面\u003C\u002Fem\u003E应该为.\u002FFE_ApplyEditor.aspx或~\u002FPages_ExtAspNet\u002FFE_ApplyEditor.aspx。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在\u003Cem\u003E页面\u003C\u002Fem\u003E显示后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请\u003Cem\u003E页面\u003C\u002Fem\u003E(尽量减少不必要的层次嵌套)。[fixed]\n\t-button_iframe.aspx默认会加载form.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E(Window控件的BUG)。[fixed]\n\t-Window中的保存并关闭按钮和\u003Cem\u003EAsp.net\u003C\u002Fem\u003EAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到\u003Cem\u003E页面\u003C\u002Fem\u003E的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed]\n\t\n\t\n\t\n+2008-08-05 v0.4 beta1\n\t-DropDownList去除Traditional属性,和传统的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件一样不可编辑。[fixed]\n\t-DropDownList增加SelectedText属性(去除了模拟树时通过SelectedItem.Text的多余html字符)。[fixed]\n\t-为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed]\n\t-将生成的js对象的名称简单化,这样可以减少生成的js内容,加快\u003Cem\u003E页面\u003C\u002Fem\u003E加载速度(\u003Cem\u003E一个\u003C\u002Fem\u003E典型\u003Cem\u003E页面\u003C\u002Fem\u003E的js由原来的33.0k降低为21.4k)。[fixed]\n\t+\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed]\n\t\t-因为在\u003Cem\u003E页面\u003C\u002Fem\u003E的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向\u003Cem\u003E页面\u003C\u002Fem\u003E注册了一段脚本,但是这段脚本在回发时没有注册到\u003Cem\u003E页面\u003C\u002Fem\u003E,因为js调用此脚本时报错。\n\t\t-一种解决方法是将向\u003Cem\u003E页面\u003C\u002Fem\u003E注册脚本的函数移动到if语句的外面,即每次都向\u003Cem\u003E页面\u003C\u002Fem\u003E注册此脚本。\n\t\t-另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向\u003Cem\u003E页面\u003C\u002Fem\u003E注册监视\u003Cem\u003E页面\u003C\u002Fem\u003E中表单内容改变的脚本)的属性(会在每次\u003Cem\u003E页面\u003C\u002Fem\u003E回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx\u002Fsimpleform.aspx)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次\u003Cem\u003E页面\u003C\u002Fem\u003E回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。\n\t-每个\u003Cem\u003E页面\u003C\u002Fem\u003E必须添加\u003Cem\u003E一个\u003C\u002Fem\u003EPageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed]\n\t-TextField等表单字段增加Readonly属性。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少\u003Cem\u003E页面\u003C\u002Fem\u003E下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过点击按钮\u003Cem\u003E弹出\u003C\u002Fem\u003EIFrame窗口,可直接关闭父\u003Cem\u003E页面\u003C\u002Fem\u003E,也可在关闭后刷新或回发父\u003Cem\u003E页面\u003C\u002Fem\u003E。(default.aspx\u002Fpage2.aspx\u002Fsimpleform.aspx)\n\t\t\t-虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加\u003Cem\u003E一个\u003C\u002Fem\u003E属性(Target=\"_parent\"),就完成了两种框架的转换,是不是很酷。\n\t\t\t-显然,控件本身封装了大量的代码,简单来看现在有三个\u003Cem\u003E页面\u003C\u002Fem\u003E(default.aspx(A)\u002Fpage2.aspx(B)\u002Fsimpleform.aspx(C)),其中A包含B\u003Cem\u003E页面\u003C\u002Fem\u003E,当你在B中打开包含有\u003Cem\u003E页面\u003C\u002Fem\u003EC的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个\u003Cem\u003E页面\u003C\u002Fem\u003E,当你从C中返回需要回发\u003Cem\u003E页面\u003C\u002Fem\u003EB时,却发现取得的是A\u003Cem\u003E页面\u003C\u002Fem\u003E,因为我们窗口是在A\u003Cem\u003E页面\u003C\u002Fem\u003E中创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,Grid中\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。(default.aspx\u002Fpage3.aspx\u002Fsimpleform.aspx)\t\n\t\t+示例3,TriggerBox\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。(default.aspx\u002Ftriggerbox.aspx\u002Fsimpleform.aspx)\t\n\t\t\t-在整个\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口或者在当前\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口,仅仅设置Window的Target属性即可。\n\t\t-示例4,\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口中的\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。\n\t-对整个Examples更新测试。[fixed]\n\t\n\t\n\t\n+2008-07-31 v0.3 beta12\n\t-IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab显示为空的BUG。[fixed]\n\t-对TabStrip\u002FPanel\u002FWindow中的IFrame重新设计,如果设置IFrameUrl=\"#\"或者\"about:blank\",则不渲染iframe到\u003Cem\u003E页面\u003C\u002Fem\u003E节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed]\n\t-如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed]\n\t-Tree控件,点击\u003Cem\u003E一个\u003C\u002Fem\u003E节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx\u002Fsimpleform.aspx)。[fixed]\n\t\t-内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个\u003Cem\u003E页面\u003C\u002Fem\u003EUI,再关闭窗口。\n\t-参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed]\n\t-Firefox下,如果\u003Cem\u003E页面\u003C\u002Fem\u003E太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed]\n\t+IFrame内的\u003Cem\u003E页面\u003C\u002Fem\u003E宽度和高度会自动设置(是不是还在为1px\u002F2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx\u002Fsimpleform.aspx\u002Fsimpleform2.aspx)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个\u003Cem\u003E页面\u003C\u002Fem\u003E的宽度和高度的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,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果\u003Cem\u003E一个\u003C\u002Fem\u003E节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起\u003Cem\u003E页面\u003C\u002Fem\u003E死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed]\n\t-去掉DropDownList控件的Text属性(强制性),可以通过设置SelectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed]\n\t-过滤提示消息中的换行符(转换为),否则提示信息可能导致\u003Cem\u003E页面\u003C\u002Fem\u003E渲染错误 [feedback:dcding]。[fixed]\n\t\n\t\n\t\n+2008-07-23 v0.3 beta10\n\t+完善Tree控件。[fixed]\n\t\t-如何将数据库中的数据绑定到Tree(示例在tree2_bind_database.aspx)。\n\t\t-ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。\n\t\t-更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。\n\t-Grid的GridColumn的ID改名成ColumnId,否则同\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed]\n\t-Grid所有类型的列增加DataTooltipField\u002FDataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确解析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能解决##差旅交通费在IE和Firefox下显示的不同效果。\n\t\t-但是通过用来代替,从而实现FF和IE下样式的统一。\n\t\t-刚看到old9的解决方案:把“差旅交通费”改成“差旅交通费”,在IE下和FF下的都不换行,:-)\n\t-LinkButton增加OnClick事件 [feedback:huihuang]。[fixed]\n\t-Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed]\n\t+增加树控件(Tree)(示例在tree2.aspx)。[fixed]\n\t\t-可以在回发时维持树的状态(选中行,折叠\u002F展开,CheckBox)。\n\t\t-可以通过Inline的方式添加树节点,也可以绑定到XmlDocument\u002FXmlDataSource\u002FSiteMap。\n\t\t-点击树节点可以链接到\u003Cem\u003E页面\u003C\u002Fem\u003E,也可以引发PostBack事件,可以添加自定义脚本。\n\t\n\t\n\t\n+2008-07-16 v0.3 beta8\n\t+ContentPanel中放置ExtAspNet控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。\n\t\t-现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。\n\t+IE6下,在应用\u003Cem\u003EAsp.Net\u003C\u002Fem\u003EAjax后,Form中字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。\n\t\t-最后发现IE6下应用\u003Cem\u003EAsp.Net\u003C\u002Fem\u003EAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正\u003Cem\u003E页面\u003C\u002Fem\u003E中所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master \u003Cem\u003E页面\u003C\u002Fem\u003E。\n\t+集成的AspNetAjax有\u003Cem\u003E一个\u003C\u002Fem\u003E很大的BUG,只要你在\u003Cem\u003E页面\u003C\u002Fem\u003E上进行过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;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。\n\t\n\t\n\t\n+2008-07-14 v0.3 beta6\n\t-增加FlashObject控件。[fixed]\n\t-PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed]\n\t-Accordion选中样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+Grid增加EnableDelayRender属性(默认false),可以加快\u003Cem\u003E页面\u003C\u002Fem\u003E的渲染速度(\u003Cem\u003E一个\u003C\u002Fem\u003E典型的20个记录的\u003Cem\u003E页面\u003C\u002Fem\u003E,可提前0.7s-1s显示出来)。[fixed]\n\t\t-因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置\"EnableDelayRender=false\"。\n\t-改变Grid中静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击\u003Cem\u003E一个\u003C\u002Fem\u003ETab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed]\n\t\n\t\n\t\n+2008-07-12 v0.3 beta5\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E菜单Toolbar的分割符和背景不相融合。[fixed]\n\t-表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed]\n\t\t-如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而\u003Cem\u003E一个\u003C\u002Fem\u003ENumberBox和TextBox比较大小需要指定CompareType。\n\t+如果在编辑\u003Cem\u003E页面\u003C\u002Fem\u003E使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx\u002Fajax_editor.aspx)。[fixed]\n\t\t-这是由于ajax后执行的javascript中不能有return false语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed]\n\t\t-在\u003Cem\u003E页面\u003C\u002Fem\u003E添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-\u003Cem\u003E弹出\u003C\u002Fem\u003EWindow默认显示的错误\u003Cem\u003E页面\u003C\u002Fem\u003E,解决方法在当前目录添加\u003Cem\u003E一个\u003C\u002Fem\u003E空的html\u003Cem\u003E页面\u003C\u002Fem\u003E,然后把Window控件的IFrameUrl指向这个\u003Cem\u003E页面\u003C\u002Fem\u003E而不是\"#\"。[fixed]\n\t+\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口中的\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例中alert\\alert_1.aspx和alert\\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-点击提交按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed]\n\t+增加Menu、MenuText、MenuSeparator、MenuButton、MenuHyperLink控件,\u003Cem\u003E用于\u003C\u002Fem\u003E按钮的下拉菜单(示例在button_menu.aspx)。[fixed]\n\t-增加SplitButton控件。[fixed]\n\t\n\t\n\t\n+2008-07-09 v0.3 beta4\n\t-DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed]\n\t+Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed]\n\t\t-增加ControlToCompare\u002FValueToCompare\u002FCompareOperator\u002FCompareMessage四个属性,示例在form_compare.aspx。\n\t+TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed]\n\t+表单字段Enable=false时显示颜色太浅 [feedback:jima]。[fixed]\n\t\t-覆盖缺省样式的.x-item-disabled,设置不透明。\n\t\n\t\n\t\n+2008-07-08 v0.3 beta3\n\t-Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed]\n\t+增加HiddenField控件。[fixed]\n\t\t-其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle=\"display:none;\"即可。\n\t+TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed]\n\t\t-最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。\n\t-模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed]\n\t\t-增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加UpdatePanelConnector控件,支持在布局构建的\u003Cem\u003E页面\u003C\u002Fem\u003E使用\u003Cem\u003EAsp.net\u003C\u002Fem\u003E Ajax。[fixed]\n\t\t-使用UpdatePanelConnector有\u003Cem\u003E一个\u003C\u002Fem\u003E要求:ContentTemplate下只能有\u003Cem\u003E一个\u003C\u002Fem\u003E子节点,比如box:Panel。\n\t\t-示例在ajax3.aspx\u002Fcontent_page4.aspx。\n\t\t-示例content_page3.aspx中,点击“Ajax查询”按钮和关闭\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口(点击右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为false。[fixed]\n\t\t-使用GroupPanel的地方需要手工添加AutoHeight=\"true\"属性。\n\t+增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t-也可以在ContentPanel中放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed]\n\t+支持\u003Cem\u003EAsp.net\u003C\u002Fem\u003E ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx\u002Fcontent_ajax2.aspx中。\n\t\t-对于使用布局构建的\u003Cem\u003E页面\u003C\u002Fem\u003E(比如content_page1.aspx)还不能使用\u003Cem\u003EAsp.net\u003C\u002Fem\u003E ajax,因为\u003Cem\u003E页面\u003C\u002Fem\u003E是整体渲染的,先放弃。\n\t\n\t\n\t\n+2008-07-02 v0.2 beta12\n\t+关闭前提示当前\u003Cem\u003E页面\u003C\u002Fem\u003E已经被修改(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-支持Iframe内按钮和window右上角关闭按钮。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003ECloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe中做法一致)。\n\t+iframe中的alert\u002Fconfirm要覆盖整个父\u003Cem\u003E页面\u003C\u002Fem\u003E,而不仅仅是iframe\u003Cem\u003E页面\u003C\u002Fem\u003E。[fixed]\n\t\t-在Firefox下还有问题。[fix pending]\n\t+排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed]\n\t\t-可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。\n\t\t-可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.aspx)。[fixed]\n\t-TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed]\n\t-可以在ContentPanel中放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed]\n\t-Grid的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加\u003Cem\u003E删除\u003C\u002Fem\u003E记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed]\n\t-如果表单验证不通过,则需要\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框提示(第\u003Cem\u003E一个\u003C\u002Fem\u003E没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+\u003Cem\u003E页面\u003C\u002Fem\u003E中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed]\n\t-增加静态类Confirm。[fixed]\n\t\n\t\n\t\n+2008-06-27 v0.2 beta10\n\t+Grid完善。[fixed]\n\t\t-CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。\n\t\t-Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(\u003Cem\u003E一个\u003C\u002Fem\u003EGrid只能有\u003Cem\u003E一个\u003C\u002Fem\u003EColumn指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。\n\t\t-切换分页时清空选中的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。\n\t-DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体中的","createTime":"2010-09-29 14:37:08","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fwode2600\u002F2726130\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-2-2726130-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fsuper_zhaowenke\u002F2190657","title":"ExtAspNet v2.2.1 (2009-4-1) 值得一看","desc":"ExtAspNet v2.2.1\n\t\nExtAspNet是一组专业的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件库,拥有原生的AJAX支持和丰富的UI效果,\n目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。\n\n支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+\n\n注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。\n\n示例: http:\u002F\u002Fext\u003Cem\u003Easp.net\u003C\u002Fem\u003E\u002F\n开源: http:\u002F\u002Fextaspnet.codeplex.com\u002F\n博客: http:\u002F\u002Fsanshi.cnblogs.com\u002F\n邮箱: sanshi.ustc@gmail.com\n\n\n发布历史:\n\n+2010-03-28 v2.2.1\n\t+为TabStrip的GetAddTabReference函数增加重载方法,以便指定Tab的图标(feedback:mmdcup)。 \n\t\t-修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。\n\t-修正basic\u002Fhello.aspx示例在单独浏览器打开后,不能\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框的BUG。\n\t-隐藏示例首页最外层RegionPanel的边框ShowBorder=\"false\"。\n\t+集成Extjs最新版本v3.1.1。\n\t\t-增加\u003Cem\u003E一个\u003C\u002Fem\u003E新的Theme - Access。\n\t\t-修正了Firefox下Zoom In\u002FOut时\u003Cem\u003E页面\u003C\u002Fem\u003E消失的BUG。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003EPanel的EnableLightBackgroundColor属性,同时EnableBackgroundColor只支持Blue和Gray两种Theme。\n\n\n\n+2010-01-31 v2.2.0\n\t-使得\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的控件ImageButton具有和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的Button控件类似的行为(Ajax提交)(feedback:261629698)。\n\t+TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加\u003Cem\u003E删除\u003C\u002Fem\u003ETab。\n\t\t-增加示例tabstrip\u002Ftabstrip_addtab.aspx。\n\t-重构了示例网站的架构,目前只有一层IFrame结构。\n\t-为TabStrip增加EnableTabCloseMenu属性,\u003Cem\u003E是否\u003C\u002Fem\u003E启用右键菜单,可用来关闭当前Tab和所有其他Tab。\n\t-为NumberBox增加DecimalPrecision属性,用来控制小数点后的位数(需要设置NoDecimal=\"false\")(feedback:zqmars)。\n\t-Window控件更新。\n\t\t-关闭按钮默认直接关闭,不会\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E确认\u003C\u002Fem\u003E对话框。\n\t\t-GetConfirmFormModifiedHideReference的函数中的ConfirmFormModified简化为Confirm,所以此函数更名为GetConfirmHideReference。\n\t\t-增加两个属性EnableConfirmOnClose(默认false),CloseAction(Hide, HideRefresh, HidePostBack)。\n\t\t-修正EnableMaximize属性不能使Window最大化的BUG,修正了双击标题栏不能最大化的BUG。\n\t-\u003Cem\u003E删除\u003C\u002Fem\u003EButton控件的SystemIcon属性,比如以前这样定义SystemIcon=\"Close\",现在需要这样定义Icon=\"SystemClose\"。\n\t-WindowPosition默认居中,而不是黄金分割位置。\n\t+Button, Window等控件\u003Cem\u003E弹出\u003C\u002Fem\u003E位置属性的变化。\n\t\t-Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target=\"_self\" -\u003E Target=\"Self\", Target=\"_parent\" -\u003E Target=\"Parent\"。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField的ConfirmTarget属性由字符串变为枚举类型,可以取三个枚举值Self, Parent, Top。\n\t\t-Confirm.GetShowReference的最后\u003Cem\u003E一个\u003C\u002Fem\u003E参数target变为枚举类型。\n\t\t-Alert.GetShowReference中的showInParent参数也变为Target枚举类型。\n\t\t-MenuButton, LinkButton, Button, LinkButtonField增加ValidateTarget用来控制表单验证失败时提示对话框的显示位置。\n\n\n\n+2010-01-06 v2.1.9\n\t-集成Extjs最新版本v3.1.0。\n\t-修正灰色皮肤的CSS问题。\n\t-修正Grid的列名中不能包含中文字符的BUG(feedback:davidwen)。\n\t-为Web.config和PageManager增加属性AjaxTimeout(单位秒,默认30秒)。\n\t-修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。\n\t-Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第\u003Cem\u003E一个\u003C\u002Fem\u003E按钮设置CssStyle=\"float:left;\"属性。\n\t-修正了\u003Cem\u003E弹出\u003C\u002Fem\u003E菜单的位置在Firefox下不正确的BUG(feedback:eroach)。\n\t-为TriggerBox和TwinTriggerBox增加EnableEdit属性。\n\t-使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性)。\n\t-使用Hidden控制Window控件的显示隐藏,Popup已经标记为Obsolete属性。\n\t-Window的实例方法GetCloseReference等以及ActiveWindow的静态方法GetCloseReference等,其中的Close全部改为Hide。\n\t-增加TabStrip中Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。\n\t-修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。\n\t-修正HtmlEditor不能编辑的BUG(feedback:TheBox)。\n\t-修正IE下有时会出现空白\u003Cem\u003E页面\u003C\u002Fem\u003E的情况(feedback:olivia919)。\n\t\n\t\n\n+2009-12-06 v2.1.8\n\t-修正了使用IFrame的Window关闭后不能再次打开的BUG(feedback:alexa99)。\n\t-修正了IE下Grid中的\u003Cem\u003E一个\u003C\u002Fem\u003EJS问题(feedback:lqm4108)。\n\t-修正Alert消息中引号未编码导致的JS错误(feedback:sun1299shine)。\n\t+集成extjs3.0.3。\n\t\t-修正\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框的宽度计算错误(会保持最小的状态)。\n\t\t-增加新的皮肤Gray。\n\t-为示例工程添加改变语言和皮肤的下拉列表。\n\t-为PageContext增加静态函数Refresh,在切换语言和皮肤时使用。\t\n\n\n\n+2009-12-01 v2.1.7\n\t-增加示例(iframe\u002Fparent_postback_run3.aspx),如何通过简单的Javascript代码回发父\u003Cem\u003E页面\u003C\u002Fem\u003E(feedback:eroach)。\n\t-修正一些书写错误(feedback:bmck)。\n\t-从Region控件中\u003Cem\u003E删除\u003C\u002Fem\u003ESplitColor属性,增加CollapseMode, EnableSplitTip, SplitTip, CollapsibleSplitTip属性(feedback:bmck)。\n\t-BorderPanel更名为RegionPanel。\n\t-DropDownList拥有MarkInvalid方法(feedback:sun1299shine)。\n\t-增加中国的省市县三级联动示例(data\u002Fshengshixian.aspx)(feedback:Blues T)。\n\t-修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是\u003Cem\u003E一个\u003C\u002Fem\u003E在v2.1.6引入的问题(feedback:eroach)。\n\t-修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的点击事件(feedback:yymaoji)。\n\t\n\t\n\t\n+2009-11-26 v2.1.6\n\t+修正动态创建Grid列的BUG(feedback:gxpan)。\n\t\t-增加示例(data\u002Fgrid_dynamic_columns.aspx)。\n\t-修正Form不能自适应浏览器大小的改变(feedback:kaywood)(WorkItem#6309)。\n\t-增加重载方法Alert.Show(message, title, icon)(feedback:TheBox)(WorkItem#6353)。\n\t-为容器控件(比如Panel,Region,Tab等)增加AJAX属性IFrameUrl(feedback:BluesT)。\n\t-重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。\n\t\t\t\n\n\n+2009-11-21 v2.1.5\n\t+Tree优化。\n\t\t-修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。\n\t\t-GetNodeById更名为FindNode,保持和FindControl一致命名。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003ECheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003EExpandedNodeIDArray属性,增加GetExpandedNodes和GetExpandedNodeIDs函数。\n\t\t-增加示例(data\u002Ftree_select_run.aspx),如何选中当前节点的所有子节点(feedback:wjl_wjl520)。\n\t\t+TreeNode的属性NodeId被重命名为NodeID,这是ExtAspNet中的\u003Cem\u003E一个\u003C\u002Fem\u003E命名约定。\n\t\t\t-同时更名的还有GridColumn的ColumnId-\u003EColumnID,GetColumnId-\u003EGetColumnID。\n\t\t\t-Grid1.Columns.FindColumnById函数被Grid1.FindColumn所替代。\n\t\t-为TreeCheckEventArgs,TreeExpandEventArgs,TreeCommandEventArgs增加Node属性。\n\t-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。\n\t-增加示例(other\u002Fcustom_postback.aspx)(feedback:thebox)。\n\t\t-如何自定义Javascript脚本和C#处理函数来响应键盘事件。\n\t-为Tree增加AutoLeafIdentification属性。\n\t\t-增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。\n\t\n\t\n\n+2009-11-17 v2.1.4\n\t-修正Window的关闭按钮提示信息一直是中文的BUG(feedback:thebox)。\n\t-部分ExtAspNet控件的设计时支持(会在后续版本中逐步完善)。\n\t-v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时\u003Cem\u003E是否\u003C\u002Fem\u003E保持状态没有关系。\n\t-修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-\u003EAutoPostBack, Event PostBack-\u003EEnablePostBack)。\n\t-为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性(feedback:dk3214)。\n\t+为表单字段增加RequiredMessage,MaxLengthMessage,MinLengthMessage属性,\u003Cem\u003E用于\u003C\u002Fem\u003E指定验证失败时提示信息。\n\t\t-为空则使用默认的提示信息,默认的提示信息支持多语言,建议一般情况下使用默认信息。\n\t+为表单字段增加MarkInvalid和GetMarkInvalidReference函数(feedback:sun1299shine)。\n\t\t-增加示例:form\u002Fform_validate.aspx\n\t\n\t\n\n+2009-10-19 v2.1.3\n\t+增加支持在AJAX时改变的控件属性列表(\u002Fajax.aspx)。\n\t\t-ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到\u003Cem\u003E页面\u003C\u002Fem\u003E中,但并不是所有的控件属性都支持AJAX改变。\n\t-加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)。\n\t-在AJAX回发后确保\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的按钮控件仍然具有AJAX的特性。\n\t-更新\u002Fbasic\u002Flogin.aspx示例,使用验证图片(feedback:kedee)。\n\t-为Grid增加AutoPostBack属性和RowClick事件,示例在\u002Fdata\u002Fgrid_autopostback.aspx(feedback:chenguizhu2006)。\n\t-为所有的表单字段增加AJAX属性ReadOnly(feedback:skydb)。\n\t-Grid中TemplateField生成到\u003Cem\u003E页面\u003C\u002Fem\u003E中控件具有唯一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属性,则IconUrl优先于Icon。\n\t\t-所有Icon的列表在icon.aspx。\n\t-为Button,MenuItem(MenuButton,MenuHyperLink),AccordionLink,TreeNode,Image(如果ImageUrl为空,则取Icon的值)增加Icon属性。\n\t\n\t\n\n+2009-09-15 v2.1.1\n\t-修正不能动态修改AccordionPane属性Items的BUG。\n\t+为Button, MenuButton, LinkButton, LinkButtonField增加ConfirmTarget。\n\t\t-如果需要在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E确认\u003C\u002Fem\u003E对话框,需要设置ConfirmTarget=\"_parent\"(类似Window控件的Target=\"_parent\")。\n\t+为ExtAspNet.Alert.Show增加点击确定的JavaScript回调函数。\n\t\t-\u003Cem\u003E一个\u003C\u002Fem\u003E典型应用,在Window控件中打开新\u003Cem\u003E页面\u003C\u002Fem\u003E,如果传递的参数不正确,则首先提示参数不对然后关闭此\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。\n\t\t-ExtAspNet.Alert.Show(\"参数错误!\", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());\n\t+TreeNode的前面的多选框可以自动回发了。\n\t\t-为TreeNode增加AutoPostBack属性,增加事件数据类TreeCheckEventArgs,为Tree增加事件NodeCheck。\n\t\t-示例在:http:\u002F\u002Fext\u003Cem\u003Easp.net\u003C\u002Fem\u003E\u002Fdata\u002Ftree_run.aspx\n\t-Grid增加GetNoSelectionAlertInParentReference函数,用来表示没有选中任何一项时在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框的JS代码。\n\t-修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。\n\t-添加定时器控件Timer,用来定时发起AJAX请求。\n\t\n\t\n\n+2009-09-06 v2.1.0\n\t-Button的Pressed属性值能够正确的反映客户端的变化。\n\t-优化Tree控件的AJAX实现。\n\t+为\u003Cem\u003E页面\u003C\u002Fem\u003E的Form添加autocomplete=\"off\"属性。\n\t\t-参考http:\u002F\u002Fwww.cnblogs.com\u002Fsanshi\u002Farchive\u002F2009\u002F09\u002F04\u002F1560146.html#1635830\n\t+添加对extjs3.0中所有语言的支持。\n\t\t-ExtAspNet扩展的多语言包在js\\languages\\extaspnet目录下,目前只有en,zh_CN,zh_TW三种实现\n\t\t-你可以向其中添加自己的语言版本,并执行js\\languages下的pack.bat打包,最后编译工程。\n\t\n\t\n\t\n+2009-09-01 v2.0.9\n\t-为ExtAspNet.Alert添加两个静态方法ShowInParent和GetShowInParentReference,\u003Cem\u003E用于\u003C\u002Fem\u003E在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。\n\t+在aspx\u003Cem\u003E页面\u003C\u002Fem\u003E中必须显示的声明控件的集合属性(比如Tabs(TabStrip), Items(PanelBase), Nodes(TreeNode))。\n\t\t-这将会影响所有的aspx\u003Cem\u003E页面\u003C\u002Fem\u003E,所以要特别关注。\n\t-重命名AccordionPanel为AccordionPane (这也是在\u003Cem\u003EAsp.net\u003C\u002Fem\u003E AJAX中使用的名称).\n\t+所有的面板默认有两个集合属性(Toolbars和Items).\n\t\t-尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置(此时Items是只读的).\n\t\t-这将会影响所有的aspx\u003Cem\u003E页面\u003C\u002Fem\u003E,一定要将工具条(Toolbars)和Items区分开来。\n\t-祝你生日快乐 - 小师妹妹。\n\n\n\n+2009-08-29 v2.0.8\n\t-ExtAspNet支持多语言(en,zh_CN,zh_TW),可以在Web.config中修改。\n\t-将所有的示例转化为英语版本。\n\t-修正Tree控件的\u003Cem\u003E一个\u003C\u002Fem\u003EBUG(定义Mappings属性时)。\n\t+PageManager.Instance应该存在于HttpContext.Current,而不是\u003Cem\u003E一个\u003C\u002Fem\u003E全局变量。\n\t -这个BUG导致\u003Cem\u003EAsp.net\u003C\u002Fem\u003E compatibility中的示例无法完成,现在已经修正。\n\t+去除PageManager中方法AddAjaxAspnetControls,增加属性AjaxAspnetControls。\n\t -这个属性和Button得ValidateForms属性类似,可以查看\u003Cem\u003EAsp.net\u003C\u002Fem\u003E compatibility中的示例。\n\t\n\t\n\n+2009-08-25 v2.0.7\n -为按钮增加DisableControlBeforePostBack属性 - 回发之前\u003Cem\u003E是否\u003C\u002Fem\u003E禁用按钮,防止重复提交 - 默认为true。\n -Grid的Values属性访问限制由internal改为public,这就意味这可以自由改变Grid中每个单元格的值了。\n -增加示例-如何将Grid控件导出为Excel(data\\grid_excel_run.aspx)(feedback:503684912)。\n -如果TreeNode的属性Enabled=\"false\",则此项变灰并且不会被选中(feedback:your568)。\n -修正TreeNode的属性NavigateUrl不接受服务器端URL(以~\u002F开头)的BUG。\n -增加Accordion和Tree配合使用的示例(other\\accordion_tree_run.aspx)。\n -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。\n +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的AutoSizePanelID属性来代替。\n\t\t-这样所有需要占据全屏的Panel(不管你是Accordion,Panel,ContentPanel,Form,GroupPanel,SimpleForm,Tree还是Grid,TabStrip)都可以通过这种方式全屏。\n\t\t-简单方便,示例可以参考 default.aspx 或者 other\\accordion_tree_run.aspx。\n \n \n\n+2009-08-14 v2.0.6\n\t-动态生成菜单实例(other\\menu_dynamic_run.aspx和other\\menu_dynamic2_run.aspx)(feedback:shguo)。\n\t-优化AJAX的内部实现,每个\u003Cem\u003E页面\u003C\u002Fem\u003E保存的ViewState现在减少1\u002F3左右(重要更新)。\n\t-优化Tree节点的NodeId自动生成,减少ViewState占用。\n\t\n\n\n+2009-08-09 v2.0 beta5\n\t+ExtAspNet和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的提交按钮兼容问题(feedback:千帆)。\n\t\t-在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的按钮AJAX提交,必须设置UseSubmitBehavior=\"false\"\n\t\t--也就是说生成的input的type不能是\"submit\",而这个限制在有些情况下是不可原谅的。\n\t\t--我们做了优化,现在要使\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的按钮能够AJAX提交,你不需要做任何设置(PageManager的属性EnableAjax为true即可,这是默认属性)。\n\t+PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件了。\n\t\t-在Page_Load中设置了哪些需要在AJAX中更新的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件会在回发时保持状态,可以通过RemoveAjaxAspnetControls来去除不需要更新的控件。\n\t\t-示例在aspnet\\fckeditor_run.aspx和aspnet\\aspnet_run.aspx。\n\t\t-FCKEditor和上传控件兼容。示例在aspnet\\fileupload_run.aspx。\n\t-修正ToolbarText的文本在AJAX下更新的BUG。\n\t-Button的Pressed属性在AJAX可更新(feedback:mgzhenhong)。\n\t-更新所有示例。在IE7.0,IE8.0,Firefox3.5,Chrome2.0下测试通过。\n\t\n\n\n+2009-08-02 v2.0 beta4\n\t+和\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E的Forms Authentication兼容[feedback:mgzhenhong]。\n\t\t-采用和\u003Cem\u003EAsp.Net\u003C\u002Fem\u003E Ajax类似的处理方式,需要在配置文件Web.config增加\u003Cem\u003E一个\u003C\u002Fem\u003EhttpModules。\n\t\t-现在支持Response.Redirect,你可以选择Response.Redirect或者ExtAspNet.PageContext.Redirect重定向\u003Cem\u003E页面\u003C\u002Fem\u003E,两者效果一样。\n\t\t-支持FormsAuthentication.RedirectFromLoginPage(accountID, false);这样的方法。\n\t-Button增加Type属性(button,reset,submit)[feedback:mgzhenhong]。\n\t-修正Alert.Show方法不能指定文本前图片的BUG[feedback:xmq&mgzhenhong]。\n\t-修正IE下某些\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口的IFrame第一次不能加载的BUG。\n\t-增加Menu和Accordion的示例。\n\t-修正Window控件的IconUrl有时不显示(Target=\"_parent\")的BUG[feedback:xmq&mgzhenhong]。\n\t\n\n\n+2009-07-22 v2.0 beta3\n\t-兼容FCKEditor。\n\t-在IE8.0,Firefox3.5下测试通过。以后ExtAspNet将不会对IE6.0提供支持。\n\t\n\n\n+2009-07-13 v2.0 beta2\n\t-集成extjs最新版本v3.0。\n\t+兼容IE6.0-7.0-8.0。\n\t\t-这应该是Extjs3.0的\u003Cem\u003E一个\u003C\u002Fem\u003EBUG,在IE6.0-7.0下面设置Ext.QuickTips.init();会导致button的click事件无法响应(IE8下无此问题)。\n\t\t-目前先禁用IE6.0-7.0的QuickTips。\n\t-优化底层JavaScript。\n\t\n\t\n\t\n+2009-07-05 v2.0 beta1\n\t-更新extjs库到最新版本v3.0 RC2; 目前只有\u003Cem\u003E一个\u003C\u002Fem\u003E缺省皮肤(Theme)。\n\t-使用YUI Compressor压缩JavaScript和CSS文件。\n\t-Release版本每个\u003Cem\u003E页面\u003C\u002Fem\u003E只包含\u003Cem\u003E一个\u003C\u002Fem\u003EJavaScript文件(语言文件除外)和\u003Cem\u003E一个\u003C\u002Fem\u003ECSS文件。\n\t-ExtAspNet自身的CSS会紧挨着\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Ctitle\u003E标签引入,这样在\u003Chead\u003E中自定义的样式可以覆盖ExtAspNet缺省样式。\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 button { 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中的EnableIFrame==false,则点击关闭按钮时报JS错误。[fixed]\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E包含FileUpload控件,需要点击按钮回发并上传文件,则不能采用原生AJAX方式。(参见示例aspnet\u002Ffileupload.aspx)[fixed]\n\t-HtmlEditor显示隐藏工具栏按钮不起作用,HtmlEditor目前不支持Enabled和Readonly两个属性。[fixed]\n\t\n\t\n\n+2009-03-03 v1.3.0\n\t-如果\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口(Ext-Window)含有\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件FileUpload,则此\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口在关闭时出现JS错误(http:\u002F\u002Fextjs.com\u002Fforum\u002Fshowthread.php?t=8129)[feedback:xlli]。[fixed]\n\t-如果\u003Cem\u003E页面\u003C\u002Fem\u003E中存在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件(TextBox),则第二次提交表单就会报错(视图状态不对,其实时没有更新EventValidation隐藏字段导致的问题)。[fixed]\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E上放置ExtAspNet-Button和\u003Cem\u003EASP.NET\u003C\u002Fem\u003E-Button,则点击ExtAspNet-Button时激发的是\u003Cem\u003EASP.NET\u003C\u002Fem\u003E-Button的事件,这个BUG和Extjs2.2.1中Ext.Ajax.serializeForm的实现有关。[fixed]\n\t-ExtAspNet内部包含HtmlAgilityPack和Nii.JSON两个开源的第三方类库。[added]\n\t+如果以前你听过不要在ExtAspNet工程中使用\u003Cem\u003EASP.NET\u003C\u002Fem\u003E标准控件的忠告,那么从v1.3.0版本开始,你可以忘掉这个说法,现在ExtAspNet控件和\u003Cem\u003EASP.NET\u003C\u002Fem\u003E标准控件和平共处了。[fixed]\n\t\t-如果\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003EASP.NET\u003C\u002Fem\u003E按钮控件要使用ExtAspNet的原生AJAX,只需要设置属性 UseSubmitBehavior=\"false\" 即可。\n\t\t-如果要在一次ExtAspNet的原生AJAX回发时更新\u003Cem\u003EASP.NET\u003C\u002Fem\u003E控件的值,只需要调用PageManager的公共方法AddAjaxUpdateControl即可(示例:aspnet\u002Faspnet.aspx)。\n\n\n\n+2009-02-27 v1.2 beta9\n\t-网络连接出错时的“Ajax Error”改成更加友好的提示信息“本次连接失败!可能是网络连接出错,请刷新\u003Cem\u003E页面\u003C\u002Fem\u003E重试。”。[fixed]\n\t-自动测试功能会在以后版本中逐步完善。这个版本完成测试框架,采用Extjs中JS函数进行大部分的测试,对于一些难以测试的地方借助jQuery完成。[fixed]\n\t+系统底层代码优化(主要是Javascript的封装和BUG修复)。[fixed]\n\t\t-底层使用Javascript创建\u003Cem\u003E一个\u003C\u002Fem\u003EWindow控件的代码由原来的2000字符减少为500个字符。\t\n\t\t-PageContext静态类中的GetPageStateChangedFunction改名为GetConfirmFormModifiedReference,底层代码优化。表示“获取当前\u003Cem\u003E页面\u003C\u002Fem\u003E中表单修改的\u003Cem\u003E确认\u003C\u002Fem\u003E\u003Cem\u003E提示框\u003C\u002Fem\u003E的脚本”。\n\t\t---[updated]\u003Cem\u003E删除\u003C\u002Fem\u003EPageContext中的GetConfirmFormModifiedReference,使用CurrentActiveWindow中的GetConfirmFormModifiedCloseReference\u002FGetConfirmFormModifiedCloseRefreshReference\u002FGetConfirmFormModifiedClosePostBackReference三个方法代替。\n\t\t-不会修改\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E的URL(Ext-Window中的IFrame),以前为了实现功能为每个\u003Cem\u003E弹出\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E添加box_parent_client_id查询字符串\n\t\t-去除PageManager的RegisterPageStateChangedScript属性,现在已经将这个功能实现为静态的JS方法。可以通过PageContext.GetFormModifiedConfirmReference获取此方法的客户端脚本。\n\t\t---注意:以前的项目需要在所有的ASPX\u003Cem\u003E页面\u003C\u002Fem\u003E中查找RegisterPageStateChangedScript属性,并\u003Cem\u003E删除\u003C\u002Fem\u003E,否则会运行错误!\n\t\t-A\u003Cem\u003E页面\u003C\u002Fem\u003E有Ext-Window控件\u003Cem\u003E弹出\u003C\u002Fem\u003EB\u003Cem\u003E页面\u003C\u002Fem\u003E,B\u003Cem\u003E页面\u003C\u002Fem\u003E有Ext-Window控件\u003Cem\u003E弹出\u003C\u002Fem\u003EC\u003Cem\u003E页面\u003C\u002Fem\u003E,B\u003Cem\u003E页面\u003C\u002Fem\u003E的Ext-Window控件设置Target='_parent',则\u003Cem\u003E弹出\u003C\u002Fem\u003E的Ext-Window(C\u003Cem\u003E页面\u003C\u002Fem\u003E)会覆盖整个A\u003Cem\u003E页面\u003C\u002Fem\u003E,这是正确的。\n\t\t---当时如果用户直接访问B\u003Cem\u003E页面\u003C\u002Fem\u003E,就会报JS错误,因为此时找不到B\u003Cem\u003E页面\u003C\u002Fem\u003E的父\u003Cem\u003E页面\u003C\u002Fem\u003EA了。现在的版本修正为如果找不到父\u003Cem\u003E页面\u003C\u002Fem\u003E,则就在当前\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口,这样用户直接访问B\u003Cem\u003E页面\u003C\u002Fem\u003E也不会出错了。\n\t\t-Window控件的GetIFramePageStateChangedFunction函数改名为GetConfirmFormModifiedCloseReference,表示“获取先\u003Cem\u003E确认\u003C\u002Fem\u003EIFrame的\u003Cem\u003E页面\u003C\u002Fem\u003E中表单改变,然后关闭\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口的客户端脚本”。\n\t\t---为Window控件增加如下两个方法GetConfirmFormModifiedCloseRefreshReference和GetConfirmFormModifiedClosePostBackReference,表示“先\u003Cem\u003E确认\u003C\u002Fem\u003E表单改变,然后关闭\u003Cem\u003E弹出\u003C\u002Fem\u003EExt-Window,再然后刷新父\u003Cem\u003E页面\u003C\u002Fem\u003E或回发父\u003Cem\u003E页面\u003C\u002Fem\u003E”。\n\t\t---Window控件的OnClientCloseButtonClick属性如果不设置,则默认采用GetConfirmFormModifiedCloseReference,也即是先判断表单\u003Cem\u003E是否\u003C\u002Fem\u003E更新,然后在关闭窗口。\n\t\t---现在可以很方便的为Window控件的关闭按钮添加关闭后刷新父\u003Cem\u003E页面\u003C\u002Fem\u003E或者关闭后回发父\u003Cem\u003E页面\u003C\u002Fem\u003E的行为。\n\t\t-如果\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口(Window控件)中IFrame的\u003Cem\u003E页面\u003C\u002Fem\u003E不能正常加载(网络暂时出错或\u003Cem\u003E页面\u003C\u002Fem\u003E抛出异常),则此时点击右上角的关闭按钮会报JS错误,因为此时\u003Cem\u003E页面\u003C\u002Fem\u003E尚未加载完毕。\n\t\t---此版本修正了这个BUG,即时\u003Cem\u003E页面\u003C\u002Fem\u003E不能加载完全,也能通过右上角的关闭按钮关闭\u003Cem\u003E弹出\u003C\u002Fem\u003E含IFrame的窗体。\n\t\t-Window控件的IFrameName属性是自动生成的,只读属性。(因为有可能所有的Ext-Window最终都渲染到最外层的\u003Cem\u003E页面\u003C\u002Fem\u003E,为了保证这些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的地方,需要\u003Cem\u003E删除\u003C\u002Fem\u003E第\u003Cem\u003E一个\u003C\u002Fem\u003E参数(一般是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在\u003Cem\u003E页面\u003C\u002Fem\u003E第一次加载时没有不可选择项,则回发时也不会有不可选择项的BUG。[fixed]\n\t-升级底层ExtJS类库为v2.2.1(此版本主要是Chrome的支持和部分内存泄漏问题的修正)。[fixed]\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E加载过程中的时间信息保存在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属性[feedback:jqpeng]。[fixed]\n\t-发布包中增加\u003Cem\u003E一个\u003C\u002Fem\u003EWeb.config.txt,这是\u003Cem\u003E一个\u003C\u002Fem\u003E空的Web.config文件,包含BOX基本的配置信息。[fixed]\n\t-ContentPanel的ShowHeader和ShowBorder属性默认也是true(注意更新以前的应用)。[fixed]\n\t-Row和Column布局时,修正IE下设置RowHeight=\"100%\"时显示不正确的BUG。[fixed]\n\t-AccordionLink当鼠标移上和移开时,有背景色的变化效果[feedback:huihuang]。[fixed]\n\t+TabStrip的Tab控件的EnablePostBack属性会在回发时保持(也即是说如果EnablePostBack=true,回发时没改变EnablePostBack的值,则每次切换到此Tab都会回发)。[fixed]\n\t\t-有这样\u003Cem\u003E一个\u003C\u002Fem\u003E效果,如果Tab1默认显示,Tab1的EnablePostBack=true,则\u003Cem\u003E页面\u003C\u002Fem\u003E加载完毕后会回发Tab1一次。\n\t\n\t\n\n+2008-10-20 v1.2 beta6\n\t+使用控件的站点必须建立虚拟目录,否则会报JS错误(即是脚本资源没有加载),却原来是HTTPCompress组件的问题。[fixed]\n\t\t-需要替换新的blowery.Web.HttpCompress.dll,解决方案见http:\u002F\u002Fpohee.com\u002Fit\u002Fhttp-compression-in-aspnet-20\u002F。\n\t+DropDownList优化。[fixed]\n\t\t-去除EnableFirstItem\u002FFirstItemText\u002FFirstItemValue,这个并不能带来很大的好处,反而容易让开发人员困惑。\n\t\t 现在可以方便的在后台DropDownList1.Items.Insert(0, new ExtAspNet.ListItem(\"全部\", \"-1\"));来达到同样的效果。\n\t\t+如果某项(ListItem)的Value为空字符串,则通过SelectedIndex和SelectedValue不能选中[feedback:jqpeng]。\n\t\t\t-和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E中的保持一致,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+为所有控件属性增加在VS中的智能提示。[fixed]\n\t\t-需要将ExtAspNet.XML和ExtAspNet.dll放在一起,这样引用dll时xml会被拷贝到bin目录下,提供VS的智能提示。\n\t+控件的属性如果是枚举类型,如果此属性可以不取值,则默认为None。[fixed]\n\t\t-TriggerIconType.Default -\u003E TriggerIconType.None\n\t\t-SystemIconType.Empty -\u003E SystemIconType.None\n\t\t-RegexPattern.USER_DEFINED -\u003E RegexPattern.None\n\t-表单验证属性名称变化(ValueToCompare-\u003ECompareValue,ControlToCompare-\u003ECompareControl)。[fixed]\n\t+注意:\u003Cem\u003E一个\u003C\u002Fem\u003E属性可以拥有多个值的情况。[fixed]\n\t\t-属性和CSS相关则用空格分隔(比如ColumnWidths,BodyPadding)。\n\t\t-其他的都是逗号分隔(比如ValidateForms,DataKeyNames,DataNavigateUrlFields)。\n\t+AccordionLink实现为控件。[fixed]\n\t\t-可以方便的在子\u003Cem\u003E页面\u003C\u002Fem\u003E(iframe)中通过js切换父\u003Cem\u003E页面\u003C\u002Fem\u003E中选中的菜单项(Accordion-\u003EAccordionLink)(示例在other\u002Faccordion_links_run.aspx,other\u002Faccordion_links_run_iframe_htm)[feedback:jima]。\n\t+\u003Cem\u003E确认\u003C\u002Fem\u003E:可以方便的动态添加控件,并且可以给控件添加服务器端事件(示例在form\u002Fform_dynamic_run.aspx)。[fixed]\n\t\n\t\n\t\n+2008-10-15 v1.2 beta5\n\t-验证表单字段的ValueToCompare属性,为字符串时会出错的BUG。[fixed]\n\t+优化下拉列表。[fixed]\n\t\t-验证下拉列表时,应该取ListItem的Value属性进行验证,而不是Text属性。\n\t\t-DropDownList的Items增加Insert方法(可方便的下拉列表选项添加“全部”)。\n\t\t-DropDownList不支持EmptyText属性。\n\t\t-ListItem启用EnableSelect和SimulateTreeLevel属性,这样就可以直接在前台(ASPX)中设置哪些项不可选择,以及创建模拟下拉树。\n\t\t-DropDownList增加EnableSimulateTree属性(默认为false),如果设置了DataSimulateTreeLevelField,则自动将EnableSimulateTree设置为true。\n\t\n\t\n\n+2008-09-27 v1.2 beta4\n\t+EnableLargeHeader属性对所有容器的效果一样,Accordion的属性EnableLargeHeader只会改变Accordion的标题大小,而不会对AccordionPanel起作用(示例见other\u002Faccordion_run.aspx)。[fixed]\n\t\t-Accordion去除EnableHightlight属性,AccordionPanel增加EnableHightlight属性。\n\t\t-影响以前使用Box的应用,需要将Accordion的属性去掉,然后为每个AccordionPanel增加EnableLargeHeader和EnableHightlight属性。\n\t-AccordionPanel鼠标移上去的样式调整(现在没有下面的一条白线了)。[fixed]\n\t+AccordionPanel增加Links属性,可以绑定列表数据到AccordionPanel,呈现的是链接的列表(示例在other\u002Faccordion_links_run.aspx)。[fixed]\n\t\t-原来放置在AccordionPanel中的容器,比如ContentPanel需要在外层加上\u003CItems\u003E标签。\n\t\t-适当增大AccordionPanel中链接的高度20px-\u003E22px,同时对链接的样式也做了微调。\n\t\t-通过BodyPadding控制链接列表的边距。\n\t\t-这样能大大减少ASPX中HTML代码和Javascript代码的书写,可以在后台动态添加链接,效果很赞,此需求由马季提出。\n\t\n\t\n\t\n+2008-09-25 v1.2 beta3\n\t+代码优化与设计时支持(尚需要不断完善,目前可以在ASPX页切换到“设计时”,方便属性的更改和事件处理函数的添加)。[fixed]\n\t\t-Panel\u002FGroupPanel\u002FContentPanel\u002FTree\u002FHiddenField\u002FPageLoading\n\t\t-TabStrip\u002FToolbar\n\t-TabStrip去除Plain属性,增加EnableTitleBackgroundColor(默认为true)。[fixed]\n\t-向Form中动态添加控件的BUG,现在form\u002Fform_dynamic_run.aspx示例已经能正确运行。[fixed]\n\t+大部分容器的子控件集合更正为Items(以前有些是Rows)。[fixed]\n\t\t-影响的控件包括Toolbar\u002FAccordion\u002FAccordionPanel\u002FGroupPanel\u002FPanel\u002FSimpleForm\u002FWindow等。\n\t\t-保留Form的Rows(FormRowCollection)属性和Grid的Rows属性(GridRowCollection)。\n\t\t-保留TabStrip的Tabs(TabCollection)属性。\n\t\t-保留PageLayout\u002FBorderLayout的Regions(RegionCollection)属性。\n\t-预祝今晚神七发射成功。\n\t\n\t\n\t\n+2008-09-22 v1.2 beta2\n\t+Grid选中项(SelectedRowIndexArray)在ajax回发过程中存在BUG [feedback:xmzhu]。[fixed]\n\t\t-表现为对Grid进行多次\u003Cem\u003E删除\u003C\u002Fem\u003E添加操作后,SelectedRowIndexArray选中项中会存在当前不存在的行序号,导致服务器端遍历选中项时数组越界。所有使用box控件的应用程序都受到此BUG的影响,需尽快更新到新版本。\n\t+代码优化与设计时支持(示例中表单控件都已支持设计)。[fixed]\n\t\t-PageManager\u002FSimpleForm\u002FButton\u002FHyperLink\u002FLabel\u002FImage\u002FLinkButton\u002FTextBox\n\t\t-TriggerBox\u002FTwinTriggerBox\u002FWindow\u002FTextArea\u002FHtmlEditor\u002FDatePicker\u002FNumberBox\n\t\t-CheckBox\u002FRadioButton\u002FRadioButtonList\u002FDropDownList\n\t\t-Grid\n\n\n\n+2008-09-19 v1.2 beta1\n\t-Image\u002FLinkButton\u002FHyperLink增加一些Ajax可更新属性。[fixed]\n\t+隐藏的方式由HideMode属性控制Visibility\u002FOffsets\u002FDisplay。[fixed]\n\t\t-修正Form\u002FSimpleForm中隐藏\u003Cem\u003E一个\u003C\u002Fem\u003E表单字段(Hidden=false)会占据\u003Cem\u003E页面\u003C\u002Fem\u003E空间的BUG。\n\t-ToolbarText\u002FToolbarFill\u002FToolbarSeparator在ASPX中设置Hidden=true不起作用的BUG [feedback:jbzhang]。[fixed]\n\t-Button去除MarginRight属性(可以通过CssStyle=\"margin-right:5px;\"达到相同的效果)[fixed]\n\t\n\t\n\t\n+2008-09-09 v1.1\n\t+Toolbar去除IsPageMenu属性,在网报中可以用自定义样式实现,而不应该写在控件中。[fixed]\n\t\t-网报:CssClass=\"toolbar-pagemenu\" CssStyle=\"border:0px;\",同时定义样式:.toolbar-pagemenu{ background: rgb(208, 222, 240) url(..\u002Fimages\u002Fpagemenu_toolbar_background.gif) repeat-x left top;}。\n\t-Region去除默认的Layout=Fit,如果希望Region使用Fit\u002FAnchor\u002FColumn\u002FRow等布局的话,需要手工指定。[fixed]\n\t-ToolbarSeparator\u002FToolbarFill在Ajax更新Hidden属性的BUG。[fixed]\n\t+布局整理。[fixed]\n\t\t-新增Column\u002FAbsolute\u002FRow三种布局,加上以前的Container\u002FFit\u002FAnchor\u002FAccordion\u002FBorder\u002FForm六种布局,总共有9中布局可供使用。\n\t\t-其中一些控件默认使用一种布局:SimpleForm(Form)\u002FForm(Form)\u002FPanel-GroupPanel(Container)\u002FAccordion(Accordion)\u002FPageLayout(Border)\u002FBorderLayout(Border)\u002FTabStrip(Card),所有布局控件默认的布局是Container。\n\t\t-经常用到的布局控件:SimpleForm\u002FForm\u002FAccordion\u002FTabStrip\u002FBorderLayout,经常用到的布局:Fit\u002FRow\u002FAnchor\n\t\n\t\n\t\n+2008-09-08 v1.1 beta7\n\t-MenuButton\u002FMenuHyperLink增加HideOnClick属性,如果\u003Cem\u003E一个\u003C\u002Fem\u003E菜单项的作用仅仅为了\u003Cem\u003E弹出\u003C\u002Fem\u003E下级菜单,点击没反应,则可以这样设置HideOnClick=\"false\" CssStyle=\"cursor:default;\" [feedback:huayu]。[fixed]\n\t-MenuButton\u002FMenuHyperLink\u002FMenuSeparator\u002FMenuText增加Hidden属性(此属性是Ajax可更新属性,如果需要在Ajax时显示隐藏菜单,请使用此属性而不是Visible属性)。[fixed]\n\t+大部分的ExtAspNet控件增加Hidden属性(少数几个控件没有此属性:Menu),这样在Ajax时可以显示隐藏控件。[fixed]\n\t\t-注意Visible和Hidden的区别:Visible=false的属性不会渲染到客户端,Hidden=true的控件渲染到客户端但是隐藏。\n\t\t-US的ExtAspNet改造强烈依赖于此属性,这个版本发布后可以继续。\n\t\t-网报中唯一没有用到ExtAspNetAjax的地方就是显示隐藏表单字段,现在也可以使用Ajax了。\n\n\n\n+2008-09-04 v1.1 beta6\n\t-PageContext.Redirect支持普通\u003Cem\u003E页面\u003C\u002Fem\u003E转向和ExtAspNetAjax下\u003Cem\u003E页面\u003C\u002Fem\u003E转向。[fixed]\n\t+模拟树的下拉列表的BUG(会使一些可选项变成不可选项)[feedback:xmzhu]。[fixed]\n\t\t-因为if(\"0,2,9,11,\".indexOf('1,')\u003E=0){ok},这显然是不对的,此BUG涉及很多控件(Grid,DropDownList,TabStrip)。\n\t\t-解决方法:testValue += '';if(domValue.split(',').indexOf(testValue) \u003E= 0){ok}。\n\t-DropDownList在Ajax时应该先更新数据再设置选定项 [feedback:xmzhu]。[fixed]\n\t-Button\u002FMenuButton增加Ajax可更新属性OnClientClick [feedback:xmzhu]。[fixed]\n\t-Tree的Ajax支持(尚需优化)。[fixed]\n\t\n\t\n\n+2008-09-02 v1.1 beta5\n\t-DropDownList如果第一次没有绑定值,应该绑定到[[]](二维数组),而不是[](一维数组)。[fixed]\n\t-模拟树的DropDownList,在Ajax重新绑定DataSource后,保持项\u003Cem\u003E是否\u003C\u002Fem\u003E可选状态是最新的(\u003Cem\u003E页面\u003C\u002Fem\u003E第一次加载时,即使没有数据也需要设置DataTextField\u002FDataValueField\u002FDataSimulateTreeLevelField\u002FDataEnableSelectField等属性的值,否则Ajax回发时会出错)。[fixed]\n\t-UserControlConnector导致的Ajax错误,去除UpdatePanelConnector控件(以后不会用AspnetAjax,这个控件已经完成使命)。[fixed]\n\t-不要使用\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的控件HiddenField,而是使用ExtAspNet的HiddenField,因为\u003Cem\u003EAsp.net\u003C\u002Fem\u003E的控件在Ajax不会被更新,所以会导致视图状态不一致的错误。[fixed]\n\t-网报Ajax整合基本完成(除了待审批-\u003E下一步[审核\u002F归档\u002F出纳]操作,由于需要显示隐藏表单字段,目前Ajax不支持,使用的还是普通的PostBack)。[fixed]\n\t-IE下,RadioButtonList中项如果存在汉字,则会换行的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\u003E页面\u003C\u002Fem\u003E上方会有空白(可以通过设置EnableDeferredRender=false解决,但会减慢\u003Cem\u003E页面\u003C\u002Fem\u003E的加载速度),现在已经解决这个问题。[fixed]\n\t-RadioButtonList去除EnableBackgroundColor\u002FEnableLightBackgroundColor属性,背景色是透明的,也就是和父控件(SimpleForm\u002FForm)的背景色一致。[fixed]\n\t-TwinTriggerBox的第\u003Cem\u003E一个\u003C\u002Fem\u003ETrigger图标不会先显示再隐藏,而是直接隐藏掉(如果用户设置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-RadioButtonList增加Ajax可更新属性SelectedIndex(SelectedValue\u002FSelectedItem)。\n\t\t-DropDownList增加Ajax可更新属性Enable\u002FSelectedIndex(SelectedValue\u002FSelectedItem)\u002FDataSource。\n\t\t-Grid增加Ajax可更新属性Columns(也就是说Grid列在回发时隐藏显示了一些,也能正确的Ajax)。\n\t\t-ToolbarText增加Ajax可更新属性Text。\n\t\t\n\t\t\n\t\t\n+2008-08-31 v1.1 beta3\n\t-TabStrip增加EnableDeferredRender属性(\u003Cem\u003E是否\u003C\u002Fem\u003E启用延迟加载Tab,默认启用)。[fixed]\n\t-重定向\u003Cem\u003E页面\u003C\u002Fem\u003E,使用系统的方法 PageContext.Redirect(string url),使用Response.Redirect方法会出错。[fixed]\n\t+安全的Ajax设计。[fixed]\n\t\t-这个版本Ajax和上个版本(v1.1beta1)在设计思路上有很大区别,同时在速度上会有进一步的提升。\n\t\t-基本思想:安全的Ajax交互,明确Ajax回发时支持控件哪些属性的改变,这将适合90%的应用场景(并且具有极快的反应速度),对于需要UI大改动的可采用常规回发,系统提供控件级别的EnableAjax属性。\n\t\t-整理支持Ajax的控件属性改变列表(所有被支持的属性改变都是安全的、快速的,所有不被支持的属性改变不会对UI起作用,同时是安全的,不会有js错误)。\n\t-网报Ajax整合(目前只支持所有的列表\u003Cem\u003E页面\u003C\u002Fem\u003E)(v0.8.1)。[fixed]\n\t\n\t\n\t\n+2008-08-29 v1.1 beta1\n\t+Window控件\u003Cem\u003E是否\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E的状态在回发时维持。[fixed]\n\t\t-控件设计的\u003Cem\u003E一个\u003C\u002Fem\u003E原则,凡是可以在客户端改变的属性都应该在回发时保持属性的状态。\n\t+完全抛弃\u003Cem\u003EAsp.Net\u003C\u002Fem\u003EAjax,ExtAspNet控件内置Ajax支持。[fixed]\n\t\t-这是\u003Cem\u003E一个\u003C\u002Fem\u003E值得骄傲的设计,可以明显提高\u003Cem\u003E页面\u003C\u002Fem\u003E回发的速度(相比普通的回发和\u003Cem\u003EAsp.net\u003C\u002Fem\u003EAjax的回发),对于IFrame框架的交互也起到很好的加速效果。\n\t\t-不需要做任何配置,所有的回发都是Ajax(在Web.config和PageManager中有设置启用Ajax回发的属性-EnableAjax-默认为true)。\n\t\t+在这种设计下,其实可以完全抛弃Javascript。\n\t\t\t-比如简单的点击\u003Cem\u003E一个\u003C\u002Fem\u003E按钮\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口,可以在Button的OnClick事件中设置Window1.Popup=true,也可以注册Button的OnClientClick=Window1.GetShowReference()。\n\t\t\t-第一种方法需要回发,但是我们内置的Ajax支持能很快的返回需要的结果并解析,在网络速度很快的情况下和第二种方法差别不是很大。\n\t\t\t-推荐的做法是尽量用客户端实现,客户端实现复杂的直接用服务器端实现。\n\t\t+目前ExtAspNetAjax的限制。\n\t\t\t-只对ExtAspNet控件起作用,对\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件不起作用。\n\t\t\t-对容器控件(有子控件的控件)不起作用,只对最底层的控件起作用。\n\t\t\t-对改变控件的Visible属性会有错误。\n\t\t\t-Window控件的属性改变只有少数几个起作用(Popup,IFrameUrl)。\n\t-PageManager增加属性EnablePageLoading和EnableAjaxLoading(启用\u003Cem\u003E页面\u003C\u002Fem\u003E第一次加载标示和Ajax加载标示,默认都为true),所以如果使用系统默认的加载标示就不必每个\u003Cem\u003E页面\u003C\u002Fem\u003E都添加PageLoading控件。[fixed]\n\t-Grid中的回发事件(主要是LinkButtonField和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-主要是父\u003Cem\u003E页面\u003C\u002Fem\u003E加载\u003Cem\u003E一个\u003C\u002Fem\u003E比较大的css文件(~100k),则每次打开iframe\u003Cem\u003E页面\u003C\u002Fem\u003E,onload事件的调用都会有500ms左右的延迟,在测试IE性能时要禁用此插件。\n\t+优化\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口中IFrame的显示速度。[fixed]\n\t\t-在当前\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口需要~20ms,在父\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口需要100~300ms。通过缓存\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口实例,从而第二次\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口不再需要创建时间。\n\t-PageLayout的Region增加SplitColor属性,默认的背景色是透明的。(在网报中需要设置SplitColor=\"#CADDF7\",以便分隔符的颜色和Toolbar的颜色一致)[fixed]\n\t+PageManager增加属性Theme、Language、FormMessageTarget、FormOffsetRight等属性,这些属性可以在Web.config中设置(推荐方法),也可以为每个\u003Cem\u003E页面\u003C\u002Fem\u003E设置。[fixed]\n\t\t-\u003Cem\u003E一个\u003C\u002Fem\u003E典型的应用是为每个用户设置不同的皮肤(根据用户浏览器中Cookie设置的值)(示例在default.aspx)。\n\t-TreeNode增加属性SingleClickExpand,表示点击可切换节点的折叠展开状态。[fixed]\n\t+TabStrip中非当前Tab会延迟渲染。[fixed]\n\t\t-这会明显加快\u003Cem\u003E页面\u003C\u002Fem\u003E的渲染速度,网报中\u003Cem\u003E一个\u003C\u002Fem\u003E典型的费用审批\u003Cem\u003E页面\u003C\u002Fem\u003E可以减少200ms的渲染时间。\n\t\t-由于非当前Tab不会在\u003Cem\u003E页面\u003C\u002Fem\u003E加载时渲染,所以那些Tab中的节点在\u003Cem\u003E页面\u003C\u002Fem\u003E加载后也是不可见的,需要将相关的脚本移动到控件的render事件中。\n\t-不能比较两个DataPicker大小的BUG。[fixed]\n\t-TabStrip延迟加载引起的BUG(非当前Tab中的ContentPanel会占据\u003Cem\u003E页面\u003C\u002Fem\u003E空间,已修正)。[fixed]\n\t-全新的ExtAspNet.Examples(基础知识\u002F表单控件\u002F数据绑定\u002F容器布局\u002FIFrame框架)。[fixed]\n\t\n\t\n\t\n+2008-08-19 v0.4 beta6\n\t+PageManager增加两个属性(EnableInlineStyleJavascript\u002FApplyParentStyleJavascript),可以在IFrame\u003Cem\u003E页面\u003C\u002Fem\u003E中使用父\u003Cem\u003E页面\u003C\u002Fem\u003E的脚本和样式(示例在iframe\u002Fdefault.aspx和iframe\u002Fpage3.aspx)。[fixed]\n\t\t-测试发现,IFrame\u003Cem\u003E页面\u003C\u002Fem\u003E的加载速度并没有明显加快,可以先不使用此属性。\n\t-RadioButtonList放在在BorderLayout中显示不了的BUG [feedback:zgjiang2]。[fixed]\n\t+extjs的BUG,当\u003Cem\u003E页面\u003C\u002Fem\u003E中含有iframe时,Ext.onReady会被调用两次(IE6\u002FIE7)(http:\u002F\u002Fwww.extjs.net\u002Fforum\u002Fshowthread.php?t=43246)(示例在test.aspx)[fixed]\n\t\t-现在的解决方法是在初始化时:if(this.initialized){return;}this.initialized=true;\n\t+需要先回发\u003Cem\u003E页面\u003C\u002Fem\u003E再\u003Cem\u003E弹出\u003C\u002Fem\u003EIFrame窗口。[fixed]\n\t\t-在回发时设置窗口的Popup和IFrameUrl属性,因为这些属性是可以保持状态的,所以在关闭窗口时要注意设置Popup=false。\n\t\t-另一种做法(推荐):PageContext.RegisterStartupScript(Window99.GetShowReference(\".\u002Fsimpleform.aspx\"));。\n\t\n\t\t\n\t\n+2008-08-15 v0.4 beta5\n\t-点击关闭窗口的按钮,在IE6下会有JS错误。[fixed]\n\t-增加BorderLayout控件,示例在iframe\u002Fborderlayout.aspx。[fixed]\n\t+Radiobuttonlist显示有重影(示例在radio.aspx)。[fixed]\n\t\t-全新的样式。\n\t\t-去除Horizontal属性,增加ColumnNumber(可以设置渲染成几列)。\n\t\t-GetValueReference取得的值不正确的BUG。\n\t-动态向Form中添加FormRow,并动态的向FormRow中添加表单字段,以及如何取得表单字段的值。(示例在form_dynamic.aspx)[fixed]\n\t+IFrame\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口关闭后回发父\u003Cem\u003E页面\u003C\u002Fem\u003E,则会多加载IFrame一次,再次打开窗口会重复加载IFrame2-3次[feedback:xmzhu]。[fixed]\n\t\t-这是\u003Cem\u003E一个\u003C\u002Fem\u003E重要的BUG,会严重影响\u003Cem\u003E页面\u003C\u002Fem\u003E的加载速度。原因是通过脚本改变的IFrameUrl会在回发时保持状态,从而回发父\u003Cem\u003E页面\u003C\u002Fem\u003E后Window中的IFrame被添加到\u003Cem\u003E页面\u003C\u002Fem\u003E,而这是不需要的。\n\t\t-现在\"\u003Cem\u003E是否\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口、窗口标题、IFrameUrl\"在客户端的改变,不会影响服务器端的属性,也即是不保持状态。此问题解决。(示例在button_iframe.aspx)\n\t\n\t\n\t\n+2008-08-13 v0.4 beta4\n\t-点击关闭窗口的按钮,在IE下会有JS错误。[fixed]\n\t-Window的右上角关闭图标增加提示,优化事件响应。[fixed]\t\n\t-Window的代码重构。[fixed]\t\n\t+修正\u003Cem\u003E一个\u003C\u002Fem\u003E的内存泄漏。[fixed]\n\t\t-IE7下测试,打开iframe\u002Fdefault.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E,iexplorer占内存68.368M。\n\t\t-内存存在泄漏时,点击iframe\u002Fpage3.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E8次后iexplorer占118.792M内存。\n\t\t-修正后,点击iframe\u002Fpage3.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E8次后iexplorer占76.492M内存。\n\t\t-IE窗口最小化时,IE会自动进行垃圾回收。\n\t\n\t\n\t\n+2008-08-12 v0.4 beta3\n\t-底层的javascript框架Extjs升级为v2.2,Grid的渲染速度有很大提升。[fixed]\n\t-Grid的EnableDelayRender默认为true(如果没有设置Grid的高度或通过布局间接设置高度,则行不可见,可以通过AutoHeight=\"true\"解决)。[fixed]\n\t+\u003Cem\u003E页面\u003C\u002Fem\u003E正在加载的提示尽早的显示出来。[fixed]\n\t\t-首先在执行js来完成\u003Cem\u003E页面\u003C\u002Fem\u003E渲染之前延迟5ms,以便浏览器把当前\u003Cem\u003E页面\u003C\u002Fem\u003E内容显示出来。\n\t\t-加载js脚本的script标签放置在\u003Cem\u003E页面\u003C\u002Fem\u003E的最后,放置加载js而阻塞PageLoading的显示。\n\t\n\t\n\t\n+2008-08-08 v0.4 beta2\n\t-TabStrip延时加载出错。[fixed]\n\t-Window的IFrameUrl处理的BUG,比如Pages_ExtAspNet目录下的\u003Cem\u003E页面\u003C\u002Fem\u003E应该为.\u002FFE_ApplyEditor.aspx或~\u002FPages_ExtAspNet\u002FFE_ApplyEditor.aspx。[fixed]\n\t-Window的WindowPosition=\"Center\"并且Target=\"_parent\",则会JS错误。[fixed]\n\t-实现网报首页下拉菜单和左侧菜单的导航功能。[fixed]\n\t-Window的创建在\u003Cem\u003E页面\u003C\u002Fem\u003E显示后进行,不计算在js渲染时间内。[fixed]\n\t-优化费用申请\u003Cem\u003E页面\u003C\u002Fem\u003E(尽量减少不必要的层次嵌套)。[fixed]\n\t-button_iframe.aspx默认会加载form.aspx\u003Cem\u003E页面\u003C\u002Fem\u003E(Window控件的BUG)。[fixed]\n\t-Window中的保存并关闭按钮和\u003Cem\u003EAsp.net\u003C\u002Fem\u003EAjax冲突。[fixed]\n\t-优化关闭Window的js脚本,减少写到\u003Cem\u003E页面\u003C\u002Fem\u003E的js大小。[fixed]\n\t-加快“保存并关闭”按钮关闭窗口的速度,使用PageContext.RegisterExclusiveScript(CurrentActiveWindow.GetClosePostBackReference());,示例在(simpleform.aspx)。[fixed]\n\t\n\t\n\t\n+2008-08-05 v0.4 beta1\n\t-DropDownList去除Traditional属性,和传统的\u003Cem\u003EAsp.net\u003C\u002Fem\u003E控件一样不可编辑。[fixed]\n\t-DropDownList增加SelectedText属性(去除了模拟树时通过SelectedItem.Text的多余html字符)。[fixed]\n\t-为了加快渲染速度,去掉一些特效(比如Panel的折叠效果,Grid的拖动列效果等)[feedback:dcding]。[fixed]\n\t-将生成的js对象的名称简单化,这样可以减少生成的js内容,加快\u003Cem\u003E页面\u003C\u002Fem\u003E加载速度(\u003Cem\u003E一个\u003C\u002Fem\u003E典型\u003Cem\u003E页面\u003C\u002Fem\u003E的js由原来的33.0k降低为21.4k)。[fixed]\n\t+\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口中,点击按钮回发然后点击关闭按钮,出现js错误 [feedback:xmzhu]。[fixed]\n\t\t-因为在\u003Cem\u003E页面\u003C\u002Fem\u003E的Page_Load中,if (!IsPostBack){PageContext.RegisterPageStateChangedStartupScript();}通过这样方法向\u003Cem\u003E页面\u003C\u002Fem\u003E注册了一段脚本,但是这段脚本在回发时没有注册到\u003Cem\u003E页面\u003C\u002Fem\u003E,因为js调用此脚本时报错。\n\t\t-一种解决方法是将向\u003Cem\u003E页面\u003C\u002Fem\u003E注册脚本的函数移动到if语句的外面,即每次都向\u003Cem\u003E页面\u003C\u002Fem\u003E注册此脚本。\n\t\t-另一种办法就是在PageManager控件中增加RegisterPageStateChangedScript(向\u003Cem\u003E页面\u003C\u002Fem\u003E注册监视\u003Cem\u003E页面\u003C\u002Fem\u003E中表单内容改变的脚本)的属性(会在每次\u003Cem\u003E页面\u003C\u002Fem\u003E回发(包含ajax回发)时注册脚本)(示例在button_iframe.aspx\u002Fsimpleform.aspx)。\n\t+PageManager控件增加ExecuteOnReadyWhenPostBack属性(示例在onreadyscript.aspx)。[fixed]\n\t\t-这个手工添加onReady函数能够在每次\u003Cem\u003E页面\u003C\u002Fem\u003E回发时都注册脚本(包括Ajax局部回发),这就避免了手工去做的麻烦(已经在网报中遇到这种情况)。\n\t-每个\u003Cem\u003E页面\u003C\u002Fem\u003E必须添加\u003Cem\u003E一个\u003C\u002Fem\u003EPageManager控件,否则会出错,同时去除DesignTimeStyle控件(作为PageManager的属性出现)。[fixed]\n\t-TextField等表单字段增加Readonly属性。[fixed]\n\t+全新设计的IFrame的架构(尽可能和基于MasterPage的架构保持兼容,和\u003Cem\u003EAsp.net\u003C\u002Fem\u003E Ajax保持兼容)。[fixed]\n\t\t-最大的好处是可以减少\u003Cem\u003E页面\u003C\u002Fem\u003E下载完毕后Javascript渲染时间(可以节约一般的渲染时间)。(所有示例在iframe文件夹下)\n\t\t+示例1,通过点击按钮\u003Cem\u003E弹出\u003C\u002Fem\u003EIFrame窗口,可直接关闭父\u003Cem\u003E页面\u003C\u002Fem\u003E,也可在关闭后刷新或回发父\u003Cem\u003E页面\u003C\u002Fem\u003E。(default.aspx\u002Fpage2.aspx\u002Fsimpleform.aspx)\n\t\t\t-虽然IFrame和Master两种架构差异迥然,或许你以为需要修改一堆代码来完成这种转换,起初我也是这么认为的,但是现在你所要做的仅仅是为Window控件增加\u003Cem\u003E一个\u003C\u002Fem\u003E属性(Target=\"_parent\"),就完成了两种框架的转换,是不是很酷。\n\t\t\t-显然,控件本身封装了大量的代码,简单来看现在有三个\u003Cem\u003E页面\u003C\u002Fem\u003E(default.aspx(A)\u002Fpage2.aspx(B)\u002Fsimpleform.aspx(C)),其中A包含B\u003Cem\u003E页面\u003C\u002Fem\u003E,当你在B中打开包含有\u003Cem\u003E页面\u003C\u002Fem\u003EC的窗口时,窗口不是在B中打开,而是在A中打开,这样才能保证窗口覆盖整个\u003Cem\u003E页面\u003C\u002Fem\u003E,当你从C中返回需要回发\u003Cem\u003E页面\u003C\u002Fem\u003EB时,却发现取得的是A\u003Cem\u003E页面\u003C\u002Fem\u003E,因为我们窗口是在A\u003Cem\u003E页面\u003C\u002Fem\u003E中创建的。我会通过一篇文章来揭示这一过程,敬请期待。\n\t\t-示例2,Grid中\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。(default.aspx\u002Fpage3.aspx\u002Fsimpleform.aspx)\t\n\t\t+示例3,TriggerBox\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。(default.aspx\u002Ftriggerbox.aspx\u002Fsimpleform.aspx)\t\n\t\t\t-在整个\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口或者在当前\u003Cem\u003E页面\u003C\u002Fem\u003E\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口,仅仅设置Window的Target属性即可。\n\t\t-示例4,\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口中的\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口。\n\t-对整个Examples更新测试。[fixed]\n\t\n\t\n\t\n+2008-07-31 v0.3 beta12\n\t-IE下TabStrip在Ajax回发后不会去掉x-hide-display样式,导致Tab显示为空的BUG。[fixed]\n\t-对TabStrip\u002FPanel\u002FWindow中的IFrame重新设计,如果设置IFrameUrl=\"#\"或者\"about:blank\",则不渲染iframe到\u003Cem\u003E页面\u003C\u002Fem\u003E节点,同时第二次打开Window中的IFrame不会有残影出现。[fixed]\n\t-如果TabStrip的Tab不是激活Tab并且设置了IFrameUrl,则会延迟加载(示例在tabstrip_iframe.aspx)。[fixed]\n\t-Tree控件,点击\u003Cem\u003E一个\u003C\u002Fem\u003E节点自动回发,则当前点击的那个节点的选中状态不会保持的BUG [feedback:zgjiang2]。[fixed]\n\t+规范关闭窗口时提示用户保存已经修改的内容提示的调用方式(包含iframe中关闭按钮和window右上角关闭图标的调用方式)(示例在grid_iframe.aspx\u002Fsimpleform.aspx)。[fixed]\n\t\t-内部实现上,点击“保存并关闭按钮”,可以将关闭窗口的脚本更早的执行(在simpleform.aspx,PageContext.RegisterStartupScript增加重载函数),而不是原来的先创建整个\u003Cem\u003E页面\u003C\u002Fem\u003EUI,再关闭窗口。\n\t-参照Yslow的评分规则,将JS文件引用由head移动到body中。[fixed]\n\t-Firefox下,如果\u003Cem\u003E页面\u003C\u002Fem\u003E太长会出滚动条,原来在ViewPort样式中有body{overflow:hidden;}。[fixed]\n\t+IFrame内的\u003Cem\u003E页面\u003C\u002Fem\u003E宽度和高度会自动设置(是不是还在为1px\u002F2px的白边而烦恼,现在不用了:-)(示例在iframe_autosize.aspx\u002Fsimpleform.aspx\u002Fsimpleform2.aspx)[fixed]\n\t\t-增加PageManager控件(需要指定AutoSizePanelID,即需要设置宽度和高度为整个\u003Cem\u003E页面\u003C\u002Fem\u003E的宽度和高度的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,增加FormOffsetRight配置项,用来定义全局表单字段距离右边界的宽度,同时每个表单字段都增加OffsetRight属性 [feedback:jima]。[fixed]\n\t-Window在回发时设置的Title不起作用的BUG。[fixed]\n\t-增加Image控件 [feedback:jima]。[fixed]\n\t-Tree控件,如果\u003Cem\u003E一个\u003C\u002Fem\u003E节点不是叶子节点并且没有子节点,则应把它的Expanded设置为false,否则会引起\u003Cem\u003E页面\u003C\u002Fem\u003E死循环回发 [feedback:zgjiang2]。[fixed]\n\t-Image增加ToolTipTitle\u002FToolTipAutoHide两个属性,当提示信息特别长时,可以让用户阅读完毕之后手工关闭提示信息(示例在hyperlink.aspx)。[fixed]\n\t-去掉DropDownList控件的Text属性(强制性),可以通过设置SelectedValue来设置选中哪一项 [feedback:xmzhu]。[fixed]\n\t-过滤提示消息中的换行符(转换为\u003Cbr\u002F\u003E),否则提示信息可能导致\u003Cem\u003E页面\u003C\u002Fem\u003E渲染错误 [feedback:dcding]。[fixed]\n\t\n\t\n\t\n+2008-07-23 v0.3 beta10\n\t+完善Tree控件。[fixed]\n\t\t-如何将数据库中的数据绑定到Tree(示例在tree2_bind_database.aspx)。\n\t\t-ajax加载树节点,放在UpdatePanel中才有ajax的效果(示例在tree2_ajax.aspx)。\n\t\t-更改TreeNode的ID为NodeId,否则两个树中不能有相同ID的TreeNode,这是不合理的。\n\t-Grid的GridColumn的ID改名成ColumnId,否则同\u003Cem\u003E一个\u003C\u002Fem\u003E\u003Cem\u003E页面\u003C\u002Fem\u003E放置两个Grid,它们的GridColumn的ID不能同名,这是不合理的。注意需要更新以前的代码![fixed]\n\t-Grid所有类型的列增加DataTooltipField\u002FDataTooltipFormatString两个字段,以显示ToolTip(示例在grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-22 v0.3 beta9\n\t+IE6下,左侧导航链接的选中样式,以及鼠标移上去和移开的样式不对。[fixed]\n\t\t-发现原来ie6不能正确解析li的高度,必须手工设置才行(style=\"height:20px;\")。\n\t+IE6\u002FIE7下,模拟树的下拉列表如果文字长度太长,则显示的文字会换行,导致错位。[fixed]\n\t\t-虽然最后未能解决\u003Cdiv style=\"width: 60px; white-space: nowrap; overflow: hidden; border: solid 1px red;\"\u003E\u003Cdiv style=\"width: 16px; height: 18px; float: left;\"\u003E##\u003C\u002Fdiv\u003E差旅交通费\u003C\u002Fdiv\u003E在IE和Firefox下显示的不同效果。\n\t\t-但是通过用\u003Cimg src=\"##\" \u002F\u003E来代替\u003Cdiv style=\"background:url(##)\" \u002F\u003E,从而实现FF和IE下样式的统一。\n\t\t-刚看到old9的解决方案:把“差旅交通费”改成“\u003Cspan style=\"margin-right: -1000px;\"\u003E差旅交通费\u003C\u002Fspan\u003E”,在IE下和FF下的都不换行,:-)\n\t-LinkButton增加OnClick事件 [feedback:huihuang]。[fixed]\n\t-Window通过设置IFrameUrl和Popup不起作用的BUG。[feedback:xmzhu]。[fixed]\n\t+增加树控件(Tree)(示例在tree2.aspx)。[fixed]\n\t\t-可以在回发时维持树的状态(选中行,折叠\u002F展开,CheckBox)。\n\t\t-可以通过Inline的方式添加树节点,也可以绑定到XmlDocument\u002FXmlDataSource\u002FSiteMap。\n\t\t-点击树节点可以链接到\u003Cem\u003E页面\u003C\u002Fem\u003E,也可以引发PostBack事件,可以添加自定义脚本。\n\t\n\t\n\t\n+2008-07-16 v0.3 beta8\n\t+ContentPanel中放置ExtAspNet控件,则渲染时会出现各种问题,比如下拉列表显示样式出错,Grid没了滚动条等等。[fixed]\n\t\t-隐蔽性非常强,原来在ContentPanel中渲染ExtAspNet控件,如果容器的display='none',则会出现各种问题(主要是大小不对)。\n\t\t 必须设置容器为visibility='hidden',然后在渲染完成后显示容器。\n\t\t-现在Grid只要显示的设置高度和宽度,或者隐式的设定宽度高度(通过Anchor或Fit布局实现),只要超过Grid容器就会显示滚动条。\n\t+IE6下,在应用\u003Cem\u003EAsp.Net\u003C\u002Fem\u003EAjax后,Form中字段的宽度渲染不正确。[fixed]\n\t\t-调试相当困难,如果你有过在IE下通过alert发现问题的经历,你就能明白。\n\t\t-最后发现IE6下应用\u003Cem\u003EAsp.Net\u003C\u002Fem\u003EAjax后不仅Form中列的宽度设置不正确,而且主内容区域的宽度设置也不正确,不过最终我们还是顽强的修复了IE6下的这个BUG:\n\t\t 在MasterPage的onReady函数中,首先修正内容区域的宽度(region3.setWidth(pageLayout1.getSize().width - region2.getSize().width - 5);region3.doLayout();),然后修正\u003Cem\u003E页面\u003C\u002Fem\u003E中所有表单的宽度(box_fixFormWidthInIE6();):\n\t\t 示例在 Site.Master \u003Cem\u003E页面\u003C\u002Fem\u003E。\n\t+集成的AspNetAjax有\u003Cem\u003E一个\u003C\u002Fem\u003E很大的BUG,只要你在\u003Cem\u003E页面\u003C\u002Fem\u003E上进行过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;),不管怎么说,我对能很好的解决这个重大的BUG很是欣喜。\n\t\n\t\n\t\n+2008-07-14 v0.3 beta6\n\t-增加FlashObject控件。[fixed]\n\t-PageLoading增加EnableFadeOut属性(默认false),可以启用淡出效果。[fixed]\n\t-Accordion选中样式微调。[fixed]\n\t-预加载Form表单出错时提示信息的背景图片。[fixed]\n\t+Grid增加EnableDelayRender属性(默认false),可以加快\u003Cem\u003E页面\u003C\u002Fem\u003E的渲染速度(\u003Cem\u003E一个\u003C\u002Fem\u003E典型的20个记录的\u003Cem\u003E页面\u003C\u002Fem\u003E,可提前0.7s-1s显示出来)。[fixed]\n\t\t-因为延迟加载数据不会改变Grid的大小,所以对于非布局内或不设定高度宽度的Grid,需要设置\"EnableDelayRender=false\"。\n\t-改变Grid中静态的CheckBoxField图片。[fixed]\n\t-TabStrip增加TabIndexChanged事件,同时Tab增加EnablePostBack,可以在点击\u003Cem\u003E一个\u003C\u002Fem\u003ETab时引起回发事件。这在延迟加载Tab的内容非常有用。(示例在tabstrip.aspx)[fixed]\n\t\n\t\n\t\n+2008-07-12 v0.3 beta5\n\t-\u003Cem\u003E页面\u003C\u002Fem\u003E菜单Toolbar的分割符和背景不相融合。[fixed]\n\t-表单字段之间可以比较大小,比如NumberBox可以和Label比较大小,同时增加CompareType,来指定比较的类型(示例在form_compare.aspx)。[fixed]\n\t\t-如果是同种类型的表单字段,不需要指定CompareType,比如两个NumberBox比较值的大小不需要指定CompareType,而\u003Cem\u003E一个\u003C\u002Fem\u003ENumberBox和TextBox比较大小需要指定CompareType。\n\t+如果在编辑\u003Cem\u003E页面\u003C\u002Fem\u003E使用AspNetAjax,则不能在回发时关闭当前窗口[feedback:huihuang](示例在ajax_editor_main.aspx\u002Fajax_editor.aspx)。[fixed]\n\t\t-这是由于ajax后执行的javascript中不能有return false语句。\n\t+在文本框失去焦点时,执行一些Javascript脚本(示例在textbox_blur.aspx) [feedback:xmzhu]。[fixed]\n\t\t-在\u003Cem\u003E页面\u003C\u002Fem\u003E添加onReady函数(会被系统调用),然后用javascript监视文本框值的改变。\n\t-\u003Cem\u003E弹出\u003C\u002Fem\u003EWindow默认显示的错误\u003Cem\u003E页面\u003C\u002Fem\u003E,解决方法在当前目录添加\u003Cem\u003E一个\u003C\u002Fem\u003E空的html\u003Cem\u003E页面\u003C\u002Fem\u003E,然后把Window控件的IFrameUrl指向这个\u003Cem\u003E页面\u003C\u002Fem\u003E而不是\"#\"。[fixed]\n\t+\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口中的\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口的如果内容发生变化,则点击右上角的关闭按钮时会有提示用户先保存的对话框,但是这个对话框的被第二个\u003Cem\u003E弹出\u003C\u002Fem\u003E窗口覆盖了 [feedback:xmzhu]。[fixed]\n\t\t-原来的调用方法太麻烦(见示例中alert\\alert_1.aspx和alert\\alert_2.aspx,总计 6 行代码),现在只需要 3 行代码就OK了。\n\t-点击提交按钮后变成灰色不可再次点击(示例在button_click_gray.aspx)[feedback:jima]。[fixed]\n\t+增加Menu、MenuText、MenuSeparator、MenuButton、MenuHyperLink控件,\u003Cem\u003E用于\u003C\u002Fem\u003E按钮的下拉菜单(示例在button_menu.aspx)。[fixed]\n\t-增加SplitButton控件。[fixed]\n\t\n\t\n\t\n+2008-07-09 v0.3 beta4\n\t-DataPicker默认的日期格式为(yyyy-MM-dd)。[fixed]\n\t+Form表单字段(TextBox,DropDownList...)之间可以比较大小 [feedback:huihuang]。[fixed]\n\t\t-增加ControlToCompare\u002FValueToCompare\u002FCompareOperator\u002FCompareMessage四个属性,示例在form_compare.aspx。\n\t+TabStrip中放置IFrame会出现渲染错误 (示例在tabstrip_iframe.aspx)[feedback:jima]。[fixed]\n\t\t-特殊处理,拥有IFrame的Tab如果不是激活Tab,则不设置Url,只有在激活时才设置Url。\n\t-RadioButtonList增加AutoPostBack属性(示例在radio.aspx) [feedback:xmzhu]。[fixed]\n\t-FormRow可以设置各列的宽度百分比 (示例在form_columnwidths.aspx)[feedback:jima]。[fixed]\n\t+表单字段Enable=false时显示颜色太浅 [feedback:jima]。[fixed]\n\t\t-覆盖缺省样式的.x-item-disabled,设置不透明。\n\t\n\t\n\t\n+2008-07-08 v0.3 beta3\n\t-Grid没有数据,向后翻页按钮可以点击的BUG [feedback:huihuang]。[fixed]\n\t+增加HiddenField控件。[fixed]\n\t\t-其实用TextBox也能模拟HiddenField的行为,只需要设置CssStyle=\"display:none;\"即可。\n\t+TriggerBox 如果 EnableTextBox = true,则不能将Text回发(这是html的限制)。[fixed]\n\t\t-最后的解决方案居然是设置 readonly=true,同时更改属性为 Readonly(示例在textbox2.aspx)。\n\t-模拟树的下拉列表在失去焦点后显示的文字不对的BUG。[fixed]\n\t+控制下拉列表某些项不可以选择(示例在dropdownlist2.aspx)。[fixed]\n\t\t-增加 DataEnableSelectField 属性,不可选择的项变灰,并且鼠标经过时没有样式。\n\t-LinkButton和Grid的LinkButtonField增加Enable属性(示例在hyperlink.aspx和grid.aspx)。[fixed]\n\t\n\t\n\t\n+2008-07-07 v0.3 beta2\n\t+增加UpdatePanelConnector控件,支持在布局构建的\u003Cem\u003E页面\u003C\u002Fem\u003E使用\u003Cem\u003EAsp.net\u003C\u002Fem\u003E Ajax。[fixed]\n\t\t-使用UpdatePanelConnector有\u003Cem\u003E一个\u003C\u002Fem\u003E要求:ContentTemplate下只能有\u003Cem\u003E一个\u003C\u002Fem\u003E子节点,比如box:Panel。\n\t\t-示例在ajax3.aspx\u002Fcontent_page4.aspx。\n\t\t-示例content_page3.aspx中,点击“Ajax查询”按钮和关闭\u003Cem\u003E弹出\u003C\u002Fem\u003E的窗口(点击右上角的叉)都引发异步更新。\n\t \n\t \n\t\n+2008-07-03 v0.3 beta1\n\t+容器控件的AutoHeight\u002FAutoWidth默认为false。[fixed]\n\t\t-使用GroupPanel的地方需要手工添加AutoHeight=\"true\"属性。\n\t+增加UserControlConnector,可以在其中放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t-也可以在ContentPanel中放置用户控件,注意两者的区别。\n\t+增加ContentPlaceHolderConnector,替换原来Region的ContentPlaceHolderId属性(示例在Site.master)。[fixed]\n\t+支持\u003Cem\u003EAsp.net\u003C\u002Fem\u003E ajax异步加载。[fixed]\n\t\t-有很大局限性,只能在ContentPanel中使用,示例在ajax1.aspx\u002Fcontent_ajax2.aspx中。\n\t\t-对于使用布局构建的\u003Cem\u003E页面\u003C\u002Fem\u003E(比如content_page1.aspx)还不能使用\u003Cem\u003EAsp.net\u003C\u002Fem\u003E ajax,因为\u003Cem\u003E页面\u003C\u002Fem\u003E是整体渲染的,先放弃。\n\t\n\t\n\t\n+2008-07-02 v0.2 beta12\n\t+关闭前提示当前\u003Cem\u003E页面\u003C\u002Fem\u003E已经被修改(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-支持Iframe内按钮和window右上角关闭按钮。\n\t\t-\u003Cem\u003E删除\u003C\u002Fem\u003ECloseAction属性,可以在后台通过OnClientCloseButtonClick属性指定(为了和iframe中做法一致)。\n\t+iframe中的alert\u002Fconfirm要覆盖整个父\u003Cem\u003E页面\u003C\u002Fem\u003E,而不仅仅是iframe\u003Cem\u003E页面\u003C\u002Fem\u003E。[fixed]\n\t\t-在Firefox下还有问题。[fix pending]\n\t+排序时在标题栏显示排序箭头,可以排序的列标题光标为手形(示例在grid_sorting.aspx)。[fixed]\n\t\t-可以通过设置Grid1.CurrentSortColumnIndex = 0;来强制某列显示排序箭头。\n\t\t-可以通过 Grid1.Columns[Grid1.CurrentSortColumnIndex].SortExpression 的方式取得当前Grid的排序表达式。\n\t+HyperLinkField\u002FWindowField的链接地址支持服务器端格式(即是~\u002Falert.aspx)。[fixed]\n\t-TabStrip的Tab中如果放置ContentPanel,则内容渲染位置不正确。[fixed]\n\t-可以在ContentPanel中放置用户控件(示例在page_usercontrol.aspx)。[fixed]\n\t\t\n\t\n\t\n+2008-06-30 v0.2 beta11\n\t-增加TwinTriggerBox控件(示例在twintriggerbox.aspx)。[fixed]\n\t-Grid的数据库分页需要增加属性IsDatabasePaging=true,以便普通分页和数据库分页,否则在添加\u003Cem\u003E删除\u003C\u002Fem\u003E记录时总记录数不会变化 [feedback:zgjiang2]。[fixed]\n\t-关闭Window时PostBack事件OnClose可以指定参数,来区分是哪些操作引发的PostBack事件 [feedback:zgjiang2](示例在window_postback.aspx)。[fixed]\n\t-如果表单验证不通过,则需要\u003Cem\u003E弹出\u003C\u002Fem\u003E对话框提示(第\u003Cem\u003E一个\u003C\u002Fem\u003E没通过验证的字段)(目前还不能切换到相应的tab)。[fixed]\n\t+\u003Cem\u003E页面\u003C\u002Fem\u003E中任意可输入表单字段发生变化,可提示先保存。(示例在content_page1.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-目前还不支持Window右上角关闭按钮的提示保存功能。\n\t-Master\u002FContent的内容页中Grid的Sort事件不起作用的BUG [feedback:zgjiang2]。[fixed]\n\t-Grid中的LinkButtonField设置ConfirmText会出错 [feedback:huihuang]。[fixed]\n\t-增加静态类Confirm。[fixed]\n\t\n\t\n\t\n+2008-06-27 v0.2 beta10\n\t+Grid完善。[fixed]\n\t\t-CheckBoxField在回发时不能保持状态的BUG (已经更新了grid_checkboxfield.aspx示例)。\n\t\t-Grid中模拟树显示,GridColumn增加DataSimulateTreeLevelField属性(\u003Cem\u003E一个\u003C\u002Fem\u003EGrid只能有\u003Cem\u003E一个\u003C\u002Fem\u003EColumn指定此属性),指定此列模拟树显示时的层次字段(0,1,2,...)(示例在grid_simulate_tree.aspx)。\n\t\t-切换分页时清空选中的值 [feedback:jqpeng]。\n\t\t-增加PreRowDataBound事件,可以在数据绑定之前设置某列的属性 [feedback:xmzhu] (示例在grid_prerowdatabound.aspx)。\n\t-DropDownList模拟树的方式显示,增加DataSimulateTreeLevelField属性,使用方法和Grid的类似(示例在dropdownlist_simulate_tree.aspx)。\n\t\n\t\n\t\n+2008-06-25 v0.2 beta9\n\t+Window窗体中的Iframe只让内容区域滚动,而Toolbar不滚动的规则。(示例在content_page2.aspx\u002Fsimpleform.aspx)[fixed]\n\t\t-在simpleform.aspx中:Panel[BodyPadding=5](Toolbar,Panel[Height=450 Layout=Fit](SimpleForm[AutoScroll=true])),则外面窗口的高度=450 + 5*2 + 26 + 32,其中26是Toolbar的高度,32是窗口的标题栏和下边框的高度。\n\t+关闭Iframe的LoadMask,所以需要Iframe\u003Cem\u003E页面\u003C\u002Fem\u003E添加PageLoading控件,这样效果统一。[fixed]\n\t+Grid完善。\n\t\t-去除EnableClientPaging和EnableClientSort属性,客户端排序和客户端分页在\u003Cem\u003EASP.NET\u003C\u002Fem\u003E应用中会有很多问题(主要是状态保持的问题)。\n\t\t+EnableServerSort改名AllowSorting。(示例在grid_sorting.aspx)\n\t\t\t-使用非常简单:设置AllowSorting=true,注册OnSort事件,在事件处理函数中重新绑定数据。\n\t\t+增加AllowPaging属性。(示例在grid_paging.aspx)\n\t\t\t-使用非常简单:设置AllowPaging=true,PageSize=3,注册OnPageIndexChange事件,在事件处理函数中Grid1.PageIndex = e.NewPageIndex;OK。\n\t\t+数据库分页支持。(示例在grid_database_paging.aspx)\n\t\t\t-使用也非常简单:设置AllowPaging=true,PageSize=3,在绑定时设置RecordCount为总的记录数,在OnPageIndexChange事件处理函数中Grid1.PageIn","createTime":"2010-04-01 09:41:27","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-2190657-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-3-2190657-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"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-3-2190657-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"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-3-2190657-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxbtmlove\u002F8269851","title":"行业贸易商务门户网站系统正式版","desc":"后台管理从前台网站输入http:\u002F\u002F***.***.***\u002Fadmin 进入后台管理,管理员:admin 登陆密码:wygkcn123456 ,企业会员测试帐号:wygkcn 密码:123456 ,免费申请虚拟主机域名注册试用http:\u002F\u002Fwww.wygk.net\u002F\n \u003Cem\u003Easp.net\u003C\u002Fem\u003E行业电子商务网站系统蓝色版下载,B2B电子商务平台、电子商务网站管理系统,专为各行业门户贸易网站设计的,\u003Cem\u003EASP.NET\u003C\u002Fem\u003E编程的行业B2B电子商务系统全功能,利用B2B仿阿里巴巴电子商务网上贸易网站管理系统,可在全球企业间(B2B)电子商务的建立B2B行业网站著名品牌,汇集海量供求信息,全球领先的网上交易市场和商人社区。\n让你像阿里巴拥有超过1400万网商的电子商务网站,遍布220个国家地区,成为全球商人销售产品、拓展市场及网络推广的首选网站,那你就成功了.阿里巴巴,行业门户,网上贸易,b2b,电子商务,内贸,外贸,批发,行业资讯,网上贸易,网上交易,交易市场,在线交易,买卖信息,贸易机会,商业信息,供求信息,采购,求购信息,供应信息,加工合作,代理,商机,行业资讯,商务服务,商务网,商人社区,网商尽在B2B网站管理系统源码,采用\u003Cem\u003Easp.net\u003C\u002Fem\u003E开发,完全B2B商务系统生成html的贸易通商务行业门户功能设计,B2B行业网站模板,行业电子商务网系统,B2B电子商务后台管理程序,B2B商贸网商贸通,全站程序B2B网站整站程序,仿阿里巴巴论坛,生成HTML的蓝色网页模板商贸网站,仿阿里巴巴网上贸易市场\u003Cem\u003Easp.net\u003C\u002Fem\u003E版,仿阿里巴巴贸易网站完整版,仿阿里巴巴网站程序,仿阿里巴巴系统,网域商务仿阿里巴巴,阿里巴巴源码,阿里巴巴,阿里巴巴网,阿里巴巴网站企业会员、供应信息、求购信息、产品库、公司库、专项商机、行业信息、展会服务、人才市场、网站新闻、产品报价\n \u003Cem\u003Easp.net\u003C\u002Fem\u003E+mssql架构的b2b行业网站源码行业贸易商务门户网站系统正式版现提供下载了,应用我们这一套程序,完全可建立\u003Cem\u003E一个\u003C\u002Fem\u003E如阿里巴巴一样全球领先的B2B电子商务网上贸易平台的网站系统,有企业B2B网站管理系统应有的找供应,找求购,找企业,找加工,找合作,代理加盟,找服务,行业资讯,价格行情,行业论坛,知道问吧所有模板.\n 功能简介:[主特色]\n开发为参考ALIBABA及慧聪网、买麦网,中国化工网等模式来进行的架构,全面考虑网站性能及功能。\n仿阿里巴巴B2B行业商贸商务网站管理系统正式版是 旗下的门户型B2B行业网站系统,采用先进的标签技术和静态生成技术,通过网站后台管理轻松实现网站前台多种风格和会员网站多风格,让每\u003Cem\u003E一个\u003C\u002Fem\u003E只要懂得简单网页制作常识的网友,轻松制作出精美专业的的行业商务网站系统。系统高速、稳定、安全,完全仿阿里巴巴功能设计,有供应信息、求购信息、产品库、公司库、专项商机、行业信息、展会服务、人才市场、会员助手、网商博客、商友论坛、全方位搜索等栏目。功能参考并集中了阿里巴巴、慧聪网、买麦网、中国化工网、第一建材网等国内知名商务网站的优点,并在某些方面超越了他们, 已经协助国内外千家客户提供了专业的服务, 将继续推动中国信息化服务进程\n程序特点:\n一、采用微软最新.net3.5+MSSQL架构\n二、全站生成静态\n可以提高网站安全性,防止不良代码注入 \n可以提高浏览的速度 \n方便搜索引擎的收录\n三、企业会员二级域名\n企业注册后自动生成http:\u002F\u002Fuser.xxxx.com形式的二级域名,使企业会员的网站地址变的简短、容易记忆,更具吸引力,为网站发展收费会员提供良好的技术保障。\n四、界面采用DIV+CSS的标准化设计\n大大缩减\u003Cem\u003E页面\u003C\u002Fem\u003E代码,提高\u003Cem\u003E页面\u003C\u002Fem\u003E浏览速度,缩减带宽成本; \n结构清晰,容易被搜索引擎搜索到,天生优化了seo \n缩短改版时间。只要简单的修改几个CSS文件就可以重新设计\u003Cem\u003E一个\u003C\u002Fem\u003E有成百上千\u003Cem\u003E页面\u003C\u002Fem\u003E的站点。\n五、会员自助建站功能\n有多套模板可供企业会员选用,\n六、标签技术,使网站改版更容易\n无论是商机还是新闻都可以任意、灵活的进行调用,轻松做到和其它网站不同的版式。\n七、自由化的权限分配管理\n前台权限:对商机和新闻等信息浏览和留言进行权限控制;后台权限:对企业会员发布信息的权限进行全面控制,可控制能否发和发多少条信息,为网站发展收费会员奠定基础!\n详细介绍:\n八、后台操作自由灵活\n九、其它更多功能\n\n商机信息:\n供应,求购,合作,招商,代理,加工 (可增加减少商机类别,可分别设置其流览,发布权限“可设定会员与VIP会员各自可以发布几条,\u003Cem\u003E是否\u003C\u002Fem\u003E可发”。)\n资讯信息:\n资讯可无限极分类\n包括行业新闻、企业新闻和价格行情,可设置子级分类,可设置其分类排序。\n会员注册:\n分两种会员结构,普通企业会员、诚信会员。\n展会部分: \n展会标题,展出时间,申请截止,周  期,创办时间,展会对象,","createTime":"2014-12-17 15:29:24","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxbtmlove\u002F8269851\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxbtmlove\u002F8269851\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-4-8269851-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fmfkjatddd\u002F2641660","title":"IIS6.0 IIS,互联网信息服务","desc":"Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XP Home版本上并没有IIS。\n\n添加和运行准备\n  一、IIS的添加 请进入“控制面板”,依次选“添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003E程序→添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003EWindows组件”,将“Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示操作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。   二、IIS的运行 当IIS添加成功之后,再进入“开始→设置→控制面板→管理工具→Internet服务管理器(Internet信息服务)”以打开IIS管理器,对于有“已停止”字样的服务,均在其上单击右键,选“启动”来开启。   三、在Windows XP Home版本中添加IIS的方法一般情况下按照“一”的方法只适\u003Cem\u003E用于\u003C\u002Fem\u003EWindows XP的专业版本,而对于家庭版,如今已有了破解方法:步骤1 首先我们需要准备一张Windows 2000的安装光盘,假设你的Windows XP家庭版安装在“C:\\Windows”,启动记事本程序,在打开对话框中选择打开“C:\\Windows\\inf\\sysoc.inf”,找到“[Components]”小节,并继续找到类似“iis= iis.dll,OcEntry,iis. inf,hide,7”的行,把这一行替换为“iis=iis2.dll,OcEntry, iis2.inf,,7”,之后保存文件。   步骤2 把Windows 2000专业版的光盘插入光驱,用Winrar打开光盘i386目录下的iis.dl_和iis. in_这两个CAB格式的文件,将解压缩得到的“iis.dll”改名为“iis2.dll”,复制到“C:\\Windows\\system32\\setup\\”目录下;将 “iis. inf”改名为“iis2.inf”,复制到“C:\\Windows\\inf\\”目录下。   步骤3 打开控制面板,单击“添加\u003Cem\u003E删除\u003C\u002Fem\u003E程序”图标,然后在窗口左侧导航栏上单击“添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003EWindows组件”按钮,在打开的“Windows组件向导” 中,选中“Internet信息服务(IIS)”前的复选框。单击右下角的“详细信息”按钮可以打开对话框,在该对话框中我们可以选择需要安装的IIS组件内容。选择完毕后单击“确定”按钮,退回到界面中再单击“下一步”,系统就会开始复制文件。 提示:如果在安装过程中系统需要插入Windows XP CD,或者需要你提供“exch_adsiisex.dll”文件,那是因为你按照默认的选项安装了IIS。要解决这个问题,只要清空“SMTP Service”选项前的复选框即可。如果进入窗口中,“Internet信息服务(IIS)” 选项无法选择,那么很可能因为你使用的“iis.dl_”和“iis. in_”是从Windows XP专业版中提取的,只要换成 Windows 2000专业版中的这两个文件即可。 步骤4 安装结束后,你可以打开“控制面板→性能和选项→管理工具”查看“Internet信息服务管理”。再打开IE,在地址栏中输入“localhost”后回车,验证一下IIS\u003Cem\u003E是否\u003C\u002Fem\u003E正常运行。 经过验证,WWW、FTP等几个服务经过这样的修改都可以在Windows XP家庭版上正常运行。不过经过这样处理安装的IIS在运行上可能存在某种未知的缺陷。   四、在Vista系统中安装IIS7.0相对于早先的版本,IIS 7.0 带来了许多引人注目的新特色新功能,比如基于 Microsoft .NET Framework 的全局配置文件,可简单地通过文本编辑器或 Microsoft Visual Studio 编辑;全新的 IIS 管理器,可同时管理 IIS 和 ASP. NET,操作更加方便;以及引入了命令行工具 Appcmd.exe ,给 Web 服务器的日常管理、监视和配置提供了除图形接口外的另一种方式,更为简单、高效。 同Windows XP一样,在Windows Vista的默认设置下,IIS (Internet 信息服务) 7.0未予安装,要想使用它,必须首先安装IIS。下面简单介绍IIS的安装过程: 依次点击“开始” =\u003E “控制面板” =\u003E “程序”,选择“打开或关闭Windows功能”。 这是\u003Cem\u003E一个\u003C\u002Fem\u003E触发UAC的操作,如果Windows Vista没有关闭UAC,则会\u003Cem\u003E弹出\u003C\u002Fem\u003E提示信息,\u003Cem\u003E确认\u003C\u002Fem\u003E并继续; 如果仅需要IIS 7.0支持静态内容,可直接选中“Internet信息服务”,如果希望 Web 服务器支持动态内容,则需展开“万维网服务”分支,将所需的选项全部选中; 点击“确定”,Windows Vista即启动IIS的安装过程; 安装完成后,打开浏览器输入 “http:\u002F\u002Flocalhost\u002F”,检查IIS\u003Cem\u003E是否\u003C\u002Fem\u003E正常。\n[编辑本段]IIS之Web服务器安装步骤\n  1、插入windows xp安装光盘,打开控制面板,然后打开其中的“添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003E程序”   2、在添加或\u003Cem\u003E删除\u003C\u002Fem\u003E程序窗口左边点击“添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003EWindows组建”[1]   3、捎带片刻系统会启动Windows组建向导,在Internet信息服务(IIS)前面选勾,点击下一步:   4、系统安装成功,系统会自动在系统盘新建网站目录,默认目录为:C:\\Inetpub\\wwwroot   5、打开控制面板-性能和维护-管理工具-Internet 信息服务:   6、在默认网站上点击右键-选择属性:   7、点击主目录:在本地路输入框后点击浏览可以更改网站所在文件位置,默认目录为:C:\\Inetpub\\wwwroot   在执行权限后面点击配置-调试-教本错误信息,选中:向客户端发送文本错误信息:处理 URL 时服务器出错。请与系统管理员联系。   点击文档:可以设置网站默认首页,推荐\u003Cem\u003E删除\u003C\u002Fem\u003Eiisstart.asp,添加index.asp和index.htm   点击目录安全性:点击编辑可以对服务器访问权限进行设置   8、把凡人网络购物系统V7.0文件复制到你选择的网站目录下,假设你选择的目录为为默认目录:C:\\Inetpub\\wwwroot   9、把frshop.rar解压之后的文件复制到C:\\Inetpub\\wwwroot\\shop下即可   10、您可以通过以下方式访问商城:   http:\u002F\u002Flocalhost\u002Fshop\u002F 或 http:\u002F\u002F127.0.0.1\u002Fshop\u002F 或 http:\u002F\u002F计算机名\u002Fshop\u002F 或 http:\u002F\u002F本机IP地址\u002Fshop\u002F 访问   其它人可以通过http:\u002F\u002F计算机名\u002Fshop\u002F 或 http:\u002F\u002F本机IP地址\u002Fshop\u002F 访问   11、如果您有域名,把域名解析到本地IP地址,即可通过http:\u002F\u002F域名\u002Fshop\u002F\n[编辑本段]IIS之Web服务器建立\n  第一篇 IIS之Web服务器   一、建立第\u003Cem\u003E一个\u003C\u002Fem\u003EWeb站点   比如本机的IP地址为192.168.0.1,自己的网页放在D:\\Wy目录下,网页的首页文件名为Index.htm,现在想根据这些建立好自己的Web服务器。   对于此Web站点,我们可以用现有的“默认Web站点”来做相应的修改后,就可以轻松实现。请先在“默认Web站点”上单击右键,选“属性”,以进入名为“默认Web站点属性”设置界面。   1.修改绑定的IP地址:转到“Web站点”窗口,再在“IP地址”后的下拉菜单中选择所需用到的本机IP地址“192.168.0.1”。   2.修改主目录:转到“主目录”窗口,再在“本地路径”输入(或用“浏览”按钮选择)好自己网页所在的“D:\\Wy”目录。   3.添加首页文件名:转到“文档”窗口,再按“添加”按钮,根据提示在“默认文档名”后输入自己网页的首页文件名“Index.htm”。   4.添加虚拟目录:比如你的主目录在“D:\\Wy”下,而你想输入“192.168.0.1\u002Ftest”的格式就可调出“E:\\All”中的网页文件,这里面的“test”就是虚拟目录。请在“默认Web站点”上单击右键,选“新建→虚拟目录”,依次在“别名”处输入“test”,在“目录”处输入“E:\\All”后再按提示操作即可添加成功。   5.效果的测试:打开IE浏览器,在地址栏输入“192.168.0.1”之后再按回车键,此时就能够调出你自己网页的首页,则说明设置成功!   注:具体不同的电脑会有不同的选项名称,但大体上还是可以找到了(多试一下)。   二、添加更多的Web站点   1.多个IP对应多个Web站点   如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web\u003Cem\u003E页面\u003C\u002Fem\u003E,则只需在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意\u003Cem\u003E用于\u003C\u002Fem\u003E说明它的内容(比如为“我的第二个Web站点”)、在“输入Web站点使用的IP地址”的下拉菜单处选中需给它绑定的IP地址即可;当建立好此Web站点之后,再按上步的方法进行相应设置。   2.\u003Cem\u003E一个\u003C\u002Fem\u003EIP地址对应多个Web站点   当按上步的方法建立好所有的Web站点后,对于做虚拟主机,可以通过给各Web站点设不同的端口号来实现,比如给\u003Cem\u003E一个\u003C\u002Fem\u003EWeb站点设为80,\u003Cem\u003E一个\u003C\u002Fem\u003E设为81,\u003Cem\u003E一个\u003C\u002Fem\u003E设为82……,则对于端口号是80的Web站点,访问格式仍然直接是IP地址就可以了,而对于绑定其他端口号的Web站点,访问时必须在IP地址后面加上相应的端口号,也即使用如 “http:\u002F\u002F192.168.0.1:81” 的格式。   很显然,改了端口号之后使用起来就麻烦些。如果你已在DNS服务器中将所有你需要的域名都已经映射到了此惟一的IP地址,则用设不同“主机头名”的方法,可以让你直接用域名来完成对不同Web站点的访问。   比如你本机只有\u003Cem\u003E一个\u003C\u002Fem\u003EIP地址为192.168.0.1,你已经建立(或设置)好了两个Web站点,\u003Cem\u003E一个\u003C\u002Fem\u003E是“默认Web站点”,\u003Cem\u003E一个\u003C\u002Fem\u003E是“我的第二个Web站点”,现在你想输入“www.enanshan. com”可直接访问前者,输入“www.popunet. com”可直接访问后者。其操作步骤如下:   (1)请确保已先在DNS服务器中将你这两个域名都已映射到了那个IP地址上;并确保所有的Web站点的端口号均保持为80这个默认值。   (2)再依次选“默认Web站点→右键→属性→Web站点”,单击“IP地址”右侧的“高级”按钮,在“此站点有多个标识下”双击已有的那个IP地址(或单击选中它后再按“编辑”按钮),然后在“主机头名”下输入“www.enanshan. com”再按“确定” 按钮保存退出。   (3)接着按上步同样的方法为“我的第二个Web站点”设好新的主机头名为“www.popunet.c o m”即可。   (4)最后,打开你的IE浏览器,在地址栏输入不同的网址,就可以调出不同Web站点的内容了。   3.多个域名对应同个Web站点   你只需先将某个IP地址绑定到Web站点上,再在DNS服务器中,将所需域名全部映射向你的这个IP地址上,则你在浏览器中输入任何\u003Cem\u003E一个\u003C\u002Fem\u003E域名,都会直接得到所设置好的那个网站的内容。   搭建IIS服务器应该注意的安全问题   1.iis安全设置之安装系统补丁。对于服务器来说就特别重要,因为安全补丁关乎到系统安全,而微软网站经常发布最新的系统安全补丁,可以用系统自带的windows update程序随时更新。   2.iis安全设置之FTP目录的设定。FTP目录没有设置也容易被别人攻击,一般的就是将主目录指定到逻辑盘。为了安全,要对对每个目录按不同的用户设置不同的访问权限,然后关闭一些不需要的服务,这样可以对不良人士利用IIS溢出漏洞访问到系统盘作个第一级防护。   3.iis安全设置之端口设置。IIS有默认的端口设置,只要稍有计算机知识的人都会记得这些端口的,要破解的话就十分的方便,所以尽量不要使用21这个默认端口号,并启用日志,以便FTP服务出现异常时检查。\n[编辑本段]对IIS服务的远程管理\n  三、对IIS服务的远程管理   1.在“管理Web站点”上单击右键,选“属性”,再进入“Web站点”窗口,选择好“IP地址”。   2.转到“目录安全性”窗口,单击“IP地址及域名限制”下的“编辑”按钮,点选中“授权访问”以能接受客户端从本机之外的地方对IIS进行管理;最后单击“确定”按钮。   3.则在任意计算机的浏览器中输入如“http:\u002F\u002F192.168.0.1:3598”(3598为其端口号)的格式后,将会出现\u003Cem\u003E一个\u003C\u002Fem\u003E密码询问窗口,输入管理员帐号名(Administrator)和相应密码之后就可登录成功,现在就可以在浏览器中对IIS进行远程管理了!在这里可以管理的范围主要包括对Web站点和FTP站点进行的新建、修改、启动、停止和\u003Cem\u003E删除\u003C\u002Fem\u003E等操作。\n[编辑本段]有关IIS的常见问题解答\n  四、本部分常见问题解答   Q:在上文中所涉及到的网址中,有的加了“http:\u002F\u002F”,有的没加,这意味着什么呢?   A:没有加“http:\u002F\u002F”部分的网址,说明其可加可不加;而加了“http:\u002F\u002F”部分的,则说明它必不可少!对于带端口号的网址则必须加;否则可省略。   Q:对于上文中涉及到IP地址的网址,可否用比较“友好”的名称来代替呢?   A:可以!它除了能够用IIS服务器所在的计算机名来代替之外,还可在DNS服务器中新建域名和相应IP地址的映射表,就也可以用域名来进行访问了!   Q:我设置好了\u003Cem\u003E一个\u003C\u002Fem\u003EWeb服务器,但是当我访问网页时,却出现密码提示窗口。这是为什么?   A:访问Web站点时,出现密码提示窗口,一般来说有以下原因,请逐个去进行检查:   1.所访问的网页文件本身加了密。比如“默认Web站点”原主目录“E:\\Inetpub\\wwwroot”下的首页文件“iisstart.asp”访问时就需要密码。   2.没有设置允许匿名访问或作了不应该的改动.首先应确保已勾选中了“匿名访问”这一项;并且其下“编辑”中“匿名用户帐号”中“用户名”一项应为“IUSR_NODISK”(其中“NODISK”为计算机名)的格式;另外,还需要已勾选中“允许IIS控制密码”一项。   3.你的目标目录被限制了访问权限。此项仅当该目录位于NTFS格式分区中时才可能出现。请在其上单击右键,选“属性”,再进入“安全”窗口,看列表中是不是默认的允许“Everyone”组完全控制的状态,如不是,请改回 。\n[编辑本段]IIS之FTP服务器\n  第二篇 IIS之FTP服务器   一、建立你的FTP站点   第\u003Cem\u003E一个\u003C\u002Fem\u003EFTP站点(即“默认FTP站点”)的设置方法和更多FTP站点的建立方法请参照前文Web服务器中相关操作执行。需要注意的是,如果你要用\u003Cem\u003E一个\u003C\u002Fem\u003EIP地址对应多个不同的FTP服务器,则只能用使用不同的端口号的方法来实现,而不支持“主机头名”的做法。   对于已建立好的FTP服务器,在浏览器中访问将使用如“ftp:\u002F\u002F192.168.0.1”或是“ftp:\u002F\u002F192.168.0.1:22的格式”;除了匿名访问用户(Anonymous)外,IIS中的FTP将使用Windows 2000自带的用户库(可在“开始→程序→管理工具→计算机管理”中找到“用户”一项来进行用户库的管理)。 最后,关键一步还有就是将你的电脑变为网络中的一台服务器,所以你要在你的电脑中装上\u003Cem\u003E一个\u003C\u002Fem\u003E合适的代理服务器软件并运行。   二、本部分常见问题解答   Q:如何修改FTP服务器登录成功或退出时的系统提示信息?   A:在相应的FTP站点上单击右键,选“属性”,再转到“消息”窗口,在“欢迎”处输入登录成功之后的欢迎信息,在“退出”处输入用户退出时的欢送信息即可。   Q:为什么我的FTP服务器建立成功之后,除了管理员(Administrator)和匿名用户(Anonymous)之外,普通用户都不能在本机上登录;可在其他计算机上却能够正常使用。这是为什么?   A:因为默认的,普通用户不具有在本机登录的权限。如果要修改,请进入“开始→程序→管理工具→本地安全策略”中选择“左边框架→本地策略→用户权利指派”,再在右边框架中双击“在本地登录”项,然后将所需的普通用户添加到它的列表中去就行了。\n[编辑本段]IIS之SMTP服务器\n  第三篇 IIS之SMTP服务器   如果你嫌互联网上的那些免费邮件发送邮件的速度过慢的话,你或许可以考虑用IIS来建立\u003Cem\u003E一个\u003C\u002Fem\u003E本地的SMTP服务器。不管你是直接连入互联网还是通过局域网接入,不管你是有静态的IP地址还是用动态的IP地址,都可以很轻松地建立成功!   建立IIS下的SMTP服务器的方法非常简单,只需在IIS管理器中让“默认SMTP虚拟服务器”处于已启动状态就行了;此外一般不用再做其他任何设置。   如果你想要用自己的SMTP服务器发信,只需将你E-mail客户端软件设置中“发送邮件服务器(SMTP)”项中填入“localhost”,则不管你的IP地址如何变化,它都能正常工作, 。   当你使用自己的这个SMTP服务器发送E-mail时,不仅有不受制于人的自由感,更有闪电般的发信速度,是个人SMTP服务器的最佳选择!   IIS版本对应的windows版本信息   2000 iis版本是5.0   xp 版本是5.1   2003版本是6.0   2008版本是7.0\n[编辑本段]IIS 状态解释\n概要\n  当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回\u003Cem\u003E一个\u003C\u002Fem\u003E表示该请求的状态的数字代码。该状态代码记录在 IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体请求\u003Cem\u003E是否\u003C\u002Fem\u003E已成功,还可以揭示请求失败的确切原因。\n更多信息\n  日志文件的位置   在默认状态下,IIS 把它的日志文件放在 %WINDIR\\System32\\Logfiles 文件夹中。每个万维网 (WWW) 站点和 FTP 站点在该目录下都有\u003Cem\u003E一个\u003C\u002Fem\u003E单独的目录。在默认状态下,每天都会在这些目录下创建日志文件,并用日期给日志文件命名(例如,exYYMMDD.log)。   HTTP   1xx - 信息提示   这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收\u003Cem\u003E一个\u003C\u002Fem\u003E或多个 1xx 响应。 • 100 - 继续。   • 101 - 切换协议。   2xx - 成功   这类状态代码表明服务器成功地接受了客户端请求。 • 200 - 确定。客户端请求已成功。   • 201 - 已创建。   • 202 - 已接受。   • 203 - 非权威性信息。   • 204 - 无内容。   • 205 - 重置内容。   • 206 - 部分内容。   3xx - 重定向   客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的\u003Cem\u003E页面\u003C\u002Fem\u003E,或通过代理服务器重复该请求。 • 302 - 对象已移动。   • 304 - 未修改。   • 307 - 临时重定向。   4xx - 客户端错误   发生错误,客户端似乎有问题。例如,客户端请求不存在的\u003Cem\u003E页面\u003C\u002Fem\u003E,客户端未提供有效的身份验证信息。 • 400 - 错误的请求。   • 401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: • 401.1 - 登录失败。   • 401.2 - 服务器配置导致登录失败。   • 401.3 - 由于 ACL 对资源的限制而未获得授权。   • 401.4 - 筛选器授权失败。   • 401.5 - ISAPI\u002FCGI 应用程序授权失败。   • 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。   • 403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: • 403.1 - 执行访问被禁止。   • 403.2 - 读访问被禁止。   • 403.3 - 写访问被禁止。   • 403.4 - 要求 SSL。   • 403.5 - 要求 SSL 128。   • 403.6 - IP 地址被拒绝。   • 403.7 - 要求客户端证书。   • 403.8 - 站点访问被拒绝。   • 403.9 - 用户数过多。   • 403.10 - 配置无效。   • 403.11 - 密码更改。   • 403.12 - 拒绝访问映射表。   • 403.13 - 客户端证书被吊销。   • 403.14 - 拒绝目录列表。   • 403.15 - 超出客户端访问许可。   • 403.16 - 客户端证书不受信任或无效。   • 403.17 - 客户端证书已过期或尚未生效。   • 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。   • 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。   • 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。   • 404 - 未找到。 • 404.0 -(无) – 没有找到文件或目录。   • 404.1 - 无法在所请求的端口上访问 Web 站点。   • 404.2 - Web 服务扩展锁定策略阻止本请求。   • 404.3 - MIME 映射策略阻止本请求。   • 405 - 用来访问本\u003Cem\u003E页面\u003C\u002Fem\u003E的 HTTP 谓词不被允许(方法不被允许)   • 406 - 客户端浏览器不接受所请求\u003Cem\u003E页面\u003C\u002Fem\u003E的 MIME 类型。   • 407 - 要求进行代理身份验证。   • 412 - 前提条件失败。   • 413 – 请求实体太大。   • 414 - 请求 URI 太长。   • 415 – 不支持的媒体类型。   • 416 – 所请求的范围无法满足。   • 417 – 执行失败。   • 423 – 锁定的错误。   5xx - 服务器错误   服务器由于遇到错误而不能完成该请求。 • 500 - 内部服务器错误。 • 500.12 - 应用程序正忙于在 Web 服务器上重新启动。   • 500.13 - Web 服务器太忙。   • 500.15 - 不允许直接请求 Global.asa。   • 500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。   • 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。   • 500.100 - 内部 ASP 错误。   • 501 - 页眉值指定了未实现的配置。   • 502 - Web 服务器用作网关或代理服务器时收到了无效响应。 • 502.1 - CGI 应用程序超时。   • 502.2 - CGI 应用程序出错。application.   • 503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。   • 504 - 网关超时。   • 505 - HTTP 版本不受支持。   常见的 HTTP 状态代码及其原因   • 200 - 成功。 此状态代码表示 IIS 已成功处理请求。   • 304 - 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。   • 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。   • 401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。例如,如果 IUSR 帐户无权访问 C:\\Winnt\\System32\\Inetsrv 目录,您会看到这个错误。   • 403.1 - 执行访问被禁止。 下面是导致此错误信息的两个常见原因: • 您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。   • 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射\u003Cem\u003E是否\u003C\u002Fem\u003E设置为允许所使用的谓词。   • 403.2 - 读访问被禁止。验证\u003Cem\u003E是否\u003C\u002Fem\u003E已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件\u003Cem\u003E是否\u003C\u002Fem\u003E存在。   • 403.3 - 写访问被禁止。 验证 IIS 权限和 NTFS 权限\u003Cem\u003E是否\u003C\u002Fem\u003E已设置以便向该目录授予写访问权。   • 403.4 - 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该\u003Cem\u003E页面\u003C\u002Fem\u003E。   • 403.5 - 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该\u003Cem\u003E页面\u003C\u002Fem\u003E。   • 403.6 - IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。   • 403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。   • 403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。   • 403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。   注意:Microsoft Windows 2000 PRofessional 和 Microsoft Windows XP PRofessional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。   • 403.12 - 拒绝访问映射表。 您要访问的\u003Cem\u003E页面\u003C\u002Fem\u003E要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。   • 404 - 未找到。 发生此错误的原因是您试图访问的文件已被移走或\u003Cem\u003E删除\u003C\u002Fem\u003E。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。   • 500 - 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。   • 500.12 - 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新\u003Cem\u003E页面\u003C\u002Fem\u003E后,此信息即会消失。如果刷新\u003Cem\u003E页面\u003C\u002Fem\u003E后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。   • 500-100.ASP - ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。   • 502 - 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。\n[编辑本段]IIS相关总结\n  IIS是Internet Information Server的缩写,它是微软公司主推的服务器,最新的版本是Windows7里面包含的IIS 7.0,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。   IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。   IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。   IIS支持服务器应用的Microsoft BackOffice系列,Microsoft BackOffice系列包括以下内容:   1,Microsoft Exchange Server 客户\u002F服务器通讯和群组软件;   2,Mirrosoft Proxy Server 代理服务器;   3,\u003Cem\u003E用于\u003C\u002Fem\u003E连接IBM企业网络的Microsoft SNA Server;   4,\u003Cem\u003E用于\u003C\u002Fem\u003E集中管理分布式系统的Microsoft Systems Management Server;   5,Microsoft Commercial Internet System(MCIS)。   IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。   IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Nerwork Management Protocol,简单网络管理协议)之类的NT已有管理工具。   IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。\u003Cem\u003E用于\u003C\u002Fem\u003E32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多\u003Cem\u003E用于\u003C\u002Fem\u003EInternet邮件扩展),它可以为Internet应用程序的访问提供\u003Cem\u003E一个\u003C\u002Fem\u003E简单的注册项。   IIS的\u003Cem\u003E一个\u003C\u002Fem\u003E重要特性是支持ASP。IIS 3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。   GHOST系统不能安装IIS处理方法:   1、在控制面板→添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003E程序→添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003EWindows组件中应该没IIS给你选的。   3、下载软件XP-IISpatch,运行修复后在添加\u002F\u003Cem\u003E删除\u003C\u002Fem\u003EWindows组件中就会出现IIS。接着就和一般情况下安装IIS一样了,不过途中需要多次重新指定你所下载的IIS安装包。但如果你不幸安装途中出现无法复制文件之类的错误无法安装,就要在DOS命令提示符下运行“esentutl \u002Fp %windir%\\security\\database\\secedit.sdb”修复secedit.sdb文件,点YES就可以了,但保险起见最好在运行XP-IISpatch修复后就输入命令修复secedit.sdb文件,等出错后再修复secedit.sdb文件有可能导致无法继续安装。   4、由于是安装包装的,因此还有后续工作要做,不然有可能会出错。   5、开始→运行,输入msdtc -resetlog,解决无法进入“控制台根目录”-\u003E\"组件服务\"-\u003E\"计算机\"-\u003E\"我的电脑\"-\u003E\"COM+应用程序\"和 进入“控制台根目录”-\u003E\"组件服务\"-\u003E\"计算机\"-\u003E\"我的电脑\"-\u003E\"COM+应用程序\", 出错,错误代码8004E00F-COM+无法与Microsoft分布式事务协调程序 。\n[编辑本段]IIS 5.1和IIS 6.0一些显著的重要区别\n核心功能和服务\n  已对 IIS 6.0 进行了重新设计以便利用基本 Windows 内核 HTTP.sys。这使其具有内置的响应和请求缓存和队列功能,并能够将应用程序进程请求直接路由到工作进程,从而改善可靠性和性能。 IIS 6.0 引入了两种\u003Cem\u003E用于\u003C\u002Fem\u003E配置应用程序环境的操作模式:工作进程隔离模式和 IIS 5.0 隔离模式。在安装 IIS 6.0 时默认的隔离模式取决于您执行的是全新安装还是升级。 在全新安装 IIS 6.0 之后,IIS 以工作进程隔离模式运行。   在从较低版本的 IIS 6.0 升级之后,隔离模式与以前安装的 IIS 6.0 版本所配置的相同。   在从 IIS 5.0 或 IIS 4.0 升级之后,在默认情况下,IIS 6.0 以 IIS 5.0 隔离模式运行,这样可保持与现有应用程序的兼容性。   有关从一种隔离模式切换到另一种隔离模式的信息,请参阅配置隔离模式。   \n IIS 5.0 IIS 5.1 IIS 6.0 \n平台 Windows 2000 Windows XP Professional Windows Server 2003 家族 \n体系结构 32 位 32 位和 64 位 32 位和 64 位 \n应用程序进程模型 TCP\u002FIP 内核   DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) TCP\u002FIP 内核   DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机) HTTP.sys 内核   当 IIS 以 IIS 5.0 隔离模式运行时:Inetinfo.exe(对于进程内应用程序)或 DLLhost.exe(对于进程外应用程序) 当 IIS 以工作进程隔离模式运行时:W3wp.exe(多工作进程) \n配置数据库配置 二进制 二进制 XML \n安全性 Windows 身份验证   SSL Kerberos Windows 身份验证   SSL Kerberos 安全向导 Windows 身份验证   SSL Kerberos 安全向导 Passport 支持 \n远程管理 HTMLA 无 HTMLA   终端服务 远程管理工具 (HTML)   终端服务 \n群集支持 IIS 群集 Windows 支持 Windows 支持 \nWWW 服务 Windows 9x 上的个人 Web 管理器   Windows 2000 上的 IIS (可选)Windows XP Professional 上的 IIS Windows \n\nIIS 5.0 隔离模式\n  IIS 5.0 隔离模式按照与 IIS 5.0 中的进程管理相似的方式管理应用程序进程:所有的进程内应用程序都在 Inetinfo.exe 内运行,进程外应用程序在单独的 DLL 宿主中运行。一些现有应用程序可能无法并发运行或将会话状态与应用程序分开存储。因此,在 IIS 5.0 隔离模式中运行进程可以确保与大多数现有应用程序的兼容性。下图显示如何在 IIS 5.0 隔离模式中处理应用程序进程。\n配置数据库配置\n  IIS 6.0 的配置数据库以 XML 文件形式存储,而不是以早期版本中的二进制格式存储。位置仍在原处,但是操作方式(更新、回滚、还原和扩展)已发生了变化。有两个重要文件,并非\u003Cem\u003E一个\u003C\u002Fem\u003E:MetaBase.xml 和 MBSchema.xml。 有关 IIS 配置数据库的详细信息,请参阅关于配置数据库。 管理   在 IIS 4.0 中,应用程序既可以在与 Internet 服务相同的进程中运行,也可以在单独的进程中运行。在 IIS 5.0 和 5.1 中,应用程序现在可以分为若干汇集的进程以增强性能并提高可伸缩性。 详细信息,请参阅关于应用程序。在 IIS 6.0 工作进程隔离模式中,可将应用程序组合到任意数量的应用程序池中。   “应用程序映射”属性页包含\u003Cem\u003E一个\u003C\u002Fem\u003E超文本传输协议 (HTTP) 动作列表,它们可由映射到特定文件类型的应用程序进行处理。该动作列表与 IIS 4.0 有一处不同。在 IIS 4.0 中,列表中包含“已排除”或未被处理的动作。这个改变是为了适应新的 HTTP 动作,以便将其添加到协议中。 有关应用程序映射的详细信息,请参阅设置应用程序映射。   群集不是 IIS 6.0 的功能(不支持 IISsynche.exe)。群集是 Windows Server 2003 家族的功能。有关 Windows 群集 (MSCS) 的信息,请参阅 Windows Server 2003 家族的帮助。   与 IIS 4.0 相比,IIS 5.0 中自定义错误文件的位置已经改变。 详细信息,请参阅启用详细的自定义错误消息。   已经添加了新的自定义错误文件,以便报告更详细的错误信息以及与新功能有关的错误。 有关可用的自定义错误消息的完整列表,请参阅关于自定义错误消息。   基于 Web 的 Internet 服务管理器 (HTML) 已经由 Web 工具应用。要使用 Internet 服务管理器 (HTML) 远程管理 IIS, 请参阅如何远程管理服务器。\n以编程方式管理\n  在早期版本的 IIS 中,可以从编译的 C++ 应用程序使用管理基本对象 (ABO) 或者从 C++ 或脚本文件使用 Active Directory 服务界面 (ADSI) 以编程方式管理 IIS。IIS 6.0 包括了 Windows 管理规范 (WMI) 提供程序,WMI 这一技术允许管理员以编程方式控制所有服务和应用程序。详细信息,请参阅使用 IIS WMI 提供程序。有关新的 ADSI 方法的信息,请参阅 IIS 6.0 中的配置数据库更改。 Active Server Pages   从 IIS 6.0 开始,Microsoft Active Server Pages (ASP) 可以与 Microsoft ASP.N E T 一起使用。有关配置 IIS 以运行 ASP.N E T 应用程序的信息,请参阅 ASP.N E T。有关 IIS 6.0 中 ASP 功能更改的信息,请参阅 ASP 中的重要更改。 ASP 挂起检测   当 IIS 网站繁忙时,可能会出现这种情况:已经产生了最大数量的 ASP 线程,而一些 ASP 线程却挂起,这会导致性能降低。IIS 6.0 能够通过回收作为 ASP ISAPI 扩展 (ASP.dll) 的特定实例宿主的工作进程来解决线程挂起问题。当 ASP 线程在 IIS 6.0 中挂起时,ASP.dll 调用 ISAPI 服务器支持函数 HSE_REQ_REPORT_UNHEALTHY,WWW 服务回收作为 ASP.dll 宿主的工作进程,并在事件日志中创建\u003Cem\u003E一个\u003C\u002Fem\u003E项目。 有关 ISAPI 服务器支持函数的详细信息,请参阅 MSDN® Online 上 ISAPI 扩展参考中的 ServerSupportFunction。 安全性   IIS 6.0 中的\u003Cem\u003E一个\u003C\u002Fem\u003E最重要的变动涉及 Web 服务器安全性。为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS 安装在 Microsoft Windows Server 2003 家族的成员上。 要点 为了更好地预防恶意用户和攻击者的攻击,没有将 IIS 默认安装到 Microsoft® Windows® Server 2003 家族的成员上。而且,当您最初安装 IIS 时,该服务在高度安全和“锁定”的模式下安装。在默认情况下,IIS 只为静态内容提供服务 - 即,ASP、ASP.N E T、服务器端包含、WebDAV 发布和 FrontPage® Server Extensions 等功能只有在启用时才工作。如果安装 IIS 之后未启用该功能,则 IIS 返回\u003Cem\u003E一个\u003C\u002Fem\u003E 404 错误。您可以为动态内容提供服务,并通过 IIS 管理器中的 Web 服务扩展节点启用这些功能。同样,如果应用程序扩展未在 IIS 中进行映射,则 IIS 返回\u003Cem\u003E一个\u003C\u002Fem\u003E 404 错误。要映射扩展,请参阅设置应用程序映射。有关如何排解 404 错误(包括 404.2 和 404.3)、与 IIS 6.0 的新安装相关的问题或从低版本的 IIS 进行升级的详细信息,请参阅疑难解答。 通过 Web 服务器证书向导和 CTL 向导,您可以同步 Web 和 NTFS 的安全设置、获得并安装服务器证书以及创建和修改证书信任列表。还可以选择\u003Cem\u003E一个\u003C\u002Fem\u003E加密服务提供程序 (CSP) 以使用证书加密数据。 详细信息,请参阅使用证书向导。 IIS 6.0 中的其他安全性变动包括下列内容: 在升级版本上禁用:除非满足下列条件之一,否则在 Windows Server 2003 家族的升级版本上禁用万维网发布服务(WWW 服务):   在开始升级过程之前,您已在 Windows 2000 Server 上运行了 IIS 锁定向导。IIS 锁定向导通过禁用不必要的功能来减少攻击面,并且它允许您确定为站点启用哪些功能。IIS Lockdown Tool 中提供了 IIS 锁定向导。\n要点\n  如果使用 WWW 服务,则强烈建议您在升级到 Windows Server 2003 家族中的产品之前,在 Windows 2000 Server 上运行 IIS 锁定向导。IIS 锁定向导通过禁用或\u003Cem\u003E删除\u003C\u002Fem\u003E Windows 2000 Server 安装中不需要的功能来保护计算机的安全。否则,升级后计算机上仍保留这些功能,这会使您的服务器易受攻击。 注册表项 RetainW3SVCStatus 已添加到注册表中 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC 的下面。在 RetainW3SVCStatus 下,您可以添加任何值,然后给它赋予\u003Cem\u003E一个\u003C\u002Fem\u003E DWORD 值。例如,您可以创建注册表项 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC\\RetainW3SVCStatus\\do_not_disable,并且 DWORD 值为 1。   对于无人参与的安装,“DisableWebServiceOnUpgrade = false”项存在于无人参与的安装脚本中。   通过组策略禁用 IIS:通过使用 Windows Server 2003 家族成员,域管理员可以禁止用户在其计算机上安装 IIS。   以具有低级访问权限的帐户运行:IIS 工作进程在访问权限极少的用户上下文中运行。这大大减少了潜在攻击的影响。   提高 ASP 的安全性:所有的 ASP 内置功能总是以具有极少访问权限的帐户 IUSR_computername 运行。   运行可执行文件的限制:为了运行系统文件夹中的大多数可执行文件(如 cmd.exe),您必须是 Administrators 组、LocalSystem、Interactive 或 Service 帐户的成员。该限制限制了对 Administrators 的远程访问,因此匿名用户无法运行可执行文件。   修补程序管理:对于修补程序管理,管理员可在不中断服务的情况下安装最新的安全修补程序。   已知的扩展:IIS 只为对具有已知文件扩展名的文件的请求提供服务。如果请求内容的文件扩展名未映射到已知的扩展,则服务器拒绝请求。   内容的写保护:在默认情况下,拒绝匿名用户(以 IUSR_computername 帐户运行)对 Web 内容进行写入访问。   超时和限制:在 IIS 6.0 中,默认设置是安全而主动的,这样可最大限度地减少因以前太宽松的超时和限制而造成的攻击。   上载数据限制:管理员可以限制能上载到服务器的数据。   缓冲区溢出保护:工作进程会检测缓冲区溢出,并在检测到时退出程序。   文件验证:IIS 在将请求发送到请求处理程序(ISAPI 扩展)之前会验证请求的内容\u003Cem\u003E是否\u003C\u002Fem\u003E存在。   索引资源:该权限现在会在默认情况下启用。   脚本资源访问:该权限允许访问 ASP 页脚本和其他脚本的“源代码”,它是新增功能,且在默认情况下被禁用。它可在选择了“读取”或“写入”权限时可用。   子验证:在新安装的 IIS 6.0 中,在默认情况下不再启用。有关详细信息,请参阅 匿名身份验证中的“使用子验证”部分。   UNC 身份验证:在此版本的 IIS 中,UNC 身份验证方法检查\u003Cem\u003E是否\u003C\u002Fem\u003E有用户凭据。详细信息,请参阅 UNC 身份验证。   新策略:“禁止安装 IIS”策略已经添加到 Windows Server 2003 产品家族中。该策略允许域管理员控制可以在域中哪些计算机上安装 IIS。详细信息, 请参阅 Windows 帮助中的组策略。   Fortezza:已取消了对该功能的支持。\n性能\n  为了限制分配给 ASP 页的内存量,IIS 已经将 AspScriptFileCacheSize 的默认值设置为 250 个 ASP 页,并将 AspScriptEngineCacheMax 的默认值设置为 125 个脚本引擎。在具有一组大量经常请求的 ASP 页的站点上,可以将 ASPScriptFileCacheSize 设置得更高一些。因为 ASP 页的编译比从缓存中检索页要慢很多,所以这会改善性能。在只具有少量经常请求的 ASP 页的站点上,可通过将该数字设置得小一些来节省内存。 IIS 工具组件   Windows NT Server 的协作数据对象 (CDONTS):CDONTS 已从 Windows Server 2003 家族中\u003Cem\u003E删除\u003C\u002Fem\u003E。如果 Web 应用程序使用 CDONTS,则可以将它们转换为 Microsoft 协作数据对象 (CDO)。CDONTS 中的大多数方法在 CDO 中都有相匹配的方法,但是名称可能不同。有关平台软件开发工具包 (PSDK) 中 CDO 的参考资料,请参阅 MSDN Online 上的 Overview of CDO。   未安装 IIS 工具组件:Ad Rotator、Browser Capabilities、Content Linker、Content Rotator、Counters、Logging Utility、My Info、Page Counter、Status 和工具不随 IIS 6.0 一起安装。但是,如果您的 Web 服务器是从低版本的 IIS 升级的,则这些工具组件不会被\u003Cem\u003E删除\u003C\u002Fem\u003E。您可以从 IIS 6.0 资源工具包中获取工具组件 DLL 文件的副本。   64 位 Windows Server 2003 家族上的 IIS   在 64 位 Windows Server 2003 家族的操作系统上,IIS 作为 64 位应用程序运行。这意味着不能从 64 位 Windows Server 2003 家族的操作系统上的 IIS 调用 32 位应用程序。例如,Jet 数据库引擎将不能转换为 64 位应用程序,因此,不能使用 ActiveX® 数据对象 (ADO) 从 ASP 页打开 Microsoft Access 数据库。但是,仍可以使用 ADO 访问其他驱动程序,如 SQL 和 Exchange。","createTime":"2010-08-23 21:20:55","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fmfkjatddd\u002F2641660\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fmfkjatddd\u002F2641660\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Rate-5-2641660-bbs-340060108.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1715350283198_65407\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"}],"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\u002F340060108","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F340060108","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":["340060108"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F340060108","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F340060108","active":0,"navBarFixed":false,"title":"asp.net的页面怎么弹出一个提示框,用于是否确认删除","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":340060108},"keywords":"","description":"以下内容是CSDN社区关于asp.net的页面怎么弹出一个提示框,用于是否确认删除相关内容,如果想了解更多关于.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>