[richfaces-issues] [JBoss JIRA] (RF-11948) rich:extendedDataTable generates a js-error stating this.normalPartStyle is undefined

Rene O (JIRA) jira-events at lists.jboss.org
Mon Mar 26 09:15:55 EDT 2012


    [ https://issues.jboss.org/browse/RF-11948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12679282#comment-12679282 ] 

Rene O commented on RF-11948:
-----------------------------

This solution doesn't work for all usecases. If you use ajax, this solution fails. See the following code for an example:
{code:title='Show table with ajax'}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:ui="http://java.sun.com/jsf/facelets"
	  xmlns:a4j="http://richfaces.org/a4j"
	  xmlns:rich="http://richfaces.org/rich"	 
	 >
	<h:head>
		<title>JSF Test</title>		
	</h:head>

	<h:body>
		<rich:extendedDataTable rendered="false"/>
		<rich:column rendered="false"/>
		<h:form id="myForm">
			<h:commandButton id="switchButton" value="Show Table" action="#{ctr.showItemA}" immediate="true" >
				<f:ajax immediate="true" execute="@this" render="itemA" />
			</h:commandButton>
			<br/><br/>
			<h:panelGroup id="itemA">
				<h:panelGroup id="mytableGroup" rendered="#{model.itemAEnabled}">
				<rich:extendedDataTable id="tableA" var="item" value="#{model.tableList}" rows="5">
					<f:facet name="header">
						<h:outputText value="HeaderA" />				
					</f:facet>
					<rich:column id="colA" width="10px">
						<f:facet name="header">
							ColA
						</f:facet>
						#{item.itemA}
					</rich:column>
				</rich:extendedDataTable>
				<script type="text/javascript">
					jQuery(#{rich:component('tableA')}.element).bind("rich:ready", function(event, table) {
						alert('resize');
						#{rich:component('tableA')}.setColumnWidth('colA','200');
					});
				</script>
				</h:panelGroup>
			</h:panelGroup>
		</h:form>
	</h:body>
</html>
{code}

If you click the ajaxified button to show the table, the rich:ready event isn't fired and so the resizing doesn't work. 
If you press F5 to refresh the page, the event is fired. But this is not the wanted behaviour.
The resizing also works directly, if panelGroup with id='mytableGroup' is alway rendered -> <h:panelGroup id="mytableGroup" rendered="true">
                
> rich:extendedDataTable generates a js-error stating this.normalPartStyle is undefined
> -------------------------------------------------------------------------------------
>
>                 Key: RF-11948
>                 URL: https://issues.jboss.org/browse/RF-11948
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-tables
>    Affects Versions: 4.2.0.CR1
>         Environment: richfaces-4.2.0-SNAPSHOT, Firefox 10, IE8
>            Reporter: Rene O
>            Assignee: Brian Leathem
>             Fix For: 4.2.1.CR1
>
>
> If you use rich:extendedDataTable and manually set the width of a column afterwards, a js error occurs
> {code:title=page-snippet to reproduce the issue}
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
> 	  xmlns:h="http://java.sun.com/jsf/html"
> 	  xmlns:f="http://java.sun.com/jsf/core"
> 	  xmlns:ui="http://java.sun.com/jsf/facelets"
> 	  xmlns:a4j="http://richfaces.org/a4j"
> 	  xmlns:rich="http://richfaces.org/rich"	 
> 	 >
> 	<h:head>
> 		<title>JSF Test</title>		
> 	</h:head>
> 	<h:body>
> 		<h:form id="myForm">
> 			<rich:extendedDataTable id="tableA" var="item" value="#{model.tableList}" rows="5">
> 			<f:facet name="header">
> 				<h:outputText value="HeaderA" />				
> 			</f:facet>
> 			<rich:column id="colA" width="100px">
> 				<f:facet name="header">
> 					ColA
> 				</f:facet>
> 				#{item.itemA}
> 			</rich:column>
> 		</rich:extendedDataTable>
> 		<script type="text/javascript">
> 			#{rich:component('tableA')}.setColumnWidth('colA','200');
> 		</script>
> 		</h:form>
> 	</h:body>
> </html>
> {code}
> {code:title=js error}
> Fehler: this.normalPartStyle is undefined
> Quelldatei: http://localhost:8080/jsftest/javax.faces.resource/extendedDataTable.js.jsf?ln=org.richfaces
> Zeile: 279
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list