FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 822622|回复: 72
打印 上一主题 下一主题

常见问题解答(必读)

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-5-9 07:57:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式




1. 本论坛禁止小广告和一帖多发
希望注册个用户来发小广告的用户请绕行,一经发现绝不留情。
FineUI 的第一个论坛就是被小广告淹没的,这次论坛重开,只允许通过QQ账号登陆也是这个目的。


不要一贴多发,否则会严肃处理。

2. 选择适合自己的开发框架


我不止一次的对 FineUI 和 Ext.Net这两个框架做过说明,FineUI 是由三生石上独立开发完成的基于 jQuery / ExtJS 的开发框架,Ext.Net是由国外公司开发的基于ExtJS的开发框架,各自都有自身的优缺点,请大家根据自己的实际情况选择适合自己的开发框架。

http://www.cnblogs.com/sanshi/archive/2012/02/11/2347235.html 这篇文章中,我曾对此进行过详细的说明:
FineUI 与ExtJS,ExtNet,ExtJsExtender的区别?
ExtJS是纯JavaScript的控件库,所以适用于后台为PHP,ASP.NET或者JSP的项目,并且是ExtAspNet和其他库的基础。

ExtNet是国外一家公司开发的基于ExtJS的ASP.NET控件库,从功能上讲比较完善,不过开发模型相对复杂,如果你喜欢ExtNet的开发风格或者需要使用ASP.NET MVC,可以尝试这个控件库。

ExtJsExtender是一个比较早的基于ExtJS的ASP.NET控件库,但是功能过于简陋,长期没有更新,并且对ASP.NET AJAX有依赖。

FineUI(开源版) 是一组基于ExtJS的ASP.NET控件库。最大的优点就是简单实用。基于ASP.NET2.0,项目中只需要引用 FineUI 的 DLL 和 JSON 的DLL即可。还要注意 FineUI 只适合WebForm的项目,不适合ASP.NET MVC的项目。

注:由于这里是 FineUI 的官方论坛,因此为了避免初学者对两者的混淆,禁止关于Ext.Net的技术讨论,有关Ext.Net的讨论请移步到Ext.Net官网论坛:http://forums.ext.net/


3. FineUI 不支持IE6,IE7

FineUI 不支持IE6, IE7,因为目前主流的操作系统已经是Windows7,Windows10(可以使用IE8+),并且国内有很多Webkit内核浏览器(比如360浏览器,搜狗浏览器,QQ浏览器等等)。

另:IE8 有限支持。由于 IE8 发布时间早,不支持很多现代HTML5、CSS3特性,因为 FineUI 对 IE8 仅提供有限支持,并且性能也是所有支持浏览器中最差的。
基于显示效果和性能考虑,推荐用户使用最新版的浏览器(比如Chrome、Firefox、Edge、IE11)。



4. FineUI(开源版)是完全免费的,但是extjs是收费的

FineUI(开源版)是完全免费的,基于Apache 2.0协议,因此你不需要向 FineUI 作者支付任何费用(如果你确实想的话,可以捐赠作者)。

但是 FineUI(开源版) 内置了extjs,如果应用于商业项目开发的话,需要获得 extjs 的授权。

企业客户可以考虑购买FineUI(专业版):http://fineui.com/pro/


5. FineUI 依赖于Newtonsoft.Json.dll
FineUI.dll只有一个版本,无论你的项目是2.0、3.5、4.0,都只需要引用同一个FineUI.dll即可。

而Newtonsoft.Json.dll在每个DotNet下都有自己的版本,比如你的项目是基于.Net 2.0的,就要引用json.net\Net20\Newtonsoft.Json.dll,如果你的项目是基于.Net 4.0的,就要引用json.net\Net40\Newtonsoft.Json.dl。

如果引用不正确,可能会出现各种问题!


6. 模板列显示undefined(基于DotNet4.0的项目,一定要注意!)
为Web.config中<system.web>的<page>标签添加 controlRenderingCompatibilityVersion 和 clientIDMode 两个属性。
  1.     <pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
  2.           <controls>
  3.             <add assembly="FineUI" namespace="FineUI" tagPrefix="f" />
  4.           </controls>
  5.         </pages>
复制代码
否则会出现表格中数据错位的情况!!
http://fineui.com/bbs/forum.php?mod=viewthread&tid=678


7. FineUI(开源版)的设计时支持需要购买商业授权

FineUI.Design是为FineUI(开源版)提供 VS 设计时支持的,需要购买商业授权,您可以通过购买此授权来支持FineUI的不断发展;如果不购买FineUI.Design授权,会在VS设计界面显示错误信息,但不会影响FineUI(开源版)的正常使用,请放心。

http://fineui.com/bbs/forum.php?mod=viewthread&tid=2169


8. IIS 5的经典错误 Method Not Allowed (405)
如果大家遇到如下类似的问题:

不允许用于访问路径“/”的 HTTP 谓词 POST。

本次页面请求失败!错误信息:Method Not Allowed (405)

请首先看这两个帖子来寻求解决办法:
http://fineui.com/bbs/forum.php?mod=viewthread&tid=111
http://fineui.com/bbs/forum.php?mod=viewthread&tid=1002


9. IIS7,AXD,404的经典错误

可能是IIS7 integrated mode 下导致的,参考这篇文章:
http://stackoverflow.com/questio ... integrated-pipeline
http://kenchell.blog.163.com/blo ... 092010101724918338/

如果是 IIS 是集成模式(Integrated Mode):
你需要在 system.webServer 节下面加上:
  1. <add name="FineUIResAxd" verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI"/>
复制代码
完整的 system.webServer 如下:
  1. <system.webServer>
  2.         <modules>
  3.                         <add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/>
  4.         </modules>
  5.                 <handlers>
  6.             <add name="FineUIResAxd" verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI"/>
  7.         </handlers>
  8.     </system.webServer>
复制代码

如果 IIS 是经典模式:则需要把 httpModules 和 httpHandlers 添加到 system.web 节下面:
  1. <system.web>
  2.     <pages>
  3.       <controls>
  4.         <add assembly="FineUIPro" namespace="FineUIPro" tagPrefix="f"/>
  5.       </controls>
  6.     </pages>
  7.    
  8.     <httpModules>
  9.       <add name="FineUIProScriptModule" type="FineUIPro.ScriptModule, FineUIPro"/>
  10.     </httpModules>

  11.     <httpHandlers>
  12.       <add verb="GET" path="res.axd" type="FineUIPro.ResourceHandler, FineUIPro" validate="false"/>
  13.     </httpHandlers>
  14. <system.web>
复制代码


在VS中开发时,默认使用内置的 IIS Express 服务器,你也可以方便的更改 IIS Express 的经典还是集成模式:
  • VS中选中项目,点击 F4
  • 显示属性窗口,方便的更改管道模式:

   


10. IE10 出现 __doPostBack 未定义的脚本错误


这是微软自己的BUG,需要在服务器上下载安装补丁:http://support.microsoft.com/kb/2600088
当客户使用 IE10,IE11访问运行 .Net Framework 4.0 的服务器页面时,可能会出现这个问题。.Net Framework 4.5 已经修复了这个BUG。
参考文章:
http://stackoverflow.com/questions/18244223/webform-dopostbackwithoptions-is-undefined-in-ie11-preview
http://stackoverflow.com/questions/18485339/dopostback-failing-in-ie-11-windows-8-1




11. 验证视图状态MAC失败

如果你在虚拟主机中部署ASP.NET应用,长时间放置页面后回发页面,可能会出现如下错误:
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

这是因为IIS默认使用自动生成的计算机密钥(MachineKey)来对ASP.NET的视图状态进行加密和验证,而虚拟主机的环境中这个MachineKey可能会被改变。因此我们需要在web.config中指定MachineKey,具体生成MachineKey的办法参考:
http://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx

一个典型的配置项如下所示:
  1. <machineKey decryptionKey="C955D0B041D3749FB4E150677F827DC1857B909399A5D152,IsolateApps" validationKey="891194EEC95A3895658E397FEA04F6187CFAF77151BE89F207D993BB4BA9DE4152BACB05BC4AEB8BBB5FDD950F77881204F59F3F5DBE39FC3EC49119EA7C106D,IsolateApps" />
复制代码


12. 检测到在集成的托管管道模式下不适用的ASP.NET设置

如果遇到这个错误,说明你的网站在IIS的集成模式下运行,你可以有两个选择:

【在IIS中设置网站在经典模式下运行】  或者  【简单修改 Web.config】
http://fineui.com/bbs/forum.php?mod=viewthread&tid=2136

这是一个常见问题,如果还是搞不定,请借助互联网搜索!



在VS中开发时,默认使用内置的 IIS Express 服务器,你也可以方便的更改 IIS Express 的经典还是集成模式:
  • VS中选中项目,点击 F4
  • 显示属性窗口,方便的更改管道模式:

   




13. Could not load file or assembly Newtonsoft.Json, Version=4.5.0




请使用VS自带的 Nuget 安装最新的 Newtonsoft.Json 库,或者手工为 Web.config 添加如下配置项:
  1. <configuration>
  2.         ......
  3.   <runtime>
  4.     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  5.       <dependentAssembly>
  6.         <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
  7.         <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  8.       </dependentAssembly>
  9.     </assemblyBinding>
  10.   </runtime>
  11. </configuration>
复制代码


特别注意,删除 Web.config 中 <configuration> 节的 xmlns 属性:
  1. <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
复制代码
修改为:
  1. <configuration>
复制代码

特别注意,如果你在使用VS2012,请升级最新补丁 VS2012 SP4 离线升级包

14. 页面存在两个表格(Grid)时,出现的各种错位、不显示

在开源版中,确保页面中任意两个表格列的 ColumnID 不能重复!  专业版无此问题!
http://fineui.com/bbs/forum.php?mod=viewthread&tid=6236



15. VS2013打开项目,出现 F 未定义的错误

修改Web.config文件:
1. 删除 system.web 中的 httpModules 和 httpHandlers 两个配置项
2. 增加 system.webServer 配置项

下载适用于 VS2013 的 Web.config 文件(精简版):



16. IE8浏览器中出现JS错误:'Element' 未定义

1. 请正确设置 Web.config 或者 PageManager 中的属性 IEEdge (默认值就是true,无需设置)
2. 查看每个页面的 DOCTYPE 声明,如果类似如下形式:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
复制代码
请改为:
  1. <!DOCTYPE html>
复制代码

注意:第 2 条决定了浏览器所使用的文本模式,如果是 Transitional 设置,则浏览器可能会使用 Quirks文本模式,从而导致出现JS错误。


17. 【专业版】JS错误:'F' 未定义
这个错误一般是 JavaScript 未能正常加载导致的。如果你 F12 打开浏览器的调试工具,转到 网络(Network)选项卡,会发现 res.axd?js=f.js&t=22123  的链接的返回状态是 404!

解决办法:http://fineui.com/demo_pro/#/demo_pro/config/modify_webconfig.aspx


特别注意Web服务器是集成模式,还是经典模式,两者对应的 Web.config 配置不同!!
经典默认的典型配置:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.   <configSections>
  4.     <section name="FineUIPro" type="FineUIPro.ConfigSection, FineUIPro" requirePermission="false" />
  5.   </configSections>
  6.   
  7.   <FineUIPro Theme="Cupertino" />
  8.   
  9.   <system.web>
  10.     <!-- Net4.0以上的项目,一定要为pages节点加上这两个属性:controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID" -->
  11.     <pages>
  12.       <controls>
  13.         <add assembly="FineUIPro" namespace="FineUIPro" tagPrefix="f" />
  14.       </controls>
  15.     </pages>

  16.     <httpModules>
  17.       <add name="FineUIProScriptModule" type="FineUIPro.ScriptModule, FineUIPro" />
  18.     </httpModules>
  19.         
  20.     <httpHandlers>
  21.       <add verb="GET" path="res.axd" type="FineUIPro.ResourceHandler, FineUIPro" validate="false" />
  22.     </httpHandlers>
  23.   </system.web>
  24.   
  25. </configuration>
复制代码

集成模式的典型配置:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.   <configSections>
  4.     <section name="FineUIPro" type="FineUIPro.ConfigSection, FineUIPro" requirePermission="false" />
  5.   </configSections>
  6.   
  7.   <FineUIPro Theme="Cupertino" />
  8.   
  9.   <system.web>
  10.     <!-- Net4.0以上的项目,一定要为pages节点加上这两个属性:controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID" -->
  11.     <pages>
  12.       <controls>
  13.         <add assembly="FineUIPro" namespace="FineUIPro" tagPrefix="f" />
  14.       </controls>
  15.     </pages>
  16.   </system.web>

  17.   <system.webServer>
  18.     <modules>
  19.       <add name="FineUIProScriptModule" type="FineUIPro.ScriptModule, FineUIPro"/>
  20.     </modules>
  21.     <handlers>
  22.       <add name="FineUIProResourceHandler" verb="GET" path="res.axd" type="FineUIPro.ResourceHandler, FineUIPro"/>
  23.     </handlers>
  24.   </system.webServer>

  25. </configuration>
复制代码


如果使用 FormAuthentication,还要注意添加 res.axd 的例外,如下所示:
  1. <authentication mode="Forms">
  2.           <forms name=".ASPXFORMSAUTH" loginUrl="~/default.aspx" timeout="120" defaultUrl="~/main.aspx" protection="All" path="/"/>
  3.         </authentication>
  4.         <authorization>
  5.           <deny users="?"/>
  6.         </authorization>
  7. </system.web>

  8. <location path="res.axd">
  9.         <system.web>
  10.           <authorization>
  11.                 <allow users ="*" />
  12.           </authorization>
  13.         </system.web>
  14. </location>
复制代码



在VS中开发时,默认使用内置的 IIS Express 服务器,你也可以方便的更改 IIS Express 的经典还是集成模式:
  • VS中选中项目,点击 F4
  • 显示属性窗口,方便的更改管道模式:

   



18. 【专业版】无效授权

This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

错误信息:


解决办法:运行里,输入组策略gpedit.msc,在安全选项里,禁用FIPS功能


19. 【专业版】GetRequestIPMAC出现异常(Provider failure, COMException)
错误信息:


尝试的解决办法:
1. 关闭服务器的 UAC
2. 首先执行命令行: iisreset,将网站所属的应用程序池(App Pool)的 加载用户配置文件(Load User Profile)设为 true


详情:http://fineui.com/bbs/forum.php?mod=viewthread&tid=6619


20. 【专业版】IE8下,IFrame 交互时可能会随机出现字体图标丢失的问题

这个是 IE8 的已知 BUG, FontAwesome 官网论坛已经确认这个问题,没有解决办法。

这个问题出现有两个条件:
1. Iframe 页面之间交互时(比如关闭启用Iframe的窗体控件)
2. 页面上使用了图标字体(比如FineUIPro中使用的FontAwesome字体)

在这两个条件同时满足时,会随机出现字体图标丢失的问题,经常发生在多次打开(关闭)启用Iframe的窗体控件的时候。


解决办法:
1. 避免使用IE8浏览
  • Windows7、8、10,请使用Chrome、Firefox、Edge或者IE11浏览器
  • WindowsXP下,请使用Chrome、Firefox,或者带有极速模式的国内浏览器(比如搜狗浏览器、360浏览器等,本质都是Chrome内核)
2. 页面交互时避免使用启用IFrame的窗体控件

由于这个是IE8自身在处理 IFrame 和 图标字体时的BUG,所以没有更好的解决办法。

参考资料:
  • https://github.com/FortAwesome/Font-Awesome/issues/5115
  • https://github.com/FortAwesome/Font-Awesome/issues/2324
  • https://github.com/FortAwesome/Font-Awesome/issues/954
  • https://github.com/FortAwesome/Font-Awesome/issues/929
  • http://www.samiam.org/blog/20110619.html
  • http://kenneth.kufluk.com/blog/2010/02/losing-face-with-ie8/





21. 开源版安全漏洞(影响v3.3.0-v4.2.2之前的所有版本)

如果已发布的项目中使用了 FineUI(开源版)v3.3.0-v4.2.2之间的任一版本,请立即删除 Web.config 中的如下配置项:
<httpHandlers>
        <add verb="GET" path="res.axd" type="FineUI.ResourceHandler, FineUI" validate="false" />
</httpHandlers>
否则,恶意用户可以利用此漏洞下载项目中的任何文件(包括Web.config、DLL),从而导致密码泄露,服务器被攻击!

详情:http://fineui.com/bbs/forum.php?mod=viewthread&tid=7863





22. CS0234: 命名空间“System”中不存在类型或命名空间名称“DirectoryServices”

当然,这个错误和 FineUI 无关!


如果是 .Net4.0 项目,请在 Web.config 中添加如下配置项:
  1. <compilation debug="true" targetFramework="4.0" >
  2.       <assemblies>
  3.         <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
  4.       </assemblies>
  5.     </compilation>
复制代码



详情:http://stackoverflow.com/questions/10691001/the-type-or-namespace-name-directoryservices-does-not-exist-in-the-namespace





23. 禁用 VS 的 Browser Link 功能

如果你发现自己的网页源代码中有类似如下的代码:
  1. <!-- Visual Studio Browser Link -->
  2. <script type="application/json" id="__browserLink_initializationData">
  3.     {"appName":"Firefox","requestId":"861592d477c64fd590b602a9f006c074"}
  4. </script>
  5. <script type="text/javascript" src="http://localhost:2968/f26bea4f8e6a45868431324e7994cd75/browserLink" async="async"></script>
  6. <!-- End Browser Link -->
复制代码

请关闭 VS 的 Browser Link 功能:



详情:http://q.cnblogs.com/q/56059/



24. 请求筛选模块被配置为拒绝超过请求内容长度的请求(超过30M的文件上传出错)

这是因为 IIS7 默认的上传文件大小限制为 30M,除了设置:

  1. <system.web>
  2. <!-- 请求正文的最大值: 100 * 1024 = 102400KB = 100M  -->
  3.     <httpRuntime maxRequestLength="102400" executionTimeout="120" />

  4.   ...........

  5. </system.web>
复制代码

之外,还需要设置:
  1. <system.webServer>
  2.     <security>
  3.       <requestFiltering>
  4.         <!-- 请求正文的最大值: 100 * 1024 * 1024 = 104857600 bytes = 100M (IIS 7 默认文件上传大小时30M)  -->
  5.         <requestLimits maxAllowedContentLength="104857600" />
  6.       </requestFiltering>
  7.     </security>
  8.   </system.webServer>
复制代码

参考文档:
http://www.cnblogs.com/JKqingxin ... /10/29/2744663.html
https://msdn.microsoft.com/en-us/library/ms689462(v=vs.90).aspx

http://fineui.com/bbs/forum.php?mod=viewthread&tid=947


25. 表格 DataBind() 函数执行慢

有两点需要注意:
1. 如果用到 EntityFramework,请确保所有查询数据都已加载,而不是延迟加载。

2. 确保 DataField、DataToolTipField 等属性对应的名称和数据源中的名称一致!!!
    不正确的指定  DataField 会导致 try-catch 的执行,会严重影响性能。有测试表明,本来 0.0001s 执行完成的绑定操作,可能会被推迟到 1.0s 以上。



26. 表格中字体异常(关闭弹出窗体后,原来页面字体变大)
如果出现如下图所示的表格中字体异常的现象:


请页面设置正确的文档类型:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
复制代码

详情:http://fineui.com/pro/upgrade.html


有网友遇到在弹出窗体关闭后,原来页面上的字体变大了:

原来的页面:


点击打印后,原来页面上字体变大:


原因是,点击打印时网友改变了HTML结构,在<html>标签外边输出了<script>标签,如下所示:




27. 检测到有潜在危险的Request.Form值

页面回发时出现类似如下错误框:




请注意设置页面声明:<%@ Page  validateRequest="false" ...>

帖子:
http://fineui.com/bbs/forum.php?mod=viewthread&tid=4456
http://fineui.com/bbs/forum.php?mod=viewthread&tid=3962
http://fineui.com/bbs/forum.php?mod=viewthread&tid=6529


28. Failed to read the frame property from Window

当一个网站A内嵌在另一个网站B的IFrame里面,并且A试图在B页面弹出窗体(FineUI的Window控件),会出现如下错误:


这个是浏览器的安全策略限制,请绕行!!

相关帖子:http://fineui.com/bbs/forum.php?mod=viewthread&tid=4336



29. woff2 + 404.3 Not Found  --> 请添加 MIME 映射


虽然字体所在的路径的确存在,但是却报 404.3 错误,原因是 IIS 不能识别文件类型,需要我们手工添加 MIME 映射:

1. IIS服务器
打开IIS管理器 >> MIME >> 添加下面对应的扩展名和MIME类型

文件扩展名
MIME类型
.svg
image/svg+xml
.woff
application/x-font-woff
.woff2
application/x-font-woff



2. VS开发时用的 IIS Express服务器
点击网站名称,找到IIS Express配置文件路径,然后找到这个文件,用记事本打开,查找mimeMap节点,添加需要的扩展名和MIME类型并保存,完成!







  1. <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
  2.                         <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
复制代码




参考文章:
1. http://www.cnblogs.com/hanwen/p/4212622.html
2. http://www.tuicool.com/articles/v6vauuM




30. 无法添加类型为“add”的重复集合项
详细的错误信息:在唯一密匙属性“name”设置为“fineuiproproscriptmodule”时,无法添加类型为“add”的重复集合项


原来是当前网站部署为虚拟目录,上层网站也有Web.config,导致重复添加项。


解决办法:当网站部署为单独的网站,可以通过不同的端口号区分(不要部署为虚拟目录)。

帖子:http://fineui.com/bbs/forum.php?mod=viewthread&tid=8600



31. 不支持HTML的autocomplete属性


HTML的autocomplete属性的详细描述:http://www.w3school.com.cn/html5/att_form_autocomplete.asp

但是这个所谓的表单自动完成功能仅在正常提交表单时有效,在AJAX提交时浏览器并不会记忆表单的值,所以在FineUI中用不到。

我们会默认在表单的 form 标签上添加 autocomplete=off 属性,这一点开源版和专业版保持一致。



32. SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3


如果在 IE 中遇到这个问题(Chrome、Firefox应该不会出现这个问题),请先尝试关闭IIS的Keep-Alive机制:

进入站点设置,然后选择HTTP Response Headers设置,点击Set Common Headers,将Enable HTTP keep-alive复选框取消选中即可。




参考:
1. http://www.cnblogs.com/OpenCoder/p/5089258.html
2. http://stackoverflow.com/questio ... etwork-error-0x2ef3





32.  数字位数不要超过 16 位!(JavaScript能精准表达的最大整数:9007199254740992)

如果遇到如下的诡异问题:




请检查你是否遇到了精度大于 16 位的整数,JavaScript 中能精准表示的最大整数是 Math.pow(2, 53),也即是:9007199254740992

  1. 9007199254740992 + 1 // 丢失
  2. 9007199254740992 + 2 // 未丢失
  3. 9007199254740992 + 3 // 丢失
  4. 9007199254740992 + 4 // 未丢失
复制代码



另一个例子:
  1. var a = 12094719425249281; a
复制代码



解决办法:
方法一:避免使用超过 16 的整数数字(如果这个不可避免,请使用方法二)
方法二:使用字符串类型(string),而不是长整形(long)


参考资料:http://www.cnblogs.com/snandy/p/4943138.html



33.  导出excel时长数字变成了科学计数法(2.63562E+15)

实际身份号:2635621982021530
导出后的身份证号的格式是:2.63562E+15

可以在导出时指定 Excel 解析方式:
  1. sb.AppendFormat("<td style='vnd.ms-excel.numberformat:@;width:140px;'>{0}</td>", html);
复制代码

参考:http://fineui.com/bbs/forum.php?mod=viewthread&tid=6592



34.   行绑定时列属性改变对第一行无效(RowDataBound和PreRowDataBound)

如果要实现表格每一行渲染的内容不同,则需要改变列属性。很多网友发现在行绑定事件中改变列属性时,对第一列无效!!


其实这个并不是BUG,道理也很简单:行绑定时,行内的数据已经绑定结束,此时改变列属性已经不能再应用到本行数据了。

解决办法:
将 RowDataBound 事件改为 PreRowDataBound 事件!!

参考:
  • http://www.cnblogs.com/sanshi/archive/2012/10/19/2730381.html
  • http://fineui.com/bbs/forum.php?mod=viewthread&tid=1711
  • http://fineui.com/bbs/forum.php?mod=viewthread&tid=3408
  • http://fineui.com/bbs/forum.php?mod=viewthread&tid=3705



35.  [开源版]如何从FineUI v3.x 升级到 v4.x 版本(老版本升级)?

FineUI v3.x 与  FineUI v4.x 的差异比较大(根本原因是内部使用的extjs版本的变化比较大),所以升级过程会比较麻烦。

一般推荐的升级步骤是:
1. 先下载 《FineUI3to4一键升级工具》,并严格按照使用方法操作!!
2. 更新项目使用的 FineUI.dll  和  extjs 目录(extjs目录版本要和DLL版本一致!!)
3. 使用VS自带的NUGET升级JSON库:Newtonsoft.Json.dll  
4. 编译项目,全面测试(肯定会遇到问题,请参考版本升级记录,耐心调试)
版本升级记录:
http://fineui.com/version

参考帖子:
《FineUI3to4一键升级工具》: http://fineui.com/bbs/forum.php?mod=viewthread&tid=5018
http://fineui.com/bbs/forum.php?mod=viewthread&tid=6003
http://fineui.com/bbs/forum.php?mod=viewthread&tid=6370
http://fineui.com/bbs/forum.php?mod=viewthread&tid=4889



36.  同源策略,Same Origin Policy,Domain,跨域

如果遇到类似的错误:




表明,你再进行跨域的JavaScript操作,这个是被浏览器明令禁止的行为!!没有变通的余地(否则就是浏览器的安全BUG了)

如果想在IFrame内访问外部页面,或者在外部页面访问IFrame内,则必须保证两个页面的URL前缀一样。

下面举例说明:


参考:
【同源策略】:http://en.wikipedia.org/wiki/Same-origin_policy
http://fineui.com/bbs/forum.php?mod=viewthread&tid=4336


如果你使用FineUI开发的页面,嵌入到其他不同域的页面中,需要确保所有弹出窗体和对话框都在本页面中显示,对于Window控件必须设置Target=Self。


37.  登录超时如何跳出框架页(顶层窗口)

这个问题说白了也很简单,和 FineUI 没有关系,几行JS代码搞定。

在你的登录页面加入如下几行JS代码,确保登录页面不能嵌入IFrame,比如在顶层打开:
  1. <script type="text/javascript">        
  2. // 本页面一定是顶层窗口,不会嵌在IFrame中        
  3. if (top.window != window) {               
  4. top.window.location.href = "./default.aspx";        
  5. }
  6. </script>
复制代码


其实这个问题最早是在 AppBox 中遇到的,后来我给 AppBox 的 default.aspx 加了这段JS脚本解决了。



38.  VS2017打开AppBoxPro/Mvc后连不上数据库

VS2017打开AppBoxPro项目后,Ctrl+F5直接运行,报错如下所示:


这是因为AppBoxPro默认使用VS自带的LocalDb数据库,而在VS2013下此数据库实例在Web.config中配置的:
  1. <entityFramework>
  2.     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  3.       <parameters>
  4.         <parameter value="v11.0" />
  5.       </parameters>
  6.     </defaultConnectionFactory>
  7.     <providers>
  8.       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  9.     </providers>
  10.   </entityFramework>
复制代码
而在VS2017中,配置节为:
  1. <entityFramework>
  2.     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  3.       <parameters>
  4.         <parameter value="<span style="color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, 微软雅黑, Arial, sans-serif; white-space: pre-wrap; background-color: rgb(250, 251, 252);">mssqllocaldb</span>" />
  5.       </parameters>
  6.     </defaultConnectionFactory>
  7.     <providers>
  8.       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  9.     </providers>
  10.   </entityFramework>
复制代码


因此,如果你使用VS2017打开AppBoxPro/Mvc,则需要将Web.config中的 v11.0 改为 mssqllocaldb。


39. ASP.NET项目第一次页面加载很慢,第二次就快了(预编译)


这是因为第一次运行时,ASP.NET会对项目中的.aspx, .ascx及App_Code中的.cs文件进行动态编译,而这一过程随着项目的规模增大变得越来越慢。
遇到这种情况,就要用预编译:用aspnet_compiler命令,命令示例:
aspnet_compiler -v \ -p G:\SourceWebSite G:\TargetWebsite -fixednames


参数说明:
-v \  要编译的虚拟路径,这里表示根路径。
-p G:\SourceWebSite 要编译的源Web项目所在文件夹。
G:\TargetWebsite 编译目标文件夹。

-fixednames 每个.aspx与.ascx文件都编译生成单独的dll文件,并使用固定文件名。



参考:
http://www.cnblogs.com/dudu/archive/2011/02/07/aspnet_compiler_precompilation.html
https://blog.csdn.net/qq285679784/article/details/78361695
http://www.cnblogs.com/artech/archive/2007/05/26/760292.html
http://fineui.com/bbs/forum.php?mod=viewthread&tid=21520


40. 如何获取子表格(设置行过滤条件)

表格后台数据绑定时,代码一般如下所示:
  1. DataTable table = DataSourceUtil.GetDataTable();
  2.       
  3. Grid1.DataSource = table;
  4. Grid1.DataBind();
复制代码

有时,我们需要对表格在内存中进行过滤,可以参考如下两个代码:
  1. DataTable table = DataSourceUtil.GetDataTable();

  2. DataTable newTable = table.Clone();
  3. foreach (var item in table.Select("Gender=1"))
  4. {
  5.         newTable.ImportRow(item);
  6. }
  7.       
  8. Grid1.DataSource = newTable;
  9. Grid1.DataBind();
复制代码

或者更简单:
  1. DataTable table = DataSourceUtil.GetDataTable();
  2.             
  3. DataView newView = table.DefaultView;
  4. newView.RowFilter = "Gender=1";

  5. Grid1.DataSource = newView.ToTable();
  6. Grid1.DataBind();
复制代码


41. Grid删除行时,发现Grid1.SelectedRowIndexArray.Length 一直等于0

检查下 Page_Load 中是否少了 IsPostBack 的判断!
详情:http://fineui.com/bbs/forum.php?mod=viewthread&tid=21856


42. 升级基础版后,提示不支持EnableAnimation


这是因为FineUIPro(基础版)不支持CSS3动画效果,可以查看官网首页的基础版与企业版功能对比

解决办法很简单,在 Web.config 中去掉 EnableAnimation 配置项或者设为false即可:

  1. <FineUIPro DebugMode="false" EnableAnimation="false"  />
复制代码

43. 企业版如何进行版本升级?

企业版版本升级很简单,只需要如下步骤:
1. 替换 DLL。
2. 从相应版本的在线示例源代码中,拷贝如下目录到你的项目中:FineUIPro.Examples\res\themes。3. 重新编译项目,认真测试。

其实第 2 步也很容易理解,FineUIPro.Examples\res\themes 里面存放的都是自定义主题,而自定义主题可能会随着版本更新有所变化。

版本升级之后一定要重新编译,并对照更新记录认真测试,请预留足够的测试时间!!!


44. 在 afteredit 中调用 updateCellValue 更新单元格时错位

如下图所示:



在表格的 afteredit 事件中,我们希望根据 金额 和 外币汇率 算出折合人民币并更新此列的值。

但是有点意外的是:在单元格处于编辑状态时,点击下一行,当前点击行的 [折合人民币] 列得到了更新,而不是失去焦点的那一行!

为什么会这样呢?看下代码就知道了:


原来,更新单元格时用的行ID是这么来的:
  1. var grid8RowId = grid8.getSelectedCell()[0];
复制代码
这就不对了,getSelectedCell返回的是当前选中的单元格,而不是失去焦点的单元格多对应的行。

正确的写法应该是从事件参数中获取:
  1. var grid8RowId = p.rowId;
复制代码


参考示例:http://pro.fineui.com/#/gridedit ... ecellvalue_tax.aspx





45. 菜单显示错位

如下图所示:


出现这个问题,应该是你把 Menu 控件放到其他控件里面了,类似如下代码:


这是错误的,在FineUI中有一个规则必须遵守:
Window、Menu、HiddenField 控件放到 </form> 标签的前面,不要放到任何控件中!

在开源版的升级指南中有说明:http://fineui.com/pro/upgrade.html


46. FineUIMvc视图中ViewBag错误提示?
使用 FineUIMvc 项目的视图中,ViewBag下面可能会有错误提示:One or more types required to compile a dynamic expression cannot be found.



如果遇到类似提示,可以通过在 Web.config 中添加配置项属性来解决:
<system.web>
    <compilation debug="true" targetFramework="4.5"/>
</system.web>


注:targetFramework要和你的项目保持一致,不一定就是4.5,如果你的项目使用的.Net Framework 4.6.1,那么这里就应该是:<compilation debug="true" targetFramework="4.6.1"/>


47. FineUIMvc中表格数据为空,日期选择器时间为00:00:00?
出现这个问题,可能是设置控件数据的属性位置不对,一般来说FineUIMvc中设置控件数据的属性要放到最后面,比如:
1. 表格的 DataSource 属性
2. 日期选择器的 SelectedDate 属性
.....

其中的道理也很简单:设置控件属性时可能会用到其他属性,比如设置表格 DataSource 时会用到前面的 Columns 属性定义,而设置日期选择器的 SelectedDate 属性时会用到 DateFormatString 属性。

如果不遵守这个规则,就会遇到奇怪的问题,下面举例说明:

错误用法一:





错误用法二:





48. FineUIPro升级后排版错乱(字体变大了)
这是因为我们在 FineUIPro v5.0 时将默认字体从 13px 改为 14px 了,这也是紧跟Web前端UI潮流趋势。

但是,如果你已经有项目在运行中,希望能保持之前的字体大小,怎么办呢?

在企业版中,只需要在 Web.config 中增加配置项即可(如果你PageBase中设置了DisplayMode属性,确保修改到位):
  1. <FineUIPro DebugMode="true" CustomTheme="pure_green" EnableAnimation="true" DisplayMode="Small" />
复制代码

注:DisplayMode配置项基础版不可用,在基础版中,推荐使用默认的字体大小,如果确实需要更改,可以自行为每个页面引入css文件,在其中定义字体大小。


49. 官网示例部署到图标字体显示错误(问号)
本机运行正常,一旦部署到服务器,大部分图标字体显示为问号,如图所示。


本机运行正常,一旦部署到服务器,大部分图标字体显示为问号,如图一所示。

这是由于编码问题,默认FineUIPro项目和文件都是utf-8编码,如果部署到服务器后,父站点或者全部配置项采用的是gb2312编码,就会出现这个错误。

修正方法也很简单,强制请求响应都使用utf-8编码,修改Web.config文件,在<system.web>节内部添加配置项:
<system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8"  />
</system.web>


50. 表格中显示为&,但是文本输入框中显示为&


在这个官网示例中:https://pro.fineui.com/#/grid/grid_form.aspx
如果修改数据源,将【张萍萍】修改为【张萍&萍】时:
  1. DataRow row = table.NewRow();
  2.             row[0] = 101;
  3.             row[1] = "张萍&萍";
  4.             row[2] = 2000;
  5.             row[3] = true;
  6.             row[4] = "材料科学与工程系";
  7.             row[5] = 1;
复制代码
页面就会出现比较诡异的情况:


这是因为FineUIPro中表格列默认启用了服务端HTML编码(HtmlEncode),你也可以禁用此特性,如下所示:
  1. <f:RenderField Width="80px" ColumnID="Name" DataField="Name" HeaderText="姓名" HtmlEncode="false">
  2. </f:RenderField>
复制代码


当然,大部分情况下启用HTML编码是安全的,防止在页面渲染时执行了内嵌的JavaScript代码。


51. IFrame嵌套出错(Load denied by X-Frame-Options:  ************* does not permit cross-origin framing

错误截图如下:


X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame>, <iframe> 或者 <object> 中展现的标记。

网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。


他的值:

(1)DENY --- 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

(2)SAMEORIGIN --- 表示该页面可以在相同域名页面的 frame 中展示。

(3)ALLOW-FROM https://example.com/ --- 表示该页面可以在指定来源的 frame 中展示。

         如果是不限制   则配置 ALLOWALL ,但是就不安全了

来源:https://blog.csdn.net/lipei1220/article/details/78119584



52. 页面数据包含</script>标签
如果页面数据中包含 </script> 标签,会导致页面出现严重错误!

因为每当浏览器遇到</script>时,它都假定是脚本的结束标签(即使它出现在JavaScript字符串中),因此下载的脚本在浏览器中就会出错!
比如下面看似正常的脚本:
  1. <script type="text/javascript">
  2.         alert("</script>");
  3. </script>
复制代码
其实是错误的! 浏览器会把这段脚本解析为 <script type="text/javascript">alert("</script>,从而出错,如下所示:


所以要避免向前台输出任何包含 </script> 的字符串。

参考:
1. https://stackoverflow.com/questions/236073/why-split-the-script-tag-when-writing-it-with-document-write
2. https://stackoverflow.com/questions/1659749/script-tag-in-javascript-string


53. 企业版部署后,每隔几次回发就出现JS错误!

这是一位 FineUIPro(企业版)客户发现的问题,错误截图类似:

经分析发现,每次出现这个错误之前都会弹出开发授权过期的提醒,类似如下所示:


这是因为每次授权提醒时,都会清空回发数据,导致页面状态不正确。

遇到这样的问题,解决方法很简单:企业版部署后,一定要生成服务器授权文件!

服务器授权文件的说明:https://fineui.com/pro/lic.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
推荐
发表于 2012-8-17 10:14:14 | 只看该作者
支持大侠!上半年用这个ExtAspNet做了一个项目,一个星期前又有一个类型的东东,原计划学学用Ext.Net做,但太复杂花了几天时间后放弃了,又改回ExtAspNet并捐了点钱!决心支持ExtAspNet开发,以后只要用这个做一个项目,就捐赠一次。
推荐
发表于 2013-6-13 10:51:39 | 只看该作者
KaKarot 发表于 2013-6-13 10:31
空项目在哪啊 我对比着在线实例配置的配置文件,  我下到Newtonsoft.Json4.0了 不知道怎么配置。  ...

都在这:http://fineui.com/bbs/forum.php?mod=viewthread&tid=2123
沙发
发表于 2012-5-9 08:45:35 | 只看该作者
板凳
发表于 2012-5-11 16:14:04 | 只看该作者
支持,严重支持!
地板
发表于 2012-5-16 16:07:14 | 只看该作者
{:soso_e130:}支持,比Ext.Net好学多了···
5#
发表于 2012-5-19 08:30:09 | 只看该作者
初学者学习。
6#
发表于 2012-5-25 16:10:25 | 只看该作者
支持!简单易用!
7#
发表于 2012-6-27 02:45:14 | 只看该作者
刚用。表示支持
8#
发表于 2012-7-16 15:59:49 | 只看该作者
墙裂支持啊!!!!
9#
发表于 2012-8-8 06:13:57 | 只看该作者
支持支持
10#
发表于 2012-8-16 02:28:16 | 只看该作者
支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-24 11:22 , Processed in 0.064703 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表