我正在尝试在子列表中添加Mark all / Unmark all按钮,这是一种内联编辑器子列表。下面我添加了一个列表类型子列表的代码,它不适用于内联编辑器子列表。任何人都可以帮忙找到这个吗?
function button1Func(type) {
if (type=='edit' || 'view')
{
var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId());
var intCount = record.getLineItemCount('item');
var headrow = document.getElementById("item_headerrow");
var head = headrow.insertCell(0);
head.innerHTML ="Select";
for (var rep = 1; rep <= intCount; rep++)
{
var row = document.getElementById("item_row_"+rep);
var x = row.insertCell(0);
var newCheckbox = document.createElement("INPUT");
newCheckbox.setAttribute("type", "checkbox");
newCheckbox.setAttribute("id", "select_CheckBox"+rep);
x.appendChild(newCheckbox);
}
}
}
function button2Func(type) {
if (type=='edit' || 'view')
{
var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId());
var intCount = record.getLineItemCount('item');
for (var rep = 1; rep <= intCount; rep++)
{
var repId = record.getLineItemValue('item', 'item', rep);
if(document.getElementById("select_CheckBox"+rep).checked==true){
makecopyfun(repId);
}
else
{
continue;
}
}
alert("Success");
}
}
function makecopyfun(repId){
var record = nlapiLoadRecord(nlapiGetRecordType(), nlapiGetRecordId());
var intCount = record.getLineItemCount('item');
record.insertLineItem('item',intCount + 1);
alert (intCount);
record.setCurrentLineItemValue('item','item',repId);
record.commitLineItem('item');
var id = nlapiSubmitRecord(record, true);
}
答案 0 :(得分:1)
由于没有记录对象,因此无法通过API确定您可以尝试使用jQuery。
答案 1 :(得分:1)
首先编写以下代码&amp;创建userEvent脚本并在beforeLoad事件中应用函数名称(initnoload)。 然后在Quote。上部署该脚本。
function initonload(type, form, request) {
if (type=='edit' || type=='view') {
var list = form.getSubList("item");
list.addButton('custpage_markmark','Mark all','markall();'); //markall(); is function name from the client script
list.addButton('custpage_unmarkmark','Unmark all','unmarkall();'); //unmarkall(); is function name from client script
form.setScript('customscript_mark_all_item_quote'); // 'customscript_mark_all_item_quote' is the ID of script
}
}
上面的代码将向Sublist添加两个按钮,并在客户端脚本中执行它们的操作,我们已经定义了ScriptId。
现在编写以下代码&amp;创建客户端脚本。(注意:只需保存客户端脚本,不要指定任何事件函数名称,也不要部署它)。
function markall() {
var count=nlapiGetLineItemCount('item'); //gets the count of lines
for(var i=1;i<=count;i++) {
nlapiSelectLineItem('item',i);
nlapiSetCurrentLineItemValue('item','custcol_checkbox_field','T',true,true); //'custcol_checkbox_field' is checkbox's field ID.
}
nlapiCommitLineItem('item');
}
function unmarkall() {
var count=nlapiGetLineItemCount('item');
for(var i=1;i<=count;i++) {
nlapiSelectLineItem('item',i);
nlapiSetCurrentLineItemValue('item','custcol_checkbox_field','F',true,true); //'custcol_checkbox_field' is checkbox's field ID.
}
nlapiCommitLineItem('item');
}
保存客户端脚本后,请将其ID粘贴到用户事件的form.setScript('客户端脚本ID')中。功能
我希望这会帮助你。
如果你遇到任何困难,请告诉我。
谢谢。
答案 2 :(得分:0)
我想出了其他的想法,因为你可以使用这个字段来帮助你标记/取消标记子列表下的所有行。你可以在表格中添加子标签,在子标签下你可以添加字段和子列表。稍后您可以在该字段上应用脚本,这将帮助您标记/取消标记所有子列表行。
这是代码......
form.addSubTab('custpage_tab','Main Tab'); form.addField('custpage_chkmark','checkbox','Mark / Unmark All',null,'custpage_tab'); form.addSubList( 'custpage_sublst', 'inlineeditor', 'SampleSubList', 'custpage_tab');