2012-06-01 28 views
3

我有一個jqGrid,我想要一列是多選組合框。我從一個插件,無論如何,在jqGrid中包含MultiSelect Combobox?

http://www.abeautifulsite.net/blog/2008/04/jquery-multiselect/

如何整合這些,以及如何獲得所選擇的值?

+0

我個人更喜歡[另一個多選插件](http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/),但無論如何,您應該清楚您在多選的「包含」下的含義jqGrid中的組合框。你的意思是搜索或編輯(哪一種編輯模式)或其他? – Oleg

+0

確定沒關係,我應該可以編輯多選組合框。 – sainath

+0

您仍然不回答您使用的編輯模式(內嵌編輯,表單編輯,單元格編輯)。一般來說,你應該只是初始化'dataInit'中的插件,但它可能是不同的小事情,例如需要完成控件的正確寬度和高度。在每種編輯模式下,這些「小」事物可能會有所不同。 – Oleg

回答

9

例如,您可以使用jQuery UI MultiSelect Widget來實現帶複選框的多選。

The demo顯示瞭如何執行此操作。您將有結果像下面

enter image description here

您可以使用不同的選項自定義多選插件。在演示中,我使用了以下代碼

edittype: 'select', editoptions: { 
    value: 'FE:FedEx;TN:TNT;IN:Intim', 
    dataInit: function (elem) { 
     setTimeout(function() { 
      $(elem).multiselect({ 
       minWidth: 100, //'auto', 
       height: "auto", 
       selectedList: 2, 
       checkAllText: "all", 
       uncheckAllText: "no", 
       noneSelectedText: "Any", 
       open: function() { 
        var $menu = $(".ui-multiselect-menu:visible"); 
        $menu.width("auto"); 
        return; 
       } 
      }); 
     }, 50); 
    }, 
    multiple: true, 
    defaultValue: 'IN' 
} 

我應該提到您可以在不使用任何插件的情況下編輯多個可選列表。唯一的缺點是用戶界面不太好。 The next demo顯示了沒有多選插件的所有作品。

已更新:如果您需要在加載後直接在編輯模式下設置所有行,則可以在下一個演示中執行此操作。

+0

感謝您的回答奧列格,但這不適合我的目的。如果我在另一行下拉列表中的某一行下拉列表的值發生變化。我認爲它正在停用。我希望這些值一直存在,直到編輯完所有行,並且最後我想一次保存所有值。等待你的答案。再次感謝 – sainath

+0

@sainath:我不完全明白你想要什麼。你想要依賴於實現的下拉列表,還是希望在每一行都啓用下拉列表?我從最後一個看起來沒什麼意義,因爲下拉控件顯示的是與「FedEx」或「FedEx,TNT」相同的信息。在一個編輯多行並保存到服務器,這絕對是另一個問題。我不建議你這樣做,但對原因的描述很長。在多用戶環境中,您可能會遇到嚴重的併發問題。 – Oleg

+0

否否,該場景不包括多用戶環境。這是一個單一的用戶在瞬間。絕對不會有併發問題。我希望在每行中啓用下拉列表,並將選中的值存儲到數據庫中。 – sainath

相關問題