用.Net开发3年,主要接触资产管理,生产流程,质量追溯,.Net在这方面还是很靠谱的。2月低接触FineUI,那时版本是3.0+,第一眼让我想起了ExtJs,其实就是用.Net封装了ExtJs让ASP.NET开发更有效率,实际用起来确实是这样。
ASP.NET的回发确实让人头疼,很多东西即使结合前台Js也用的很别扭,而ExtJs在.Net开发环境下又很复杂完全是另一种语言,即使后来有ExtJs For .Net也用不好,结果是没用起来。FineUI处理回发的机制刚好结合了ExtJs和 ASP.NET的优点,让开发变的灰常简单,反正我是这么认为。
好的软件产品要包括以下几点。功能,功能强大能满足实际的各种复杂需求这是最基本的;简易,分两方面一是程序开发要快速简单,减少开发周期,软件成本降低,好的框架必不可少,二是软件操作快捷用起来直观方便;美观,好的UI让人享受,不了解软件的人甚至也有要操作的欲望。我不敢过于抬高FineUI框架,我只能说基本能满足简易和美观两点,我用着足够了。
3月正式启用FineUI框架升级产品。开发中亦遇到了许多问题,大大改变了原来的代码逻辑,不用再处理讨厌的回发,前台JS省了一大片,而且代码全部开源,细心研究也可以学到很多东西,甚至改出适应自己的控件。FineUI集成了很多ASP.NET常用的控件,但毕竟是在ExtJs上搭的所以前台渲染上和ASP.NET控件无甚大关系。SO,记录分享一下开发过程中遇到和解决的问题。让更多的人脱离苦海。教程要自己去看,我不教,我不是大师,不要高看我,我是CodingFarmer别喷我。实际开发环境是FineUI 4.0.4
1.实例代码中GetClientIDS方法
没有什么必要,开始我也没看清,其实就是输出个控件的ClientID,ClientID会在HTML呈现时自动生成,前台的控件写上 ClientIDMode="Static" 就能在前台找到直接F(‘控件ID’)即可。
2.建议使用页面及配置及每个页加上<%@ Register Assembly="FineUI" Namespace="FineUI" TagPrefix="f" %>
沾行代码并不费力,我的项目比较大有的功能不能避免FineUI和ASP.NET页面混合用所以不写成站点及配置,可以兼容多个组件。在FineUI页面下混用ASP.NET控件也不提倡,除非有特殊功能。
3.编辑页面回发
编辑页面后自动刷新父页面列表,__doPostBack得到了解放。直接上代码
1 function ActiveWindowBack() { 2 var activeWindow = F.wnd.getActiveWindow(); 3 activeWindow.window.__doPostBack('', 'SaveMs_' + F('_hidPageIndex').getValue() + '_' + F('_hidSelectIndex').getValue()); 4 }
getValue()是得到值,activeWindow.window就是上级页面的意思,后台保存完数据后即可提示和刷新
Alert.Show(resultMsg, "提示", "ActiveWindowBack();");
Alert.Show()输出的是个Div,在点击弹出提示的确认后执行前台ActiveWindowBack方法
父页面接收
01.if (GetRequestEventArgument().IndexOf("SaveMs") >= 0) 02. { 03. string SaveMs = GetRequestEventArgument(); 04. BindQueryUserInfo(); 05. try 06. { 07. Grid1.PageIndex = Convert.ToInt32(SaveMs.Split('_')[1]); 08. Grid1.SelectedRowIndex = Convert.ToInt32(SaveMs.Split('_')[2]); 09. } 10. catch { } 11. }
下次将介绍页面排版技巧灵活运用FingUI.Grid及常用Js,后续还有各种Iframe页面交互。