【发布时间】:2019-07-04 03:35:36
【问题描述】:
有没有办法更改销售订单页面中选项卡的顺序?
【问题讨论】:
有没有办法更改销售订单页面中选项卡的顺序?
【问题讨论】:
免责声明
所示方法只是如何更改选项卡顺序的示例。
在将其用于您的产品之前,请确保此方法对您的产品是安全的。
没有从自定义中指定选项卡位置的选项,屏幕编辑器不支持选项卡的拖放,即使您从编辑 ASPX 页面更改选项卡的顺序,按下生成自定义脚本也会回滚所有变化,所以剩下的唯一方法是使用 Javascript 中的标签。
如果我们检查页面的 DOM 结构,我们会发现以下部分对应于 tabs 表:
我将使用the answer to this question 中的交换函数并编写一个用于交换详细信息和税收选项卡的函数:
function swapElements(parent,elemA,elemB){
if(!parent||parent.constructor.toString().search('HTML')===-1) return;
var children = parent.children;
if(typeof elemA!=='number' || typeof elemB!=='number' || elemA===elemB || !children[elemA] || !children[elemB]) return;
elemB = elemA<elemB ? elemB--:elemB;
var childNumb = children.length - 1;
var a = parent.removeChild(children[elemA]);
var b = parent.removeChild(children[elemB]);
append(elemB,a);
append(elemA,b);
function append(a,b){
childNumb===a ? parent.appendChild(b) : parent.insertBefore(b,children[a]);
}
}
function swapDetailsAndTaxes()
{
swapElements(document.querySelector("#"+px_all.ctl00_phG_tab.tabTable.id+ " tr"),0,1)
}
现在我们需要将这段 Javascript 添加到页面并将其设置为启动脚本:
【讨论】:
基于最初让我感到困惑的一些事情,使用 PxTabItem Text 和 OriginalIndex="n" 对上一个答案进行了一些澄清。
OriginalIndex 是标签在移动之前所在位置的从零开始的索引。例如对于项目表格: Sample of Projects original Tab Order
诀窍是按您希望显示它们的顺序列出 Children Key="Items" - 以它们最初的基于零的索引作为参数。 最好以正确的顺序包含所有选项卡 - 在将代码添加到 aspx 页面之后 - Cust Proj 编辑器将消除不必要的选项卡,只留下需要的选项卡。这非常有帮助 - 但如果你不知道这一点就会很棘手.. 如果您不想包含所有标签 - 您至少必须在更改之前包含最后一个未更改的标签。
另外 PS - 不要忘记在末尾添加 /Page 标记...在 pageSource 标记之后添加代码之后。即在现有代码的末尾将 /> 更改为 > 然后添加:-
项目重新排序示例...
<PXTab ID="tab" ParentId="phG_tab" TypeFullName="PX.Web.UI.PXTab">
<Children Key="Items">
<PXTabItem Text="Tasks" OriginalIndex="1" />
<PXTabItem Text="Balances" OriginalIndex="4" />
<PXTabItem Text="Cost Budget" OriginalIndex="3" />
<PXTabItem Text="Change Requests" OriginalIndex="8" />
<PXTabItem Text="Attributes" OriginalIndex="14" />
<PXTabItem Text="Compliance" OriginalIndex="17" />
<PXTabItem Text="Contacts" OriginalIndex="19" />
<PXTabItem Text="Lien Waiver Settings" OriginalIndex="18" />
<PXTabItem Text="Activity History" OriginalIndex="10" />
<PXTabItem Text="Settings" OriginalIndex="13" />
<PXTabItem Text="Mailing Settings" OriginalIndex="16" />
<PXTabItem Text="Approval Details" OriginalIndex="15" />
<PXTabItem Text="Equipment" OriginalIndex="12" />
<PXTabItem Text="Union Locals" OriginalIndex="9" />
<PXTabItem Text="Estimates" OriginalIndex="21" />
<PXTabItem Text="Production Orders" OriginalIndex="20" />
</Children>
</PXTab>
【讨论】:
注意到这是一个带有答案的老问题,但只是想更新/添加另一个替代方法以通过自定义编辑器工具更改选项卡的顺序,见下文:
-确保将屏幕添加到自定义项目的屏幕部分。
-然后点击File->Edit Project Items,见下图:
-然后选择/突出显示您要更改标签顺序的屏幕。
-然后在底部上选择后,通过添加 PXTab 标记代码段 (sn-p) 来更改选项卡的顺序来编辑页面,如下所示:
<Page path="~/pages/so/so301000.aspx" pageSource="YOURPAGESOURCE">
<PXTab ID="tab" ParentId="phG_tab" TypeFullName="PX.Web.UI.PXTab">
<Children Key="Items" >
<PXTabItem Text="Document Details" OriginalIndex="3" />
<PXTabItem Text="Financial Settings" OriginalIndex="2" />
<PXTabItem Text="Commissions" OriginalIndex="1" />
</Children>
</PXTab>
-发布您的自定义,并使用 Ctrl + F5 (Windows) 刷新您的浏览器。请参阅以下结果:
希望这会有所帮助。
【讨论】: