Replies
Hi, maikvogel!
It would be great if you could provide me some more information on this issue, i.g. post a code snippet so that I can reproduce this case on my machine. Thank you in advance for your feedback.
Regards!
Hi,
I will now apply all my source code:
JAVA BackingBean:
public class ForumExampleBean {
GridView grid;
List clientsList = DAO.getClientsList(); // adding some objects
HtmlInputHidden hiddenField1;
public ForumExampleBean() {
}
public void onChangeSelection(SelectedRowsChangeEvent e) {
String selectedid = "";
if (getGrid() != null) {
Iterator selectedRows = getGrid().getSelectedRows()
.iterator();
while (selectedRows.hasNext()) {
RowItem rowItem = (RowItem) selectedRows.next();
{
int i = 0;
Iterator iter = (Iterator) rowItem.getCells().iterator();
while (iter.hasNext()) {
UIComponent cell = (UIComponent) iter.next();
Object object = cell.getChildren().get(0);
if (object instanceof UIOutput) {
if (i == 0) {
String selectedUnit = ((UIOutput) object)
.getValue().toString();
selectedid = selectedid + selectedUnit;
}
i++;
}
}
}
}
}
getHiddenField1().setValue(selectedid);
SmartRefreshManager srm = SmartRefreshManager.getCurrentInstance();
srm.removeSmartRefreshIds(getHiddenField1().getClientId(
FacesContext.getCurrentInstance()));
srm.addSmartRefreshId(getHiddenField1().getClientId(
FacesContext.getCurrentInstance()));
getHiddenField1().setImmediate(true);
System.out.println("getHiddenField1—> "
+ getHiddenField1().getValue());
}
public GridView getGrid() {
return grid;
}
public void setGrid(GridView grid) {
this.grid = grid;
}
public List getClientsList() {
return clientsList;
}
public void setClientsList(List clientsList) {
this.clientsList = clientsList;
}
public HtmlInputHidden getHiddenField1() {
return hiddenField1;
}
public void setHiddenField1(HtmlInputHidden hiddenField1) {
this.hiddenField1 = hiddenField1;
}
}
JSP page:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="ig"
uri="http://www.infragistics.com/faces/netadvantage"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Forum Example</title>
</head>
<body>
<f:view>
<h:form id="form1">
<ig:gridView id="grid"
dataSource="#{webGridSelectionBean.clientsList}" pageSize="10"
pageChangeListener="#{webGridSelectionBean.onPageChange}"
dataKeyName="id"
selectedRowsChangeListener="#{webGridSelectionBean.onChangeSelection}"
binding="#{webGridSelectionBean.grid}">
<f:facet name="header">
<h:outputText value="Clients List"></h:outputText>
</f:facet>
<ig:columnSelectRow showSelectAll="true"></ig:columnSelectRow>
<ig:column>
<f:facet name="header">
<h:outputText value="Client Id"></h:outputText>
</f:facet>
<h:outputText value="#{DATA_ROW.id}"></h:outputText>
</ig:column>
<ig:column>
<f:facet name="header">
<h:outputText value="Company"></h:outputText>
</f:facet>
<h:outputText value="#{DATA_ROW.companyName}"></h:outputText>
</ig:column>
<ig:column>
<f:facet name="header">
<h:outputText value="Reg. number"></h:outputText>
</f:facet>
<h:outputText value="#{DATA_ROW.regNumber}"></h:outputText>
</ig:column>
<ig:column>
<f:facet name="header">
<h:outputText value="Selected"></h:outputText>
</f:facet>
<h:outputText value="#{DATA_ROW.selected}"></h:outputText>
</ig:column>
</ig:gridView>
< <h:inputHidden binding="#{webGridSelectionBean.hiddenField1}"
id="hiddenField1" immediate="true"></h:inputHidden>
<table>
<tr>
<td><h:outputText id="messOnPage"
value="#{webGridSelectionBean.msgRowsOnPage}"
binding="#{webGridSelectionBean.textRowsNoPage}"></h:outputText></td>
</tr>
<tr>
<td><h:outputText id="messSelected"
value="#{webGridSelectionBean.msgRowsSelected}"
binding="#{webGridSelectionBean.textRowsSelected}"></h:outputText></td>
</tr>
</table>
</h:form>
</f:view>
</body>
</html>
Changes in igf_grid.js:
Replace the following code
this.selectRow = function(domNode, select) {
var row = this.getTargetRow(domNode);
if (!ig.isNull(row)) {if (select) {
row.select();
}
else {
row.unselect();
}
var grid = this.getGrid(domNode);
if (!ig.isNull(grid) && grid.isImmediateRowsChangeEvent()) {
ig.smartSubmit(grid.elm.id, null, null);
}
}
};
with this one
this.selectRow = function(domNode, select) {
var row = this.getTargetRow(domNode);
if (!ig.isNull(row)) {
if (select) {
row.select();
}
else {
row.unselect();
}
var grid = this.getGrid(domNode);
if (!ig.isNull(grid) && grid.isImmediateRowsChangeEvent()) {
ig.smartSubmit(grid.elm.id, null, null, null,this.customFLT);
}
}
};
this.customFLT = function(httpReq) {
ig.onPartialRefreshDefault(httpReq);
var value = document.getElementById("form1:hiddenField1").value;alert("value: " + value);
};
Please, for further help consult our support policies. Thanks in advance!
Hi, dayanandabv!
I think I was clear but if not it is probably my fault. Let me explain again what I am doing to reproduce your sample. Since I necessarily don't have all your classes, I made a simple application realizing the functionality you describe, namely to select a value selected from a WebGrid row in a message box. For that aim I have a JSP page with WebGrid and a hidden field. The WebGrid sends a SelectedRowsChangeEvent that is being caught by a listener method where I added your code. In the igf_grid.js file I replace the Infragistics code in the this.selectRow = function(domNode, select) with your customer code and I made the necessary changes (described so far) so that the value of the hiddenField element displayed in the message updates (this was also explained). This configuration works as it is supposed to.
Hi, dayanandabv!
I just added this line ig.onPartialRefreshDefault(httpReq); into the igf_grid.js file at the place shown. I did not change anything else.
Hi, dayanandabv!
I think this should finally solve your problem. Just add ig.onPartialRefreshDefault(httpReq); into your customFLT function since there must be a function that will update the values of the elements. this
.customFLT = function(httpReq) {
ig.onPartialRefreshDefault(httpReq);
var value = document.getElementById("form1:hiddenField1").value;alert("value: " + value);
};
I hope this will help you.
Yet I think this topic has gone a little bit farther than the purpose of this forum supposes since this is functionality not provided with our product and involves modifying files that should not be modified.
Hi, dayananda B V!
as I told you everything seems to be OK, I'm getting the message with the value of the hidden field. Checking the name of the form that the hidden field is nested in is the advice I can give you now.
Regards.
Hi,
this is the code that I added to the igf_grid.js file.
// customer code
this.selectRow=function(domNode,select){
var row=this.getTargetRow(domNode);if(!ig.isNull(row)){if(select){row.select();}
else{row.unselect();}var grid=this.getGrid(domNode);if(!ig.isNull(grid)&&grid.isImmediateRowsChangeEvent()){ig.smartSubmit(grid.elm.id,null,null, null, this.customFLT);}}};
this.customFLT=function(){
alert(
"Hello");
// alert("Hidden Field = " + parent.frames.document.getElementById("form1:hiddenField1").value);
var arraystr= parent.frames.document.getElementById("form1:hiddenField1").value;
// here i am calling applet method pasing the value of arraystr,
};
// customer code END