這篇中將補充說明一些之前沒有講到的細節內容,比如一些特殊功能的jqGrid選項、jqGrid的事件等等。
1. jqGrid選項補充說明
之前已經介紹了許多經常用到的jqGrid選項,還有一部分雖然還沒有介紹,但卻能肩負特殊的功能。例如:
- altRows
:當次此選項為true時,表格的行將呈現交替樣式顯示(zebra-striped)。
- altclass
:此選項只在altRows為true時才有效,交替顯示的樣式;預設值為:ui-priority-secondary。
- datastr
:當datatype選項為xmlstring或jsonstring時,設定此選項可以充當Grid中的資料內容。
- deepempty
:如果有事件或者外掛程式被綁定到表格的cell上,則應該經此選項設為true;此選項將使用jQuery的empty方法來處理行及其子項目的回收工作;雖然會有效能下降,但可以避免記憶體泄露。
- forceFit
:如果此選項為true,則當調整某一列的寬度的時候,其右側相鄰的列也會相應調整寬度,以保持整個表格的寬度不變;但此選項受制於shrinkToFit選項,當shrinkToFit為false時,此選項也將被忽略。
- gridstate
:當使用了hiddengrid、hidegrid、caption選項的時候,決定表格的狀態;可能的值為visible和hidden,預設值為visible。
- hidegrid
:由於控制是否啟用或禁用表格標題列中的“顯示/隱藏”表格按鈕;只有在caption屬性為非Null 字元串的情況下有效。
- hiddengrid
:如果設為true,則表格在初始化狀態下是隱藏的,只有標題列顯示,且不會像Server發送請求,也就不會載入任何資料;只有第一次點擊標題列中的“顯示/隱藏”表格按鈕後,才會向Server發送請求,載入資料,顯示表格;此選項只有在caption選項非空,且hidegrid為true的情況下才有效。
- lastpage
:唯讀選項,表示從請求返回的總頁碼數,預設為0。
- lastsort
:唯讀選項,表示最後一次排序使用的列的索引序數,從0開始,預設為0。
- loadonce
:如果此項為true,則只向Server發送一次請求。當第一次請求結束後,datatype選項自動變更為local,所有的後續操作都只是基於用戶端的;而pager的各項功能也都將被禁用。
- multiselect
:如果此項為true,則允許多行同時選擇;在表格的左端將出現新的一列,用於多行選擇。
- multikey
:此項只在multiselect為true時有意義,定義按哪個鍵來進行多行選擇,可能的值:shiftKey、altKey、ctrlKey。
- multiboxonly
:此項只在multiselect為true時有意義;如果此項為true,則只有點擊多選列中的checkbox,才能進行多行選擇,點擊行的其他位置,都只是單行選擇。
- multiselectWidth
:設定多選列的寬度。
- selarrrow
:唯讀選項,表示在multiselect為true時,多選行的id數組。
- postData
:{name:value,...}類型的數組,此數組中的元素將會作為參數,被直接傳入url;
- sortname
:表格初始化時使用的排序列的index。
- sortorder
:表格初始化時使用的排序方式,asc或desc。
- scroll
:建立動態滾動的表格,可以使用垂直捲軸來載入資料。此選項可以接受boolean值或integer值;預設為false;如果為true,則表格將保持從開始到現在所有曾經顯示行;如果為設為數值(例如1),則表格只保持當前顯示的資料行,以防記憶體泄露。(具體參見官方文檔http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options
)
2. colModel選項補充說明
- align
:文本對齊,left、center、right。
- datefmt
:日期格式,預設為ISO格式(Y-m-d),使用的是PHP風格的日期格式,參見官方文檔。
- formatter
:使用預定義的格式,或者用於控制此列格式的自訂函數名。具體參見官方文檔(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter
)。
- key
:當從Server得到的資料中不包括id的時候,設定該列充當id,以代表唯一的行id;最多可以有一列設定此選項為true;如果多於一列設定了此項為true,則第一個設定的列將充當id列,其餘的將被忽略。
註:
- name選項的值可以包含“.”,例如patentCaseType.caption,即對應從gridModel(根據我的jsonReader設定)中的元素的patentCaseType屬性的caption屬性;
- name選項主要用途是用來解析從response中傳來的對應資料;
- index選項主要用途是用來在查詢和排序時,向Server傳遞對應的參數;
3. jqGrid事件
事件說明列表可以參考官方文檔(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events
),不再贅述。
需要說明的是,自從3.6.3版本以後,可以在對應的事件方法函數中使用$(this)來應用jqGrid對象。