常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

          詳解Silverlight 4中RIA Service dataform Template, 代碼選擇控件及Validate驗證的技巧

          本文和大家分享一下Silverlight 4 RIA Service dataform Template, 代碼選擇控件,Validate驗證使用技巧
          功能 
          定義只讀,新增,編輯三塊模塊
           
          定義模板的目的是更好的復用和提高XAML代碼的可讀性和可維護性,也可以更好的分工合作。下面是一個歸并關(guān)系的維護界面。 
           

           
          主要有表頭,多個表體組成,為了把所有操作盡量在一個頁面中完成,表頭使用一個DataForm空間,表體使用DataGrid和DataForm組合實現(xiàn)。
          而DataForm有三種狀態(tài)分別是只讀(顯示不可編輯),編輯,新增。因此我們需要為這三種模板來控制每個控件的布局和屬性,比如只讀狀態(tài)下空間的IsReadOnly為True,編輯狀態(tài)下,關(guān)鍵字字段的IsReadOnly為True,其他字段可以編輯,編輯狀態(tài)使用選擇控件方便輸入,新增狀態(tài)下,對于關(guān)鍵字段和必填字段需要用粗體字體顯示(默認)或其他形式提醒操作用,這都需要在不同的模板中定于。
          提示:布局使用Data Filed控件系統(tǒng)默認根據(jù)DataForm控件的狀態(tài)改變Data Field編輯狀態(tài)
          下圖是編輯狀態(tài)下的布局


          模板文件

          XAML代碼


          自定義代碼選擇控件,快速輸入控件
           
          最常見的單機放大鏡彈出所有記錄選擇后返回頁面或是在一個TextBox中輸入一個代碼(料號)自動帶出名稱,單位,單價等信息實現(xiàn)快速輸入。如果用asp.net需要寫需要JavaScript代碼,而使用Silverlight則非常容易就能實現(xiàn)。


          XAML代碼;


          通過把需要帶出的字段綁定到自定義控件上。
          Silverlight代碼
          屬性綁定代碼


          賦值代碼


          為了提高代碼的可讀性,推薦使用匿名方法
          類似的簡單的CodeValue的選擇使用AutoCompleted控件自己小改一下便可實現(xiàn)

          下面是實現(xiàn)代碼,名稱快速轉(zhuǎn)換的實現(xiàn),顯示名稱保存代碼
          定義一個Converter,和一個代碼組的數(shù)據(jù)源


          數(shù)據(jù)源繼承一個接口方便轉(zhuǎn)換時使用

          字段輸入驗證(唯一性驗證)
           
          通過對DomainService生成的metadata class的字段添加屬性進行驗證。為了更好維護對驗證數(shù)據(jù)的提示信息,可以使用資源文件保存比如,驗證支持特定屬性和正則表達式,自定義驗證




          代碼

          唯一性驗證
          需要對提示用戶輸入的信息重復了


          代碼


          注意:這里需要添加一個編譯條件,不然無法編譯過去。

          posted on 2011-03-27 19:05 常言笑 閱讀(1707) 評論(2)  編輯  收藏 所屬分類: SilverLight

          Feedback

          # re: 詳解Silverlight 4中RIA Service dataform Template, 代碼選擇控件及Validate驗證的技巧 2011-03-30 19:19 程義山

          能不能提供上述例子的源碼學習?
          chyishan@tom.com
          chyishan@qq.com
          謝謝  回復  更多評論   

          # re: 詳解Silverlight 4中RIA Service dataform Template, 代碼選擇控件及Validate驗證的技巧 2012-03-16 16:10 鑫子

          樓主很強啊,能否共享一下上面例子的源碼 needloss@163.com  回復  更多評論   


          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大渡口区| 吉安县| 玉环县| 邹平县| 华坪县| 通州市| 延长县| 铁岭市| 陆河县| 苏尼特右旗| 舟山市| 泰安市| 四会市| 浙江省| 蕲春县| 合江县| 丹棱县| 宜川县| 静宁县| 乌鲁木齐县| 亳州市| 尉氏县| 开封市| 顺平县| 三河市| 治多县| 新龙县| 镇雄县| 会同县| 缙云县| 洪洞县| 昆明市| 龙门县| 大连市| 北碚区| 河间市| 新建县| 永丰县| 隆昌县| 和田县| 达拉特旗|