在Salesforce中使用JavaScript获取Datatable中的特定行

在Salesforce中使用JavaScript获取Datatable中的特定行,javascript,salesforce,apex-code,visualforce,Javascript,Salesforce,Apex Code,Visualforce,我正在使用visualforce页面。我在页面中使用datatable,并且我在每一行中都使用了一个复选框,现在我只想得到那些复选框值为true的行,下面给出了代码 <apex:page controller="searchDuplicate"> <apex:pageBlock title="Searching for Duplicate Contacts Record"> <center> <apex:form> &

我正在使用visualforce页面。我在页面中使用datatable,并且我在每一行中都使用了一个复选框,现在我只想得到那些复选框值为true的行,下面给出了代码

<apex:page controller="searchDuplicate">
<apex:pageBlock title="Searching for Duplicate Contacts Record">
 <center>
     <apex:form>
         <apex:dataTable id="dTable" value="{!selectedContactList}" var="cn" border="1" cellpadding="5">
            <apex:column headerValue="Name" value="{!cn.Name}" />
            <apex:column headerValue="Email" value="{!cn.Email}" />
            <apex:column headerValue="Select">
                <apex:inputCheckbox/>
            </apex:column>
         </apex:dataTable>
         <apex:commandButton value= "Delete Selected"/>
    </apex:form>
 </center>
</apex:pageBlock> 
</apex:page>

出于许多原因,我不会为此使用JavaScript。首先,Visualforce处理在列表中跟踪组件ID。当列表包含标准或自定义对象时,处理此问题的最佳方法是使用in-Apex。然后您可以像这样访问您的值(其中c是包装的联系人):


请注意,cn.theBoolean不是cn.c.theBoolean。这是因为您的联系人记录现在包装在一个定制的Apex类中,如下所示:

public List<ContactWrapper> selectedContactList {get; set;}

// Inner-class
public class ContactWrapper
{
   public Contact c {get; set;}
   public Boolean theBoolean {get; set;}

   public ContactWrapper(Contact c)
   {
       this.c = c;
   }

...
public List selectedContactList{get;set;}
//内部阶级
公共类ContactWrapper
{
公共联系人c{get;set;}
公共布尔theBoolean{get;set;}
公共联系人包装器(联系人c)
{
这个.c=c;
}
...

希望有帮助。

Thanx的回复是adam,但我想在datatable被另一个控制器类填充后获得datatable行的值,基本上我想选择那些选定的行,并将这些值发送回控制器类,然后处理它们请参见在我上面发送的链接处使用组件ID进行迭代。()
public List<ContactWrapper> selectedContactList {get; set;}

// Inner-class
public class ContactWrapper
{
   public Contact c {get; set;}
   public Boolean theBoolean {get; set;}

   public ContactWrapper(Contact c)
   {
       this.c = c;
   }

...