视觉强制页面中的按钮禁用

Button disable in Visual force page

在标准对象(帐户)上,我有一个名为 SAD 的按钮。按钮是视觉力页面在那边加的。

现在我的问题是在帐户页面上,对于特定字段选项列表值(例如..公司类型=''Z001')如何禁用所有用户的 SAD 按钮可见性?

为什么不用 LWC 而不是呢?

您可以使用@wire装饰器配合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.
}

您可以将按钮放在 LWC 模板中。只需使用标签。

HTML 文件看起来像这样:

<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>

通过检查 visualforce 页面上的按钮获取您的按钮名称,并在代码中替换相同的名称以代替 REPLACE_BUTTON_NAME_HERE

我通过在控制器中添加 属性 并将其从控制器获取到 VF 页面找到了此代码的解决方案。 这是代码。

Extn 中的代码 class

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}" />