[英]Working with the Grails g:timeZoneSelect tag?
我想在我的應用程序中使用g:timeZoneSelect
標記,問題是我發現生成的html選擇相當不堪重負。
顯示了600多個選項,恕我直言,這對用戶來說太多了。 也許有人可以指出一個時區列表更易於管理的示例? 也許您看過一個時區選擇很好的網站? 我確信超過600個選項在技術上是正確的,但是對於用戶而言這就像是噪音。
時區的顯示值過長。
例如:“ CST,中部標准時間(南澳大利亞/新南威爾士州)9.5:30.0”
只需“ CST,中部標准時間”或“ Australia / Broken_Hill”會更好
有沒有一種方法可以通過我不知道的某種標簽屬性(無法在文檔中找到任何標簽)或配置來解決這些問題?
或者,最好的選擇是將HTML select包裹在自定義標簽lib中,然后“滾動我自己的”解決方案(Id最好不要這樣做)。
謝謝
看一下源代碼,就無法覆蓋“ optionValue”屬性,因為它是在taglib方法本身中設置的
所以我想你得自己動手:-(
原始標簽的來源在此處 ,這應該是一個很好的起點。 您可能需要這樣的東西:
class MyNewTagLib {
static namespace = 'my'
def tzSelect = { attrs ->
attrs['from'] = TimeZone.getAvailableIDs();
attrs['value'] = (attrs['value'] ? attrs['value'].ID : TimeZone.getDefault().ID)
def date = new Date()
// set the option value as a closure that formats the TimeZone for display
attrs['optionValue'] = {
TimeZone tz = TimeZone.getTimeZone(it);
def shortName = tz.getDisplayName(tz.inDaylightTime(date), TimeZone.SHORT);
def longName = tz.getDisplayName(tz.inDaylightTime(date), TimeZone.LONG);
return "${shortName}/${longName}"
}
// use generic select
out << g.select(attrs)
}
}
然后,您可以執行以下操作:
<my:tzSelect/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.