Salesforce VisualForce页面中的按钮禁用
在标准对象(帐户)上,我有一个名为SAD的按钮。按钮是通过可视力页面添加到那里的Salesforce VisualForce页面中的按钮禁用,salesforce,apex,visualforce,salesforce-lightning,Salesforce,Apex,Visualforce,Salesforce Lightning,在标准对象(帐户)上,我有一个名为SAD的按钮。按钮是通过可视力页面添加到那里的 现在,我的问题是在帐户页面上,对于特定的字段选择列表值(例如,公司类型=“Z001”),如何禁用SAD按钮对所有用户的可见性?为什么不使用LWC 您可以将@wire decorator与uiRecordApi的getRecord方法结合使用,根据当前记录的id从对象中获取数据 JS文件如下所示: @wire(getRecord, { recordId: '$recordId', fields:['Company_T
现在,我的问题是在帐户页面上,对于特定的字段选择列表值(例如,公司类型=“Z001”),如何禁用SAD按钮对所有用户的可见性?为什么不使用LWC 您可以将@wire decorator与uiRecordApi的getRecord方法结合使用,根据当前记录的id从对象中获取数据 JS文件如下所示:
@wire(getRecord, { recordId: '$recordId', fields:['Company_Type__c'] })
Account;
visible = false;
if (Account.Company_Type__c == 'Z001'){
visible = true;
}
handleClick(){
// use @wire to access Controller class you used for your vf page.
}
<template>
<template if:true={visible}>
<lightning-button
variant="normal"
label="SAD"
title="SAD Button"
onclick={handleClick}>
</lightning-button>
</template>
</template>
您需要将该按钮放置在LWC模板中。只需使用标签
HTML文件如下所示:
@wire(getRecord, { recordId: '$recordId', fields:['Company_Type__c'] })
Account;
visible = false;
if (Account.Company_Type__c == 'Z001'){
visible = true;
}
handleClick(){
// use @wire to access Controller class you used for your vf page.
}
<template>
<template if:true={visible}>
<lightning-button
variant="normal"
label="SAD"
title="SAD Button"
onclick={handleClick}>
</lightning-button>
</template>
</template>
似乎您正在使用apex:detail标记,以便在visualforce页面上显示记录详细信息 要隐藏任何按钮,您可以使用下面的代码段以及何时隐藏或何时不隐藏的条件
<apex:page standardController="Account" >
<apex:detail />
<apex:includeScript value="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" />
<script>
$(document).ready(function() {
if({!Account.Company_Type__c == 'Z001'}){
$('[name="REPLACE_BUTTON_NAME_HERE"]').hide();
}
});
</script>
</apex:page>
$(文档).ready(函数(){
如果({!Account.Company_Type_uuc=='Z001'}){
$('[name=“替换按钮\u name\u此处”]')。隐藏();
}
});
通过检查visualforce页面上的按钮来获取按钮名称,并在代码中替换相同的按钮以代替此处的replace_button_name_通过在Controller中添加属性并将其从Controller获取到VF页面,我找到了此代码的解决方案。 这是代码 Extn类中的代码
Public Account AccName{get;set;}
Public Account Acnt{get;set;}
Public user userid;
public boolean stagesDisabled {
get {
userid =[SELECT Id, Country FROM User where Id =:UserInfo.getUserId()];
Acnt = [Select id, Company_Type__c from account where id =: Acc.id];
return( Acnt.Company_Type__c =='Z008' && userid.Country =='XYZ' );
}
}
VF页面中的代码
<apex:commandButton action="{!SAD}" value="New Sales Area Data" disabled="{!stagesDisabled}" />
您是否使用标签显示详细信息?亲爱的Jonathan Yaniv Ben Avraham,此功能已经实现,我们不应该更改所有内容。但据我所知,LWC更容易。谢谢你的回答