天天看點

JQuery easyUI datagrid 多選下禁止選中某些行

jQuery(function($) {

		$('#dataTable').datagrid({

			//title:'菜單清單', //标題  
			method : 'post',
			iconCls : 'icon-edit', //圖示  
			singleSelect : false, //多選  
			width : 'auto',
			height : inHeight, //高度  
			fitColumns : true, //自動調整各列,用了這個屬性,下面各列的寬度值就隻是一個比例。  
			striped : true, //奇偶行顔色不同  
			// collapsible:true,//可折疊  
			url : "xxx.html", //資料來源  
			sortName : 'id', //預設排序的列  
			sortOrder : 'desc', //倒序  
			remoteSort : true, //伺服器端排序  
			pageSize : 20,
			idField : 'id', //主鍵字段  
			queryParams : {}, //查詢條件  
			pagination : true, //顯示分頁  
			rownumbers : true, //顯示行号  
			columns : [ [ {
				field : 'ck',
				checkbox : true,
				width : 2
			}, //顯示複選框 
			{
				field : 'id', //若sortable為true則可以作為排序字段,請與資料庫字段保持一緻
				title : 'id',
				width : 20,
				sortable : true,
				formatter : function(value, row, index) {
					return row.id;
				}
			}, {
				field : 'start_time',
				title : '開始時間',
				width : 20,
				sortable : true,
				formatter : function(value, row, index) {
					return row.startTime;
				}

			}, {
				field : 'end_time',
				title : '結束',
				width : 20,
				sortable : true,
				formatter : function(value, row, index) {
					return row.endTime;
				}

			}

			] ],
			toolbar : [ {
				text : '添加',
				iconCls : 'icon-add',
				handler : function() {
					addrow();
				}
			}, '-' ],
			onLoadSuccess : function(data) {
				$('#dataTable').datagrid('clearSelections'); //一定要加上這一句,要不然datagrid會記住之前的選擇狀态,删除時會出問題  
				//周遊結果
				for ( var i = 0; i < data.rows.length; i++) {
					//根據status值使複選框 不可用
					if (data.rows[i].status == "1") {
						$("input[type='checkbox']")[i + 1].disabled = true;
					}

				}
			},
			onClickRow : function(rowIndex, rowData) {
				//根據status值 單擊單選行不可用
				if (rowData.status == "1") {
					$('#dataTable').datagrid('unselectRow', rowIndex);

				} else {
					addrow();
				}
			},
			onDblClickRow : function(rowIndex, rowData) {
				//根據status值 輕按兩下單選行不可用
				if (rowData.status == "1") {
					$('#dataTable').datagrid('unselectRow', rowIndex);
				} else {
					addrow();
				}

			},
			onSelectAll : function(rows) {
				//根據status值  全選時某些行不選中
				$.each(rows, function(i, n) {
					if (n.status == "1") {
						$('#dataTable').datagrid('unselectRow', i);
					}
				});
			}

		});
		var p = $('#dataTable').datagrid('getPager');
		$(p).pagination({
			pageSize : 20,//每頁顯示的記錄條數,預設為10  
			pageList : [ 10, 15, 20, 25, 30, 50 ],//可以設定每頁記錄條數的清單  
			beforePageText : '第',//頁數文本框前顯示的漢字  
			afterPageText : '頁    共 {pages} 頁',
			displayMsg : '目前顯示 {from} - {to} 條記錄   共 {total} 條記錄'
		});
	});
           

複選框和該行的其他列不同處理。

繼續閱讀