Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce VisualForce页面中的按钮禁用_Salesforce_Apex_Visualforce_Salesforce Lightning - Fatal编程技术网

Salesforce VisualForce页面中的按钮禁用

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

在标准对象(帐户)上,我有一个名为SAD的按钮。按钮是通过可视力页面添加到那里的


现在,我的问题是在帐户页面上,对于特定的字段选择列表值(例如,公司类型=“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更容易。谢谢你的回答