]
Nick Belaevski updated RF-3380:
-------------------------------
Fix Version/s: (was: 3.1.x)
(was: Future)
Tag a4j:support +rich:datatable in IE7
--------------------------------------
Key: RF-3380
URL:
https://jira.jboss.org/jira/browse/RF-3380
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.1.4
Environment: Windows XP, JBoss 4.2.0 GA, FireFox 2.0.0.14, Internet Explorer
7.0.5730.13CO, Safari 3.1.1 (on Mac OS X 10.5.2)
Reporter: Ananda Debnath
Assignee: Nick Belaevski
I'm trying to implement a UI that uses a rich:datatable object. When the user clicks
a row in the datatable, the details of the clicked item has to be displayed in a different
part of the page. Searching through the JIRA pages has yielded some clues on how to make
this happen... except that the approach that seems to work for FF and Safari, doesn't
seem to work with IE 7.0.
Here's my code:
The JSF page:
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:f="http://java.sun.com/jsf/core">
<f:view>
<h:form id="scratchListForm">
<rich:panel header="List" id="list">
<rich:dataTable value="#{RichDataTableRowClickBean.rows}"
var="row" id="listTable"
onRowMouseOver="this.style.backgroundColor='#FFFFAA'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
<a4j:support event="onRowClick"
actionListener="#{RichDataTableRowClickBean.rowSelected}"
action="#{RichDataTableRowClickBean.selectRow}">
<f:param value="#{row.id}" name="current" />
</a4j:support>
<rich:column id="id">#{row.id}</rich:column>
<rich:column id="name">#{row.name}</rich:column>
</rich:dataTable>
</rich:panel>
</h:form>
</f:view>
</html>
The bean:
package scratch;
import javax.faces.event.ActionEvent;
public class RichDataTableRowClickBean {
private final Row[] rows = { new Row("0", "Zero"), new
Row("1", "One"), new Row("2", "Two") };
public Row[] getRows() {
return this.rows;
}
public void rowSelected(ActionEvent event) {
System.out.println(event.getComponent().getId());
System.out.println(event.getComponent().getAttributes());
System.out.println(event.getSource());
System.out.println(event.getPhaseId());
}
public String selectRow() {
System.out.println("row selected");
return null;
}
public static class Row {
String id;
String name;
Row(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
When I click the row in FF/Safari, I get these server side events triggered by means of
my System.out's:
12:33:33,707 INFO [STDOUT] j_id1
12:33:33,707 INFO [STDOUT] javax.faces.component.UIComponentBase$AttributesMap@80c55637
12:33:33,707 INFO [STDOUT] org.ajax4jsf.component.html.HtmlAjaxSupport@140d57b
12:33:33,707 INFO [STDOUT] INVOKE_APPLICATION 5
12:33:33,707 INFO [STDOUT] row selected
With IE 7, I see a Javascript error: 'Type mismatch' in a popup box (Line 85,
character 452) - I can't find the actual line/char where the error occurs.
Am I missing something obvious? Is there a workaround for IE7?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: