2012-06-22 92 views
0

我正在使用Sigma Grid的onCellClick功能,允許用戶從網格中進行選擇並使用所選信息更新表單。java腳本分割錯誤

當我嘗試分割從onCellClick返回的記錄(它返回與網格行關聯的記錄)時,我得到一個「對象不支持此屬性或方法」指向分割線。

onCellClick : function(value, record, cell, row, colNO, rowNO, columnObj, grid){ 
      var recordCurrent = record; 
      var recordSplit = recordCurrent.split(","); 
      alert("Participant is " + recordSplit[1]); 
      } 

如果我做了一個警報,顯示onCellClick事件中的非分離記錄,它顯示了我期望的數據。

我錯過了一些明顯的東西。任何你可以提供的方向將不勝感激。

+1

檢查記錄當前的類型,如果它不是字符串(所以它不是)你不能分割。 – totten

+0

即使正如Enes所說,如果您可以分拆它,仍然有機會在第二個位置不會有價值 –

回答

0

您應該執行兩項檢查:

1)這實際上是有記錄

2)該分割記錄中有

onCellClick : function(value, record, cell, row, colNO, rowNO, columnObj, grid){ 
    if (record.length) { 
     var recordSplit = record.split(","); 
     if (recordSplit.length > 1) { 
      alert("Participant is " + recordSplit[1]); 
     } 
    } 
} 
0

您收到的錯誤不止一個對象"Object doesn't support this property or method"會建議你試圖在沒有它的東西(不是字符串)上調用.split

你應該檢查你的參數是你所期望的類型,你與他們合作前:

if (typeof record !== 'string') { 
    throw new Error('You must pass a string as the record to onCellClick!'); 
} else { 
    var recordCurrent = record; 
    var recordSplit = recordCurrent.split(","); 
    alert("Participant is " + recordSplit[1]); 
} 

經進一步調查,Sigma grid documentation指出record參數的類型爲ObjectArray,不String

+0

謝謝。這確實是一個對象。將它轉換爲一個字符串使用var str =「」+ obj;解決了這個問題。再次感謝你。 – hwilliams

+0

@hwilliams不客氣。如果答案對你有幫助,並且你認爲它會幫助其他有類似問題的人,你應該[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-工作)。 – jbabey