出于某种原因,当尝试删除行时,SelectedRow Id会一直显示为null,无法找出原因。我的页面内置了一个表,我想添加一个commandlink来删除一个特定的行。尝试删除它时,它会一直显示为空。
我的页面:
<apex:outputPanel id="main">
<table>
<tr>
<apex:repeat value="{!headers}" var="h">
<td class="hdr">{!h}</td>
</apex:repeat>
</tr>
<apex:repeat value="{!hours}" var="a">
<tr>
<td><apex:commandLink action="{!RowDelete}" value="delete" id="deleterow"/>
<apex:param assignto="{!SelectedRow}" value="{!a.id}" name="{!a.id}" />
</td>
<td ><apex:inputField value="{!a.Project__c}" /></td>
<td><apex:inputField value="{!a.Date__c}" /></td>
<td><apex:inputField value="{!a.StartTime__c}" /></td>
<td><apex:inputField value="{!a.EndTime__c}" /></td>
<td><apex:inputField value="{!a.Comments__c}" style="width:300px"/></td>
</tr>
</apex:repeat>
</table>
我的控制器:
// class variables
id MonthlyReport;
public string SelectedRow {get;set{SelectedRow=value;system.debug('TESTING SelectedRow Value is '+SelectedRow );}}
Reported_Hour__c[] hoursl;
// To Delete Row
public pagereference RowDelete() {
system.debug('TESTING: SelectedRow value is '+SelectedRow);
Reported_Hour__c rh = [select id from Reported_Hour__c where id =: this.SelectedRow];
delete rh;
return null;
}
答案 0 :(得分:0)
我认为您可以从
转储name
位
<apex:param assignto="{!SelectedRow}" value="{!a.id}" name="{!a.id}" />
或者可能输入不相关的内容(例如selectedRowParam
)。在这方面,VF有点古怪。
检查http://bobbuzzard.blogspot.co.uk/2011/07/passing-parameters-to-apex-method-from.html获取一些灵感?