jqGrid的getcell()方法返回false的原因
最近,小編在寫jqGrid的一個(gè)刪除功能時(shí)犯了個(gè)錯(cuò)誤:使用getcell()方法獲取單元格數(shù)據(jù)時(shí)返回了false。接下來我們來探討一下這個(gè)問題出現(xiàn)的原因。 getCell方法的使用方法 首先,讓我
最近,小編在寫jqGrid的一個(gè)刪除功能時(shí)犯了個(gè)錯(cuò)誤:使用getcell()方法獲取單元格數(shù)據(jù)時(shí)返回了false。接下來我們來探討一下這個(gè)問題出現(xiàn)的原因。
getCell方法的使用方法
首先,讓我們來看一下getCell方法的使用方法。getCell方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是行id,第二個(gè)參數(shù)是列名(也可以是列id,但是推薦使用列名)。如果在數(shù)據(jù)表格中找不到對應(yīng)的查詢數(shù)據(jù),該方法會(huì)返回false值。
錯(cuò)誤代碼示例
下面是我寫的錯(cuò)誤代碼:
$(quot;#postListquot;).jqGrid('delRowData', rowId);
postId $(quot;#postListquot;).getCell(rowId, 'postId');
alert(postId);
$.ajax({ ... });
如果你看懂了上面的代碼,你就應(yīng)該知道哪里出了問題了。我在使用getCell方法之前,把刪除行的代碼放在了獲取單元格數(shù)據(jù)的代碼之前。所以在取值的時(shí)候自然會(huì)返回false,造成了這個(gè)錯(cuò)誤。
解決辦法
那么要如何解決這個(gè)問題呢?解決辦法很簡單:先取值保存,然后再進(jìn)行刪除操作。下面是正確的代碼示例:
postId $(quot;#postListquot;).getCell(rowId, 'postId');
$(quot;#postListquot;).jqGrid('delRowData', rowId);
alert(postId);
$.ajax({ ... });
總結(jié)
這個(gè)問題其實(shí)是我自己在開發(fā)邏輯上出現(xiàn)了問題,肯定不能先刪除再獲取值。但是問題還是出現(xiàn)了,說明類似的情況在其他人身上也可能會(huì)發(fā)生。在開發(fā)過程中,我們經(jīng)常會(huì)遇到各種奇葩問題。如果本文對您有所幫助,請給予支持,謝謝!