为什么顶点:当我用jquery删除一行时,pageblocktable会自动刷新?

时间:2012-08-07 08:43:56

标签: jquery row apex-code visualforce

我的问题是这样的:我有一个带有一些记录的简单的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>

1 个答案:

答案 0 :(得分:1)

试试这个技巧 - 在执行JavaScript函数后添加return false:

<apex:commandButton value="prova" onclick="hiderows(); return false;"/>

避免页面重新加载的其他方法是添加虚拟reRender标记:

<apex:commandButton value="prova" onclick="hiderows()" reRender="none" />

您必须重新呈现“某些内容”以避免重新加载页面。否则,命令按钮将重新加载整个页面。在我们的例子中,我们将重新改名“没有”。