gpt4 book ai didi

salesforce - 如何找出在 VisualForce 的下一页上选择了哪些复选框?

转载 作者:行者123 更新时间:2023-12-04 11:54:58 25 4
gpt4 key购买 nike

我有一个数据表,它遍历自定义对象并生成复选框。在第二页上,我想确定哪些复选框已被选中。

在 VisualForce 页面中:

 Age <apex:inputText value="{!age}" id="age" />
<apex:dataTable value="{!Areas}" var="a">
<apex:column >
<apex:inputCheckbox value="{!a.name}" /> <apex:outputText value="{!a.name}" />
</apex:column>
</apex:dataTable>

在 Controller 中:
 public String age {get; set; }
public List<Area_Of_Interest__c> getAreas() {
areas = [select id, name from Area_Of_Interest__c];
return areas;
}

在我的第二页上,我可以使用 {!age} 检索用户在文本框“年龄”中输入的值。 .如何检索已选中的复选框?

谢谢你。

最佳答案

好吧,如果你想用Javascript来处理它,使用Pavel的方法,否则使用以下通过 Controller 来完成。您必须为要跟踪的任何内容创建一个包装类。我不确定它是如何工作的,但不知何故,如果您在包装类中将 bool 变量命名为“selected”,它会映射到复选框。下面是代码:

因此,在您的 Visual force 页面中,执行以下操作:

<apex:dataTable value="{!Foos}" var="f">
<apex:column >
<apex:outputLabel value="{!f.foo.name}" /> <apex:inputCheckbox value="{!f.selected}" />
</apex:column>
</apex:dataTable>
<apex:commandButton action="{!getPage2}" value="go"/>

在您的 Controller 中,执行以下操作:
1) 使用 bool 值“selected”创建一个 Wrapper 类,它以某种方式映射到所选的 inputCheckbox:
public class wFoo {
public Foo__c foo {get; set}
public boolean selected {get; set;}

public wFoo(Foo__c foo) {
this.foo = foo;
selected = false; //If you want all checkboxes initially selected, set this to true
}
}

2) 声明列表变量
public List<wFoo> foos {get; set;}
public List<Foo__c> selectedFoos {get; set;}

3) 定义列表的访问器
public List<wFoo> getFoos() {
if (foos == null) {
foos = new List<wFoo>();
for (Foo__c foo : [select id, name from Foo__c]) {
foos.add(new wFoo(foo));
}
}
return foos;
}

4) 定义处理选中复选框的方法,并将它们放在一个列表中,以便在另一个页面上使用
public void processSelectedFoos() {
selectedFoos = new List<Foo__c>();
for (wFoo foo : getFoos) {
if (foo.selected = true) {
selectedFoos.add(foo.foo); // This adds the wrapper wFoo's real Foo__c
}
}
}

5) 定义点击提交按钮时将PageReference返回到下一页的方法
public PageReference getPage2() {
processSelectedFoos();
return Page.Page2;
}

关于salesforce - 如何找出在 VisualForce 的下一页上选择了哪些复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com