Link to home
Start Free TrialLog in
Avatar of madheeswar
madheeswarFlag for Singapore

asked on

Infopath2003 and Repeating table

Hi Experts,
I am still understanding InfoPath 2003.

But as the time is limited to deliver, I do have a question.

Please consider this as urgent.

I have a repeating table and in that fields are vendor and vendorproduct.
If vendor is selected, products related to vendor need to be displayed in VendorProduct drop down list using .Net web service.

So I wrote onAfterChange code for Vendor...

function msoxd_my_Vendor::OnAfterChange(eventObj)
// Write code here to restore the global state.
var oNode = eventObj.Source;
var oNodeParent = oNode.parentNode;
if (eventObj.IsUndoRedo || eventObj.Operation != "Insert")
// An undo or redo operation has occurred and the DOM is read-only.

// A field change has occurred and the DOM is writable. Write code here to respond to the changes.
var nodeDataSource = XDocument.DataObjects.Item("GetVendorProductSchema");
nodeDataSource.DOM.setProperty("SelectionNamespaces", "xmlns:my='' xmlns:tns='' xmlns:dfs='' xmlns:xd=''");
nodeDataSource.DOM.selectSingleNode("//dfs:myFields//dfs:queryFields//tns:GetVendorProductSchema//tns:strSelectedVendor").text = eventObj.Source.text;

The above works fine if there is a single row. If I add another row while data entry, the value selected in Vendor Product in row 1 is lost. since the value for vendor is different in row2. it displays products related to row2.
I don't have any Rules for Vendor or VendorProduct.
But for VendorProduct I have List Box entries set to 'Lookup values in a data connection to a database, Web Service.....'
Data Connection name is "GetVendorProductSchema"
Entries: /dfs:myFields/dfs:dataFields/tns:GetVendorProductSchemaResponse/tns:GetVendorProductSchemaResult/NewDataSet/Table/PRODUCT_NAME
value: .
Display Name: .

I hope I made myself clear. if you have any queries on the above, do let me know.

Another question is how to display a html/.xsn file in a modal dialog box on click of a button.
if I am posting this question in a wrong session, please move it to respective TA.
thanks in advance.
Avatar of Vivek Thangaswamy
Vivek Thangaswamy
Flag of Australia image

[InfoPathEventHandler(MatchPath="/my:myFields/my:Your_Name", EventType=InfoPathEventType.OnAfterChange)]
public void Your_Name_OnAfterChange(DataDOMEvent e)
      // Write code here to restore the global state.      
IXMLDOMDocument2  oSharePointDom = (IXMLDOMDocument2)thisXDocument.GetDOM( "Actuals" );
oSharePointDom.setProperty("SelectionNamespaces","xmlns:dfs=\"\"" );
IXMLDOMNodeList nSharedItem =  oSharePointDom.selectNodes( "/dfs:myFields/dfs:dataFields/dfs:_Actuals" );      
objForm.arrTotalProjActual = new ArrayList();
objForm.rowcount = nSharedItem.length;
int i = 0;
while (nSharedItem.length > i )
objForm.arrTotalProj.Add(nSharedItem[i].selectSingleNode( "@Overall" ).text);
i = i + 1;
// A field change has occurred and the DOM is writable. Write code here to respond
// to the changes.

The above code sample will help you to solve your problem.

This is how we used in our projects.
Avatar of madheeswar


I think the above code is in C sharp.
Let me give it a try. I am using Java Script.
Need to convert your code to JS.

Thank you.
oh... try it.

Actually we worked with C# only.
Can you please provide the equivalent code in VB.Net or JavaScript?
I tried converting C# to VB.Net, getting errors at
Dim oSharePointDom As IXMLDOMDocument2 = CType(thisXDocument.GetDOM("GetVendorProductSchema") , IXMLDOMDocument2)
Error msg:
Expected end of statement

Can u pls help...
Avatar of Vivek Thangaswamy
Vivek Thangaswamy
Flag of Australia image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial