|
在InfoNavigator的QueryForm裡,如何動態控制某個RefVal內的WhereItem內容?(使用ClientQeury的模式) |
|
|
需要先取得查詢屬性的Clientquery,由於是用Infonavigator實現的,所以要先用反射來取得Navigator中的ClientQuery,再取得這個Query form中的panel,然後按照命名規則就能取得你所要的查詢欄位之對應元件。然後再對這些元件進行whereItem設置。各個查詢元件的命名規則是txt加上流水編號,即txt0是第一個查詢欄位的元件。. 如: ClientQuery cq = (ClientQuery)this.infoNavigator1.GetType().GetField("cqform", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(this.infoNavigator1); // 取出 infoNavigator內的ClientQuery對象 Panel pn = cq.ActivePanel; InfoRefvalBox box = pn.Controls["txt0"] as InfoRefvalBox; … // 取出InfoRefValBox後,即可控制該元件的屬性了。
|
|
|