2014-03-12 80 views
1
<script type="text/javascript"> 
    function fn_CloneRow(pThis) { 
     $(pThis).parent().parent().clone().appendTo($(pThis).parent().parent().parent()); 
    } 

使用上面的代碼,我可以將表格形式的點擊行克隆到表格底部,但我無法存儲它們。當我更改克隆行的值時,更新原始行而不是在提交頁面時添加新行。Oracle Apex中的複製行(複製記錄)不起作用

+0

還請澄清什麼樣的報告,它是:我相信這是一個嚮導生成表格形式。 – Tom

回答

0

這是因爲在克隆行時,您還要克隆包含主鍵的元素。 從我的頭頂,這樣做有以下要素:

  • 空含有PK(你需要找出如果這是數組F01或其他任何你的問題不提供輸入元素。上下文),或者如果您使用rowid,請清除名稱爲「frowid」的輸入元素。
  • 清空包含行校驗和的輸入元素。這是一個名稱爲「fcs」的輸入元素
  • 將包含記錄狀態(name = fcud)的輸入元素設置爲'C'。它用於確定要對其執行的操作。 'D'是新的,'C'被改變,'U'被更新 - 我猜。這不是在任何文件,但它是通過檢查HTML和JavaScript,你可以找到這個。

您還可以通過不這樣做parent().parent()...提高你的代碼,而不是簡單地查找最接近的TR或表使用.closest(...)

var newRow = $(pThis).closest('tr').clone(); 
$('input[name=f01]', newRow).val(""); //input with PK value -- make sure this matches your situation!!! 
$('input[name=frowid]', newRow).val(""); //or if the form works with rowid, use this 
$('input[name=fcs]', newRow).val(""); //clear the checksum 
$('input[name=fcud]', newRow).val("C"); //set the record status 
newRow.appendTo($(pThis).closest('table')); //finally, append the row to the table 
+0

非常感謝TOM提供最早的答覆。是的,你的假設是正確的,它是表格形式。由於我是新手,我可以理解你的解釋,但無法編碼。你能用代碼建議嗎? – Vijayan

+0

@Vijayan我添加了一個代碼示例。您可能需要閱讀關於使用表格形式(或通用頂點)的全局數組的一些信息,以確保理解發生了什麼(我指的是f ##數組以及它們如何映射到表格形式的項目)。我強烈建議檢查你生成的html,這可以幫助你很好地理解。 – Tom

+0

很棒的TOM。非常感謝您的即時幫助。我將使用它,因爲你建議我會通過HTML檢查瀏覽器中的元素.. – Vijayan