如何在vf页面中从动态选项列表中选择值时更新URl?

时间:2012-01-19 14:10:47

标签: salesforce apex-code visualforce

当我从我的选项列表中选择一个值时,我有一个更改网址的问题。

<apex:actionFunction name="updateCategory" action="{!updateCategory}" rerender="posts" status="updateStatus">
    <apex:param name="param" assignTo="{!selectedCategory}" value="{!discussionPageNum}"  />
</apex:actionFunction>

<div class="ibtFilterStatus">
    <apex:actionStatus startText="Updating..." id="updateStatus" startStyle="padding-right: 10px;"/>
    <span class="select" id="select7">All Categories</span> 
    <apex:selectList id="ideacategories" value="{!selectedCategory}" size="1" onchange="hideSubscribeButton();  updateCategory(this.options[this.selectedIndex].value); doSearch('select7', this, 'ideaCategories')">
        <apex:selectOptions value="{!categories}" />
    </apex:selectList>&nbsp;
</div>

<div style="float: right" id="test">
    <apex:outputLink style="margin-right:5px;font-size: 13px;{!IF(hasDiscussionNextPage,'','display:none;')}" value="?discussionPg={!discussionPageNum + 1}&ideaCategory={!selectedCategory}">Previous Discussion</apex:outputLink>
</div>

当我选择一个类别时,如何用id =“test”重新渲染我的div?

2 个答案:

答案 0 :(得分:1)

我相信你只能重新渲染通过VF标签生成的页面元素(我可能在这里错了,我没试过!

用outputPanel替换div(它将生成相同的标记):

<apex:outputPanel styleClass="output" id="test">
    <apex:outputLink ...
</apex:outputPanel>

你会注意到我使用的是CSS类而不是内联样式,最好这样做,然后将样式放在标题的<style>块中。

更改为输出面板后,在updateCategory动作功能中将其指定为重新渲染:

rerender="posts, test" **

当然,如果我怀疑doSearch也是一个动作函数,我建议你从那个函数中重新渲染,因为这是最后一个执行的函数。

答案 1 :(得分:1)

我得到了一个解决方案..

我只是在名为update category的动作函数方法中进行重定向。并且它运作良好..

感谢laceySnr所有回复...