【GeneXus】在WorkWithPlus中如何定义未被包含的页面属性?
在使用GeneXus開發項目的過程中,有很多用戶會使用到WorkWithPlus這個模板。通過WorkWithPlus的編輯器,讓頁面的調整變得極為簡單,尤其是響應式頁面。在WorkWithPlus的編輯器里,已經包含了GeneXus各種控件的常用屬性,如下圖所示:
?
但是有時候在WorkWithPlus編輯器里右邊的屬性欄中沒有包含某個我們需要設置的頁面屬性,例如Grid的Rows、Paging等屬性,那么這時候如何處理比較好呢?
解決這個問題我們一般有兩種方式,首先考慮要設置的這個屬性是否可以在代碼中動態賦值,如果可以,則通過一行代碼就可以解決這個問題;如果不行,則需要通過WorkWithPlus的Custom properties來實現。接下來我們分別舉兩個例子來說明一下。
?
1. 在GeneXus的WebForm里面,我們是可以直接在Grid的屬性中設置Rows值的。
?
?但在WorkWithPlus的編輯器中,沒有包含Grid的Rows屬性,因為WorkWithPlus統一設置了列表數據的Rows值。那么如果對于個別頁面,想單獨設置列表行數Rows,如何操作呢?我們知道Grid的Rows屬性是可以通過代碼動態賦值的,所以這種情況,我們在該頁面里面的Start事件直接對該Grid的Rows進行賦值即可。
例如:Grid.Rows = 15,該行代要寫在WorkWithPlus生成的代碼下面。
?
2. 但如果要設置的屬性不支持通過代碼動態賦值,我們需要開啟WorkWithPlus的Custom properties屬性。如圖:
?
這個屬性一般默認是隱藏起來的,如果需要使用,那么我們首先要把它設置顯示出來:工具-->選擇-->WorkWithPlus-->顯示自定義屬性:True
?
?
?
設置完之后,需要重啟GeneXus,在WorkWithPlus的編輯器中就會看到Custom Properties。
?
?
這個值的具體寫法,我們通過如下方式獲取。例如我們需要在WorkWithPlus編輯器里面將Grid的Paging屬性設置為Infinite scrolling。先新建一個未使用WorkWithPlus的Web Panel,直接在屬性欄中對需要修改的屬性進行設置,如下圖設置Grid的Infinite scrolling屬性:
?
然后將這個頁面導出為xml格式的文件:
?
?
然后打開Xml文件,搜索一下自己設置的屬性:
將對應的值復制到Custom properties就可以了。 這里需要注意,有的內容會包含轉義字符,可以先處理一下再復制。
例如rows="10" 未包含轉義字符,則可以直接使用。但InfiniteScrolling對應的內容有很多轉義字符,則需要先處理一下。
具體的轉義字符可以參考網上的信息,以下是常用的幾個。
?
?將InfiniteScrolling對應的內容中的轉義字符替換掉后,值為<Name>InfiniteScrolling<Name><Value>Infinite scrolling<Value>,
我們需要寫成Name=Value的形式,在Custom properties里即為:InfiniteScrolling=Infinite scrolling
?Custom properties如果有多個屬性的話,用分號隔開即可:
?
?
有關第二種方式,如果想了解更多,還可以參考:
http://docs.dvelopsoftware.com:8081/WikiPlus/servlet/com.wiki.wiki?342,Custom+Properties+for+Grid%2C+Attributes+and+Variables,
總結
以上是生活随笔為你收集整理的【GeneXus】在WorkWithPlus中如何定义未被包含的页面属性?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序与MCU基于阿里云MQTT协议
- 下一篇: laravel编写Console定时脚本