我的问题是这样的:我有一个带有一些记录的简单的pageblocktable,当我从表中删除一个特定的行...这工作好一会儿,然后我的页面会自动重新加载完整的pageblocktable和所有行
我的愿望不是删除一条记录,而是使一行的视图无法实现。
这是我的控制器的代码:
public List<E2C_Email__c> emailsmod;
public List<E2C_Email__c> getEmailsmod (){
String id='500T0000004QpWr';
this.emailsmod=[Select id,subject__c,FromName__c,Read__c,CreatedDate,CcAddress__c from E2C_Email__c where Case__c=:id ORDER BY CreatedDate DESC];
return this.emailsmod;
}
这是我的脚本代码(在页面中):
<script type="text/javascript">
$j = jQuery.noConflict();
function hiderows(){
var prova= $j('#subject'+ 'a0TT0000003BMmGMAW').parent();
var prova2=$j('#subject'+ 'a0TT0000003BMmGMAW').closest("tr");
prova2.remove();
}
</script>
这是页面
<apex:form >
<apex:outputpanel >
<apex:commandbutton value="prova" onclick="hiderows()" />
</apex:outputpanel>
</apex:form>
<apex:outputpanel layout="block" style="overflow:auto;height:200px">
<apex:pageBlock id="pb" mode="maindetail">
<apex:pageBlockTable value="{!Emailsmod}" var="e" columns="5"
cellspacing="5" onRowClick="show(this)">
<apex:column headerValue="From" width="22%">
<span id="from{!e.id}"> {!e.FromName__c} </span>
</apex:column>
<apex:column headerValue="Subject">
<span id="subject{!e.id}"> {!e.Subject__c} </span>
</apex:column>
<apex:column headerValue="Date" width="7%">
<span id="date{!e.id}"> <apex:outputText value="{0,date,dd/MM/yy hh:mm}">
<apex:param value="{!e.CreatedDate}" />
</apex:outputText> </span>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:outputpanel>
答案 0 :(得分:1)
试试这个技巧 - 在执行JavaScript函数后添加return false:
<apex:commandButton value="prova" onclick="hiderows(); return false;"/>
避免页面重新加载的其他方法是添加虚拟reRender标记:
<apex:commandButton value="prova" onclick="hiderows()" reRender="none" />
您必须重新呈现“某些内容”以避免重新加载页面。否则,命令按钮将重新加载整个页面。在我们的例子中,我们将重新改名“没有”。