|
如何在DefaultValidate中自訂動態的Validate訊息? |
觀看回應
|
|
DefaultValidate只要在自定義方法中增加一行程式就可以了,比如: public bool MyCheck(object val) { if(不符合條件) { (defaultValidate1.FieldItems[index] as FieldItem).WarningMsg = "Your Message"; // index是指第幾個欄位 return false; } else return true; }
|
|
|
|
如何實現二個以上的欄位的重複檢查功能? |
觀看回應
|
|
如果是多個key欄位的組合,直接設定DefaultValidate的DuplicateCheck和DuplicateCheckMode屬性就可以了,如果是Master設定為ByWhere,如果是Detail則設定為ByLocal。 如果不是key的欄位組合,可以在DefaultValidate中定義某一個代表性欄位,使用Validate自定義方法,如定一個MyCheck的方法,將訊息設定為”該資料已經重覆”,程式如下: Public bool MyCheck(Object var) { String s=var.ToString(); DataSet ds = InfoDataSet1.Execute("select count (*) from Yourtable where Yourkey=’"+s+”’”); if (Convert.ToInt16(ds.Tables[0].Rows[0][0]) > 0) { … return false; } else { return true; } }
|
|
|
|
如何在WinForm中對BindingSource進行過濾,並將符合條件的的記錄進行刪除? |
觀看回應
|
|
可以用下列的程式來過濾與刪除資料,如下: OEnergyDetail.MoveFirst(); int ibsOEDcount = ibsOEnergyDetail.Count; int i = 0; while (i< ibsOEDcount) { DataRowView dr = (DataRowView)ibsOEnergyDetail.Current; if (dr["housecode"].ToString() == "D") // 將HouseCode為’D’的刪除 { ibsOEnergyDetail.RemoveCurrent(); } else { ibsOEnergyDetail.MoveNext(); } i++; } ibsOEnergyDetail.EndEdit();
|
|
|
|
如何設置某筆資料不可修改(如己確認的資料)? |
觀看回應
|
|
1. ibsMaster設定AutoDisableControl 2. Navigator的BeforeItemClick事件: if(e.ItemName=="Edit") { if((ibsMaster.Current as DataRowView).Row["AB001"].ToString() == "Y") { e.Cancel = true; } } 這樣就不會進入Edit狀態了。
|
|
|
|
Windows的表單,如何在Apply時撿查自訂的條件,並使存檔無效? |
觀看回應
|
|
可以在InfoNavigator的BeforeItemClick事件中去檢查,如果有異常可以用e.Cancel來取消存檔。 if (e.ItemName == "Apply") { if (not 你的條件) e.Cancel = true; // 取消動作 }
|
|
|