用.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頁面交互。