【问题标题】:Button disable in Visual force pageVisual force 页面中的按钮禁用
【发布时间】:2021-03-01 07:19:31
【问题描述】:

在标准对象(帐户)上,我有一个名为 SAD 的按钮。按钮由 Visual force 页面添加到那里。

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

【问题讨论】:

  • 您是否使用 标签来显示详细信息?

标签: salesforce apex visualforce salesforce-lightning


【解决方案1】:

似乎您正在使用 apex:detail 标签来在 visualforce 页面上显示记录详细信息。

要隐藏任何按钮,您可以使用以下代码 sn-p 以及何时隐藏或何时不隐藏的条件。

<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

【讨论】:

    【解决方案2】:

    为什么不用 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>
    

    【讨论】:

    • 尊敬的 Jonathan Yaniv Ben Avraham, 此功能已经实现,我们不应该改变一切。但据我所知,使用 LWC 会更容易。谢谢你的回答
    【解决方案3】:

    我通过在 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}" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-09
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多