1. 程式人生 > >關於jqgrid多選框無法選中問題解決方案

關於jqgrid多選框無法選中問題解決方案

最近我們組的一個專案在做前端改版,改版過程中選用了jqgrid作為資料顯示的表格,外掛是我引入的,由於對前端技術不是很熟悉,所以在引入外掛時並未對版本做過多穩定行的調查,時間緊迫就引入了5.0.0這個版本。配合bootstrap頁面的展現效果還不錯,但是隨著開發進度的深入發現了問題!就是在設定了表格可以多選時只能通過點選行的方式選擇,無法通過點選多選框的形式選中,一般情況下還是可以接受,但是當我們開發另外一個功能時又發現了問題。就是當和jqgrid可編輯單元格同時使用時完全無法點選選擇多行了,前提是所有列都是可編輯的!這讓開發一度陷入了尷尬的局面。

通過我和同事的研究發現不是不可以點選多選框進行選中,而是執行了兩次選中方法,因此我們嘗試研究和修改原始碼,發現很容易改好了一個功能又引發了新的問題,段時間是不可能通過修改原始碼的方式解決了!

後來我以為同事想到了一個方法,算是一種蹩腳的辦法,就是在jqgrid中新增一個事件:beforeSelectRow,也就是在選中行之前觸發,對這個方法不瞭解的可以去查jqgrid文件,這裡就不多做介紹了。在這個方法中將選中的行儲存為一個變數中,然後手動的給checkbox通過設定屬性的方式新增選中狀態,最後返回fase.返回false就是不執行之後的選中方法。這種方式雖然能解決問題,但是卻不是理想狀態,而且在儲存選中資料時處理不好的話很容易出錯,因此這種方案的程式碼我就不提供了!

最後我翻閱了文件發現了一個方法就是$('#id').jqGrid('setSelection',rowid);就是手動呼叫選中行,我把它放在beforeSelectRow方法中並且再返回false,就可以了。具體程式碼如下:

beforeSelectRow:function(rowid,e){

$('#id').jqGrid('setSelection',rowid);

return false;

}

這樣做能完美的解決問題,並且可以通過$('#id').jqGrid('getGridParam','selarrrow');來獲取所有選中的行(●°u°●)​ 」。

由於公司沒有外網所以我通過手機發的這篇文章,如果對你有所幫助的話我會很高興的!

相關推薦

關於jqgrid無法選中問題解決方案

最近我們組的一個專案在做前端改版,改版過程中選用了jqgrid作為資料顯示的表格,外掛是我引入的,由於對前端技術不是很熟悉,所以在引入外掛時並未對版本做過多穩定行的調查,時間緊迫就引入了5.0.0這個版本。配合bootstrap頁面的展現效果還不錯,但是隨著開發進度的深入發現

解決layui動態載入複無法選中

問題描述 1.最近用layui做後臺介面,遇到layui跟ajax資料動態載入的checkbox,偶爾不能正常勾選,取消 2.有分頁時,最後一頁資料過少會導致其他頁下方資料無法選中 3.頁面沒載入完或暴力測試時也會不能選中 利用layui更新渲染方法和網上的一些方法去解決後極大的

關於Element-ui的,單無法選中的問題

最近先放一下物聯網的事情,打算開發一個前端的SPA。 類似於問卷星的一個東西,因為現在大學,填表的需求很高,可是卻沒有合適的軟體,打算自己做個網站。 前端就選擇用Vue和Element-UI開發了,可是在使用的過程中出現了很多錯誤,浪費了很長時間,也讓我

layui checkbox自動選中

layui 的checkbox,後臺返回資料,前臺自動選中問題 $.get( "{:url('service/edit')}", {'id':adminId}, function(d){ //d為後臺返回的json資料 //設定

(轉)select2無法手動排序問題

select2是一個不錯的選擇框外掛,支援單選、多選、AJAX等,還有豐富的介面,官網是 https://select2.org/ 常用的樣式效果圖如下: 在一個專案中,我使用了它的AJAX搜尋和選擇,但發現一個問題,專案需要對選擇的內容保留它新增時相應的排序,比如one/t

Android 設定了ClickableSpan導致的上層View點事件無法響應解決方案

首先感謝此題主及回答的大神提供了思路:點選開啟連結  首先問題是這樣的:如果LinearLayout中包了一個TextView,TextView設定了ClickableSpan,這時如果恰巧LinearLayout和TextView都設定了點選監聽,這時如果點選了Clicka

jsp頁面帶有的grid表格,如何將勾選中的行記錄所有列數據傳送到後臺。

blank href 後臺 aaa 數據 www hue 選中 cs6 忱分慕兇釉瀑懲防慌虜敝慘緩猩http://jz.docin.com/shuvg316 帳段繁臨市杉聞壞倫捶剎空合戀http://huiyi.docin.com/ogq2843 杏燎乘安轄任凸托飯承臨

1.復選中個的做法

選擇 img 數據 分享圖片 body key log 分享 提交 Name:是要提交到action當中的多個id形成的集合 List:是從action中傳過來的數據,用來展示的數據 Listkey:是選擇的項, Listvalue:是要顯示的部分。 1.復選框,選中多

jquery如何根據name來獲得選中的值。

comm lin input this func jpg 代碼實現 title ali 根據多選框name來獲得選中的值可用如下 jquery代碼實現 1 2 3 $("input:checkbox[name=‘test‘]:checked").each(fu

VS2013無法載入解決方案中專案,提示未能正確載入解決方案中的一個或個專案

現象:開啟一個工程,上午還能正常操作,下午就打不開了。試了所有的工程都打不開。 提示: 未能正確載入解決方案中的一個或多個專案 解決辦法: 1、關閉VS; 2、去C:\Users\AppData\Local\Microsoft\VisualStudio\12.0\ComponentMod

Jquery改變的值的時候,原始碼顯示選中但是頁面上顯示沒有選中

這是之前的程式碼: for (let me of menuid) { $('#' + me.menuid).attr("checked", true); } 改變集合中的id的多選框為選中,然後頁面上並沒有選中,原始碼卻顯示checkbox=check

JQuery Mobile - 修改複選中狀態無效解決辦法!

今晚,在編寫JQuery Mobile程式時候,需要在程式碼裡面控制複選框的選中狀態,很簡單的程式碼啊,很快完成了!等測試程式時候傻眼了,頁面無論如何也不按照我寫的程式碼顯示出來!問題出在哪裡呢?是我寫的控制狀態程式碼有問題?檢視資料,最終使用prop來控制狀態。理應可以了吧?但是還不行,頁面還是沒有正常顯示

jqGrid表格單

行單選,在載入列表的js下新增以下屬性和方法     beforeSelectRow: true,     beforeSelectRow:function(){         $("#inventory

jQuery實現的全按鈕自動選中與消失

頁面中實現全選,反選,一組複選框選中時全選按鈕自動選中,一組中有一個未選中時全選按鈕取消 $('#checkAll').click(function(){ if(this.checked) { $("input[type=ch

easyUI tree 設定是否級聯選中

今天測試提出一個 bug,找了半天是因為easyUI的tree樹前的多選框級聯選中造成的;找了半天,終於取消了預設的級聯關係 var treeUrl = 路徑 treeManager.tree({checkbox:true,cascadeCheck:false,lines:true,

選中時改變相對應的包裹複的元素樣式

  首先 有這樣的一個效果: 即選中複選框的時候,相對應的li將改變背景色等樣式,完整的實現效果主要程式碼如下   原始html檔案 <div class="check"> <h5>症狀(可多選)</h5>

easyui中一個頁面個combobox下拉載入同一json資料,下拉無法選中問題

版本問題,可以通過升級easyui為最新版本解決,也可以通過以下程式碼處理/** * 初始化下拉框 * @param unitid dom元素id * @param value 初始化選中值 * @param data json資料集合 */ function in

微信小程式獲取選中值和選中值對應的id

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。 微信小程式開發交流qq群   173683895  、 526474645 ; 正文: 官方文件中只有獲取多選框的值的方法,但是我需要獲取選中的值同時還要獲取選中值對應的id,但是又不能操作DOM獲取,相信和我有

微信小程式選中後改變樣式--自定義圖片

原理:主要利用了js 的indexOf() 方法可返回某個指定的字串值在字串中首次出現的位置。 注意:image裡面的圖片自己加 wxml <text>多選框</text>

vue中通過v-for迴圈遍歷得到的值如何加到dom節點的屬性中以及vue將選中的值渲染到頁面

話不多說直接上程式碼 <script> Vue.component('CheckBox',{ props:{ values:{ type:Array