|
WebFormView 修改時如何帶預設值進去? |
觀看回應
|
|
預設值是只有在新增狀態下才有效.如果想修改時間和人員的欄位元有兩種方式: 1. 如果在Client的畫面有顯示這兩個欄位,可以直接在FormView的事件寫程式修改,比如ItemUpdating事件,去查找控制項並賦值.也可採用e.Values["FieldName"] = ....的賦值方式。 2. 如果不在Client端顯示這兩個欄位,可以在Server端UpdateComp的BeforeModify事件對這兩個欄位賦值.或者,可以直接在UPdateComp的FieldsAttr上直接設定修改欄位,無需寫程式。
|
|
|
|
在InfoNavigator中,如果需求符合某一條件時才能刪除,應如何處理? |
觀看回應
|
|
有2個方法,說明如下: 1. 用navigator的刪除來控制,可以在BeforeItemClick中寫如下程式: if (e.ItemName == "Delete") { if (not 你的條件) { Messagebox.Show(“無法刪除!”); e.Cancel = true; } } 2. 在Master或View的(如果有view的話,可以用view)BindingSource的PositionChanged事件以及InfoNavigator的StateChanged事件去判斷,如下: if (not 你的條件) { bindingNavigatorDeleteItem1.enable=false; } else { bindingNavigatorDeleteItem1.enable=true; }
|
|
|
|
Master/Detail中,如何控制沒有輸入明細檔時,提示「請輸入明細檔」並且不會存檔? |
觀看回應
|
|
可以在Navigator的BeforeItemclick事件來控制,如下: if (e.ItemName == "Apply") { if (ibsDetail.List.Count == 0) e.Cancel = true;//不存檔; }
|
|
|
|
Win Form保存資料時,如何透過updatecomponent的AfterApply事件截取存檔的錯誤訊息? |
觀看回應
|
|
這種情況下是無法回傳信息到Client的,除非是系統出錯了,發生停止存檔才會回應訊息,如果是為了捕捉Server端所發生的錯誤,則可以通過throw new Exception的方式傳資訊回到Client,在Client的InfoDataSet有ApplyError事件可取得e.Exception.InnerException.Message就是Server的錯誤訊息。
|
|
|
|
UpdateComponent的BeforeDelete如何取消刪除? |
觀看回應
|
|
兩種方法,請參考: 1)如果您是要判斷哪些資料可以刪除哪些不可以,您可以在Client端的BeforeCommand事件中處理,比較簡單。 2)如果是必須要在Server處理的,您需要BeforeDelete事件中寫: if (Convert.Toint16(UpdateComp1.GetFieldOldValue("Qty"))<=0) // 條件成立的話 { throw new Exception("yourMessage"); //拋出異常與訊息 }
然後需要在Client的InfoDataSet的ApplyError事件中接收: if (e.Exception.InnerException.Message == "yourMessage") { MessageBox.Show("yourMessage"); //可以自行改變訊息 e.Cancel = true; //讓系統知道後端有錯誤 }
|
|
|