Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过jquery或javascript生成panelgrid的点击事件?_Javascript_Jquery_Jsf_Primefaces - Fatal编程技术网

如何通过jquery或javascript生成panelgrid的点击事件?

如何通过jquery或javascript生成panelgrid的点击事件?,javascript,jquery,jsf,primefaces,Javascript,Jquery,Jsf,Primefaces,我正在使用JSF2.0和PrimeFaces3.0。我有一个划船开关和划船扩展。因为我使用的是primefaces旧版本,所以我没有rowToggle事件。我需要在行扩展时通过ajax在服务器端调用一个方法。因此,我在Rowtogler周围放置了div标记,并调用了一个javascript函数。现在我想通过rowexpansion中panelgrid的click事件启动ajax调用。如果发生这种情况,那么它将看起来像3.4行切换事件。我想您可能会 <p:panelGrid>

我正在使用JSF2.0和PrimeFaces3.0。我有一个划船开关和划船扩展。因为我使用的是primefaces旧版本,所以我没有rowToggle事件。我需要在行扩展时通过ajax在服务器端调用一个方法。因此,我在Rowtogler周围放置了div标记,并调用了一个javascript函数。现在我想通过rowexpansion中panelgrid的click事件启动ajax调用。如果发生这种情况,那么它将看起来像3.4行切换事件。

我想您可能会

<p:panelGrid>
    <p:ajax event="click" listener="#{bean.onclick}" />
    ...
    the rest of the grid here
    ...
<p:panelGrid>

...
网格的其余部分在这里
...

我还没有测试过它,但它适用于其他组件

您可以在单击行切换器时使用jQuery的事件绑定来执行Javascript

<h:form id="form">
    <p:dataTable id="dt" value="[1,2]">
        <p:column>
            <p:rowToggler />
        </p:column>
    </p:dataTable>
    <p:remoteCommand name="remotecommand"
        oncomplete="alert('remote command fired')" />
</h:form>
<script type="text/javascript">
$("[id='form:dt'] .ui-row-toggler").on("click", function() { remotecommand(); });
</script>

$(“[id='form:dt'].ui行切换器”)。在(“单击”,function(){remotecommand();});
Javascript说明:

$(“[id='form:dt'].ui行切换器”)
按id选择数据表(
form:dt
),然后选择具有样式类
ui行切换器的所有子体

.on(“click”,function(){remotecommand();})
将匿名函数绑定到一个click事件,该事件触发由
p:remotecommand
声明的Javascript函数

您可以使用
p:remoteCommand
执行bean方法,其
action
actionListener
;-)


请注意,我不认为这是一个长期的解决方案。升级到PrimeFaces 3.4将是一个更好的解决方案。

除了siebz0r的解决方案,我还找到了一个解决方案

<p:commandLink action="#{bean.abcFunction}"> <p:rowToggler/> </p:commandLink>


它也可以工作并且很简单:-)

我将commandLink放在rowtogler周围,通过commandLink调用ajax,还可以使用EL2.2通过它传递值

<p:commandLink action="#{myBean.doSomething(foo)}" >
    <p:rowToggler/>
</p:commandLink>


为什么不升级旧版本而坐视不理?有人向我提供了3.0版本,并告诉我只在应用程序中使用它。我已经尝试过了。但这不是解决办法。我想在不使用Primefaces的3.4版本的情况下完全像rowToggle事件一样进行操作。如果我可以调用panelgrid的click事件,那么我认为它与rowToggle事件非常相似。Thanx siebz0r。我有点困惑。它像ajax一样工作吗?在后台,我必须处理什么样的事件呢?
p:remoteCommand
调用后台bean中的方法,就像
p:commandButton
那样,没有事件处理等。
p:remoteCommand
使用AJAX提交。非常感谢您的回复。:)我一定会试试这个:DIts显示味精像。。父项不是复合组件或ClientBehaviorHolder类型,类型为:org.primefaces.component.remotecommand。RemoteCommand@d1918a我的代码就像。。。$(“[id='form:dt'].ui行切换器”)。在(“单击”,function(){remotecommand();})@KushSahu删除
标记,它不属于那里。使用
p:remoteCommand action=“#{tableBean.ajaxCallThis}”
代替;-)