RequestContext.getCurrentInstance().openDialog do Primefaces não abre pelo <p:ajax>

Por favor alguém me dê uma luz eu to usando primefaces 4.0 e ele não quando eu coloco o evento do click da tabela para abrir um Dialog “RequestContext.getCurrentInstance().openDialog” ele não funciona.

A coisa mais estranha que ele funciona quando eu uso um commandButton funciona normalmente.

Não achei nada no forum do primefaces e nem na documentação. ele simplesmente não abre o dialog.

Alguém pode me ajudar ?

O ajax e a tabela.

<p:dataTable id="dataTable" var="vRegistro" selectionMode="single" ...>
	<p:ajax event="rowSelect" listener="#{nomeBean.onRowSelect}"/>
</p:dataTable>

o bean

public String onRowSelect(SelectEvent slc) throws IOException {
	MinhaClasse g = (MinhaClasse) slc.getObject();
	alterarRegistro(g.getId());
	return null;
}

public void alterarRegistro(Object codigo) {
	Map<String,Object> options = new HashMap<String, Object>();
	options.put("closeOnEscape",true);
	options.put("dynamic",true);
	options.put("modal",true);
	
	RequestContext.getCurrentInstance().openDialog(nomeDialog, options, null);
}

o botão que funciona

<p:column width="5%">
	<p:commandButton icon="ui-icon-pencil" actionListener="#{nomeBean.alterarRegistro(vRegistro.id)}">
	<p:ajax event="dialogReturn" update="@form"/>
	</p:commandButton>
</p:column>