1. 程式人生 > >jqgrid實現行編輯功能

jqgrid實現行編輯功能

很多坑坑,特別注意

1.jQuery("#filegridTable").jqGrid('saveRow', gr, function(data) {//注意此處的data竟然是XMLHttpRequest,如果要獲取XHR中的響應值,必須使用responseText屬性,和以前的callback的形參值完全不一樣啊
						alert(JSON.parse(data.responseText).info);						
					}, "editFileNameServlet", {
						fileId: editFileId
					});
2.
var gr = jQuery("#filegridTable").jqGrid('getGridParam', 'selrow');//獲取的是rowid,就是該條記錄在表格中是第多少行,不是記錄的主鍵
$("#gridTable").jqGrid("getRowData",rowid);//獲取的是第rowid行的值,注意rowid是從1開始編碼的
3.在編輯模式下,當其中的一個欄位完成輸入時,要求判斷這個欄位值不能為空,我找到了一個解決辦法,不知道是不是最優的,沒有查到其他人實現這個功能,就記一下,實現的方法是通過
editoptions選項,配置blur事件,具體參考<a target=_blank href="http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules">http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules</a> 
 {
							name: 'fileName',
							index: 'fileName',
							width: 400,
							align: 'left',
							title: false,
							sortable: false,
							editable: true,
							editoptions: {
								dataEvents: [{
									type: 'blur',
									fn: function(e) {
										alert(this.value);
										var fileName = this.value;
										if (fileName == undefined || fileName == null || fileName.trim().length < 1) //如果檔名為空,就不能進行提交
										{
											$().message("檔名不能為空!");
											jQuery("#filegridTable").jqGrid('restoreRow', edirRowid);
											jQuery("#file_edit_save_btn").attr("disabled", true);
											jQuery("#file_edit_btn").attr("disabled", false);
											return;
										}
										$("#file_edit_save_btn").click();
									}
								}]
							}

						}