传递参数并使用自定义属性?

时间:2011-11-05 21:01:38

标签: html parameters salesforce apex-code

我在视图中有以下代码:

<apex:commandLink data-role="button" action="{!someAction}">
<apex:param name="someVar" value="someVarVal">
</apex:commandLink>

代码不起作用,因为commandLink没有采用“data-role”属性。

如何在第二行传递参数,但在渲染链接上还有“data-role”等属性?

2 个答案:

答案 0 :(得分:2)

我从来没有找到过将额外属性添加到VF标签的方法,最好的办法是IMO会添加一些在页面加载时运行的javascript,然后使用JQuery的.attr()方法将该属性添加到组件中。

如下所示(假设您included jquery through a static resource

<apex:commandLink styleClass="myLink" action="{!someAction}">
    <apex:param name="someVar" value="someVarVal"/>
</apex:commandLink>

<script type="text/javascript">
    jQuery.noConflict();

    jQuery(document).ready(function(){
        jQuery(".myLink").attr("data-role", "button");
    });
<script>

你会注意到我在这里使用了一个类而不是ID,这只是因为SFDC生成的ID包含需要转义才能与jQuery一起使用的符号,我发现这更容易了使用更清洁的解决方案(尽管可能略慢)。

答案 1 :(得分:0)

你可以使用html传递语法:

html-attribute=value

例如

html-class="toto" will output class="toto"