Skip to content

Replies

0
Bozhidar Dedov
Bozhidar Dedov answered on Sep 8, 2008 8:31 AM

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!

0
Bozhidar Dedov
Bozhidar Dedov answered on Aug 6, 2008 11:34 AM

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&quot;%>

<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html&quot;%>

<%@ taglib prefix="ig"

uri="http://www.infragistics.com/faces/netadvantage&quot;%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;

<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!

0
Bozhidar Dedov
Bozhidar Dedov answered on Aug 6, 2008 10:56 AM

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.

0
Bozhidar Dedov
Bozhidar Dedov answered on Aug 6, 2008 10:13 AM

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.

 

0
Bozhidar Dedov
Bozhidar Dedov answered on Aug 6, 2008 9:00 AM

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.

0
Bozhidar Dedov
Bozhidar Dedov answered on Aug 1, 2008 7:25 AM

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.

0
Bozhidar Dedov
Bozhidar Dedov answered on Jul 31, 2008 11:45 AM

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