检查插入前是否选中了输入复选框 - Salesforce

时间:2014-04-29 12:01:35

标签: salesforce apex

我有一个可视化强制页面,显示链接到所选父案例的当前子案例。

每个子案例都有一个专用复选框。

我需要只能为选定的子案例添加评论,而不是所有子案例。

    <apex:outputText value="this is a test" rendered="false" />
    <apex:datatable value="{!related}" var="rel" width="80%">

        <apex:commandButton value="Save" action="{!save}"/>
        <apex:column headervalue="Select" width="10%">
            <apex:inputCheckbox value="{!rel.c.UpdateChildcases__c}"/><p/>
        </apex:column>
        <apex:column headervalue="Case Number" width="30%">
            <apex:outputLink value="/{!rel.c.Id}" target="_blank">{!rel.casenumber}</apex:outputLink><p/>
        </apex:column>
        <apex:column headervalue="Account Name" width="30%">
            <apex:outputLink value="/{!rel.Id}" target="_blank">{!rel.account.name}</apex:outputLink><p/>
        </apex:column> 
        <apex:column headervalue="Subject" width="30%">
            <apex:outputLink value="/{!rel.Id}" target="_blank">{!rel.subject}</apex:outputLink><p/>
        </apex:column>            
    </apex:datatable>              

    <apex:commandButton value="Save"  action="{!Save}" />
</apex:form>
</apex:page>

要插入的评论是从文本区域

中选取的
public with sharing class ParentCases {
    public List related {get; set;}

    public String mysearchtext {get; set;}
    public boolean selected {get; set;}

    public ParentCases(ApexPages.StandardController std) {
        selected = false;
        Case cs = (Case) std.getRecord();
        related = [select id, CaseNumber,  Subject, description, Status, UpdateChildcases__c , child_update__c, account.name from Case where parentId = :cs.id];
    }

    public void Save() {

        List<CaseComment> childCom = new List<CaseComment>();
        for (integer i = 0; i < related.size(); i++) {

            CaseComment newCom = new CaseComment();
            newCom.CommentBody = mysearchtext;
            newCom.IsPublished = TRUE;
            newCom.ParentId = related[i].id;
            childCom.add(newcom);
        }

        if (!childCom.isEmpty()) {
            insert childCom;

        }
    }
}

这会更新所有子记录。我真的需要将插入限制为选定的插入。 ??

1 个答案:

答案 0 :(得分:2)

在UpdateChildcases__c字段值的for循环检查中:

for (integer i = 0; i < related.size(); i++) {
    if (related[i].UpdateChildcases__c) {
        CaseComment newCom = new CaseComment();
        newCom.CommentBody = mysearchtext;
        newCom.IsPublished = TRUE;
        newCom.ParentId = related[i].id;
        childCom.add(newcom);
    }
}

P.S。 here解释了如何在不使用Case的自定义布尔字段的情况下实现相同的效果。